Serangan CPDoS membuat halaman yang disajikan melalui CDN tidak tersedia

Peneliti dari Universitas Hamburg dan Cologne
dikembangkan teknik serangan baru pada jaringan pengiriman konten dan proxy caching - CPDoS (Penolakan Layanan yang Diracuni Cache). Serangan ini memungkinkan akses ke suatu halaman ditolak melalui keracunan cache.

Masalahnya disebabkan oleh fakta bahwa cache CDN tidak hanya berhasil menyelesaikan permintaan, tetapi juga situasi ketika server http mengembalikan kesalahan. Sebagai aturan, jika ada masalah dengan pembuatan permintaan, server mengeluarkan kesalahan 400 (Permintaan Buruk); satu-satunya pengecualian adalah IIS, yang mengeluarkan kesalahan 404 (Tidak Ditemukan) untuk header yang terlalu besar. Standar ini hanya mengizinkan kesalahan dengan kode 404 (Tidak Ditemukan), 405 (Metode Tidak Diizinkan), 410 (Hilang) dan 501 (Tidak Diimplementasikan) untuk di-cache, namun beberapa CDN juga menyimpan respons dengan kode 400 (Permintaan Buruk), yang bergantung pada pada permintaan yang dikirim.

Penyerang dapat menyebabkan sumber daya asli menampilkan kesalahan “400 Permintaan Buruk” dengan mengirimkan permintaan dengan header HTTP yang diformat dengan cara tertentu. Header ini tidak diperhitungkan oleh CDN, sehingga informasi tentang ketidakmampuan mengakses halaman akan di-cache, dan semua permintaan pengguna valid lainnya sebelum batas waktu berakhir dapat mengakibatkan kesalahan, meskipun situs asli menyajikan konten tersebut tanpa masalah.

Tiga opsi serangan telah diusulkan untuk memaksa server HTTP mengembalikan kesalahan:

  • HMO (HTTP Method Override) - penyerang dapat mengganti metode permintaan asli melalui header "X-HTTP-Method-Override", "X-HTTP-Method" atau "X-Method-Override", didukung oleh beberapa server, tetapi tidak diperhitungkan dalam CDN. Misalnya, Anda dapat mengubah metode “GET” asli menjadi metode “DELETE”, yang dilarang di server, atau metode “POST”, yang tidak berlaku untuk statika;

    Serangan CPDoS membuat halaman yang disajikan melalui CDN tidak tersedia

  • HHO (HTTP Header Oversize) - penyerang dapat memilih ukuran header sehingga melebihi batas server sumber, namun tidak termasuk dalam batasan CDN. Misalnya, Apache httpd membatasi ukuran header hingga 8 KB, dan Amazon Cloudfront CDN mengizinkan header hingga 20 KB;
    Serangan CPDoS membuat halaman yang disajikan melalui CDN tidak tersedia

  • HMC (HTTP Meta Character) - penyerang dapat memasukkan karakter khusus ke dalam permintaan (\n, \r, \a), yang dianggap tidak valid di server sumber, namun diabaikan di CDN.

    Serangan CPDoS membuat halaman yang disajikan melalui CDN tidak tersedia

Yang paling rentan terhadap serangan adalah CDN CloudFront yang digunakan oleh Amazon Web Services (AWS). Amazon kini telah memperbaiki masalah tersebut dengan menonaktifkan cache kesalahan, namun peneliti memerlukan waktu lebih dari tiga bulan untuk menambahkan perlindungan. Masalah ini juga mempengaruhi Cloudflare, Varnish, Akamai, CDN77 dan
Cepat, namun serangan melalui mereka terbatas pada server target yang menggunakan IIS, ASP.NET, Labu и Mainkan 1. Tercatat, bahwa 11% domain Departemen Pertahanan AS, 16% URL dari database Arsip HTTP, dan sekitar 30% dari 500 situs web teratas yang diberi peringkat oleh Alexa berpotensi menjadi sasaran serangan.

Sebagai solusi untuk memblokir serangan di sisi situs, Anda dapat menggunakan header “Cache-Control: no-store”, yang melarang cache respons. Di beberapa CDN, mis.
CloudFront dan Akamai, Anda dapat menonaktifkan cache kesalahan di tingkat pengaturan profil. Untuk perlindungan, Anda juga dapat menggunakan firewall aplikasi web (WAF, Web Application Firewall), tetapi firewall tersebut harus diterapkan di sisi CDN sebelum host cache.

Sumber: opennet.ru

Tambah komentar