Serangan CPDoS yang menjadikan halaman yang disiarkan melalui CDN tidak dapat diakses

Penyelidik dari Universiti Hamburg dan Cologne
dibangunkan teknik serangan baharu pada rangkaian penghantaran kandungan dan proksi caching - CPDoS (Penolakan Perkhidmatan Beracun Cache). Serangan itu membolehkan akses ke halaman dinafikan melalui keracunan cache.

Masalahnya adalah disebabkan oleh fakta bahawa cache CDN bukan sahaja berjaya menyelesaikan permintaan, tetapi juga situasi apabila pelayan http mengembalikan ralat. Sebagai peraturan, jika terdapat masalah dengan membentuk permintaan, pelayan mengeluarkan ralat 400 (Permintaan Buruk); satu-satunya pengecualian ialah IIS, yang mengeluarkan ralat 404 (Tidak Ditemui) untuk pengepala yang terlalu besar. Piawaian ini hanya membenarkan ralat dengan kod 404 (Tidak Ditemui), 405 (Kaedah Tidak Dibenarkan), 410 (Hilang) dan 501 (Tidak Dilaksanakan) untuk dicache, tetapi sesetengah CDN turut cache respons dengan kod 400 (Permintaan Buruk), yang bergantung atas permintaan yang dihantar.

Penyerang boleh menyebabkan sumber asal mengembalikan ralat "400 Permintaan Buruk" dengan menghantar permintaan dengan pengepala HTTP yang diformatkan dengan cara tertentu. Pengepala ini tidak diambil kira oleh CDN, jadi maklumat tentang ketidakupayaan untuk mengakses halaman akan dicache dan semua permintaan pengguna yang sah yang lain sebelum tamat masa tamat boleh mengakibatkan ralat, walaupun pada hakikatnya tapak asal menyediakan kandungan tanpa sebarang masalah.

Tiga pilihan serangan telah dicadangkan untuk memaksa pelayan HTTP mengembalikan ralat:

  • HMO (HTTP Method Override) - penyerang boleh mengatasi kaedah permintaan asal melalui pengepala "X-HTTP-Method-Override", "X-HTTP-Method" atau "X-Method-Override", yang disokong oleh sesetengah pelayan, tetapi tidak diambil kira dalam CDN . Sebagai contoh, anda boleh menukar kaedah "GET" asal kepada kaedah "DELETE", yang dilarang pada pelayan, atau kaedah "POST", yang tidak berkenaan untuk statik;

    Serangan CPDoS yang menjadikan halaman yang disiarkan melalui CDN tidak dapat diakses

  • HHO (Saiz Pengepala HTTP) - penyerang boleh memilih saiz pengepala supaya ia melebihi had pelayan sumber, tetapi tidak termasuk dalam sekatan CDN. Contohnya, Apache httpd mengehadkan saiz pengepala kepada 8 KB, dan Amazon Cloudfront CDN membenarkan pengepala sehingga 20 KB;
    Serangan CPDoS yang menjadikan halaman yang disiarkan melalui CDN tidak dapat diakses

  • HMC (HTTP Meta Character) - penyerang boleh memasukkan aksara khas ke dalam permintaan (\n, \r, \a), yang dianggap tidak sah pada pelayan sumber, tetapi diabaikan dalam CDN.

    Serangan CPDoS yang menjadikan halaman yang disiarkan melalui CDN tidak dapat diakses

Yang paling mudah diserang ialah CloudFront CDN yang digunakan oleh Amazon Web Services (AWS). Amazon kini telah menyelesaikan masalah dengan melumpuhkan cache ralat, tetapi penyelidik mengambil masa lebih daripada tiga bulan untuk menambah perlindungan. Isu ini juga mempengaruhi Cloudflare, Varnish, Akamai, CDN77 dan
Dengan pantas, tetapi serangan melalui mereka terhad kepada pelayan sasaran yang menggunakan IIS, ASP.NET, Flask ΠΈ Main 1. Ia diperhatikan, bahawa 11% daripada domain Jabatan Pertahanan AS, 16% daripada URL daripada pangkalan data Arkib HTTP dan kira-kira 30% daripada 500 tapak terbesar yang disenaraikan oleh Alexa berkemungkinan tertakluk kepada serangan.

Sebagai penyelesaian untuk menyekat serangan di bahagian tapak, anda boleh menggunakan pengepala "Cache-Control: no-store", yang melarang cache respons. Dalam sesetengah CDN, mis.
CloudFront dan Akamai, anda boleh melumpuhkan cache ralat pada tahap tetapan profil. Untuk perlindungan, anda juga boleh menggunakan firewall aplikasi web (WAF, Web Application Firewall), tetapi ia mesti dilaksanakan pada bahagian CDN di hadapan hos caching.

Sumber: opennet.ru

Tambah komen