Web cache deception (WCD) adalah celah keamanan yang memungkinkan penyerang memanipulasi cache web untuk menyimpan konten sensitif yang seharusnya tetap dinamis. Celah ini terjadi karena perbedaan dalam cara server cache dan server asal (origin server) menangani permintaan. Artikel ini akan membahas cara kerja WCD, contoh serangan, serta bagaimana melindungi sistem dari kerentanan ini.
Apa Itu Web Cache Deception?
Web cache deception memungkinkan penyerang mengelabui sistem cache untuk menyimpan respons dinamis yang berisi informasi sensitif. Ketika korban mengakses URL yang dirancang secara khusus, server cache salah mengidentifikasinya sebagai sumber daya statis dan menyimpannya. Penyerang kemudian dapat mengakses URL yang sama untuk mengambil data sensitif yang telah disimpan.
Perbedaan Web Cache Deception dan Web Cache Poisoning
- Web Cache Deception: Mengeksploitasi aturan cache untuk menyimpan konten sensitif.
- Web Cache Poisoning: Memanipulasi cache untuk menyuntikkan konten berbahaya ke dalam respons yang diberikan ke pengguna.
Cara Kerja Web Cache Deception
- Mendeteksi Endpoint Sensitif
- Menganalisis Diskrepansi URL
- Cari perbedaan dalam cara cache dan server asal memetakan jalur URL.
- Uji bagaimana parameter URL tambahan diproses, misalnya dengan menambahkan ekstensi statis seperti .css atau .js.
- Membuat URL Berbahaya
- Buat URL yang dapat mengecoh sistem cache untuk menyimpan data dinamis.
- Contoh: http://example.com/user/123/profile/wcd.css. Server asal mungkin mengabaikan ekstensi .css, tetapi cache melihatnya sebagai file statis.
- Menguji Respons yang Dicache
- Gunakan header seperti X-Cache untuk mengidentifikasi apakah respons telah dicache.
- Contoh nilai header:
- X-Cache: hit (respons berasal dari cache).
- X-Cache: miss (respons berasal dari server asal).
Contoh Serangan Web Cache Deception
- Eksploitasi Ekstensi Statis
- URL: http://example.com/profile.js
- Server asal menganggap ini sebagai endpoint dinamis, tetapi cache menyimpannya sebagai file statis karena ekstensi .js.
- Diskrepansi Delimiter
- URL: http://example.com/profile;foo.css
- Server asal menggunakan delimiter ; untuk memotong URL, sementara cache tidak, sehingga menyimpan respons dinamis.
- Path Traversal
- URL: http://example.com/static/..%2fprofile
- Server asal memetakan jalur ke /profile, sementara cache melihatnya sebagai jalur ke direktori statis.
Cara Mendeteksi dan Mencegah Web Cache Deception
Deteksi
- Gunakan tool seperti Burp Suite untuk menganalisis header respons dan waktu respons.
- Tambahkan ekstensi statis atau string arbitrer ke URL untuk menguji bagaimana server dan cache memprosesnya.
- Gunakan ekstensi Burp seperti Web Cache Deception Scanner untuk otomatisasi pengujian.
Pencegahan
- Gunakan Header Cache-Control dengan Tepat
- Tandai sumber daya dinamis dengan direktif no-store dan private.
Contoh:
Cache-Control: no-store, private
- Konfigurasi Pengaturan CDN
- Pastikan aturan cache CDN tidak mengabaikan header Cache-Control.
- Aktifkan perlindungan khusus seperti Cache Deception Armor dari Cloudflare.
- Sinkronisasi Aturan Cache dan Server Asal
- Verifikasi bahwa server asal dan cache menangani jalur URL dengan cara yang sama.
Kesimpulan
Web cache deception adalah ancaman serius yang memanfaatkan kelemahan aturan cache untuk mendapatkan akses tidak sah ke informasi sensitif. Dengan pemahaman mendalam tentang cara kerja dan strategi pencegahan, organisasi dapat melindungi sistem mereka dari serangan ini. Gunakan t00l seperti Burp Suite untuk pengujian mendalam dan pastikan pengaturan CDN serta server Anda dioptimalkan untuk mencegah celah keamanan.
Rekomendasi:
Jika Anda terlibat dalam pengujian penetrasi atau keamanan aplikasi web, pelajari lebih lanjut tentang cache dan eksploitasi dengan menggunakan lab dari PortSwigger atau dokumentasi seperti “Gotta Cache ‘Em All.” Dengan demikian, Anda dapat menguasai teknik ini secara mendalam untuk meningkatkan keamanan aplikasi Anda.















Comments are closed