Pag-atake ng CPDoS upang gawing hindi available ang mga pahinang inihatid sa pamamagitan ng CDN

Mga mananaliksik mula sa Unibersidad ng Hamburg at Cologne
umunlad isang bagong diskarte sa pag-atake sa mga network ng paghahatid ng nilalaman at mga proxy ng caching - CPDoS (Cache-Poisoned Denial-of-Service). Ang pag-atake ay nagbibigay-daan sa pag-access sa isang pahina na tanggihan sa pamamagitan ng cache poisoning.

Ang problema ay dahil sa ang katunayan na ang mga CDNs cache ay hindi lamang matagumpay na nakumpleto ang mga kahilingan, kundi pati na rin ang mga sitwasyon kapag ang http server ay nagbabalik ng isang error. Bilang panuntunan, kung may mga problema sa pagbuo ng mga kahilingan, ang server ay naglalabas ng 400 (Bad Request) na error; ang tanging exception ay ang IIS, na naglalabas ng 404 (Not Found) na error para sa masyadong malalaking header. Pinapayagan lamang ng pamantayan ang mga error na may mga code na 404 (Not Found), 405 (Method Not Allowed), 410 (Gone) at 501 (Not Implemented) na ma-cache, ngunit ang ilang CDN ay nag-cache din ng mga tugon na may code 400 (Bad Request), na depende sa ipinadalang kahilingan.

Maaaring maging sanhi ng pagbabalik ng "400 Bad Request" na error ang orihinal na mapagkukunan sa pamamagitan ng pagpapadala ng kahilingan na may mga HTTP header na naka-format sa isang partikular na paraan. Ang mga header na ito ay hindi isinasaalang-alang ng CDN, kaya ang impormasyon tungkol sa kawalan ng kakayahang ma-access ang pahina ay mai-cache, at lahat ng iba pang wastong kahilingan ng user bago mag-expire ang timeout ay maaaring magresulta sa isang error, sa kabila ng katotohanan na ang orihinal na site ay naghahatid ng nilalaman nang walang anumang problema.

Tatlong opsyon sa pag-atake ang iminungkahi para pilitin ang HTTP server na magbalik ng error:

  • HMO (HTTP Method Override) - maaaring i-override ng isang attacker ang orihinal na paraan ng kahilingan sa pamamagitan ng "X-HTTP-Method-Override", "X-HTTP-Method" o "X-Method-Override" na mga header, na sinusuportahan ng ilang server, ngunit hindi isinasaalang - alang sa CDN . Halimbawa, maaari mong baguhin ang orihinal na paraan ng "GET" sa pamamaraang "DELETE", na ipinagbabawal sa server, o ang paraan ng "POST", na hindi naaangkop para sa mga estadistika;

    Pag-atake ng CPDoS upang gawing hindi available ang mga pahinang inihatid sa pamamagitan ng CDN

  • HHO (HTTP Header Oversize) - maaaring piliin ng isang attacker ang laki ng header upang lumampas ito sa limitasyon ng source server, ngunit hindi mapasok sa mga paghihigpit ng CDN. Halimbawa, nililimitahan ng Apache httpd ang laki ng header sa 8 KB, at pinapayagan ng Amazon Cloudfront CDN ang mga header na hanggang 20 KB;
    Pag-atake ng CPDoS upang gawing hindi available ang mga pahinang inihatid sa pamamagitan ng CDN

  • HMC (HTTP Meta Character) - ang isang attacker ay maaaring magpasok ng mga espesyal na character sa kahilingan (\n, \r, \a), na itinuturing na hindi wasto sa source server, ngunit hindi pinapansin sa CDN.

    Pag-atake ng CPDoS upang gawing hindi available ang mga pahinang inihatid sa pamamagitan ng CDN

Ang pinaka-madaling atakehin ay ang CloudFront CDN na ginagamit ng Amazon Web Services (AWS). Inayos na ngayon ng Amazon ang problema sa pamamagitan ng hindi pagpapagana ng error caching, ngunit tumagal ang mga mananaliksik ng higit sa tatlong buwan upang magdagdag ng proteksyon. Naapektuhan din ng isyu ang Cloudflare, Varnish, Akamai, CDN77 at
Mabilis, ngunit ang pag-atake sa pamamagitan ng mga ito ay limitado sa mga target na server na gumagamit ng IIS, ASP.NET, Prasko и Maglaro 1. Ito ay nabanggit, na 11% ng mga domain ng Departamento ng Depensa ng US, 16% ng mga URL mula sa database ng HTTP Archive at humigit-kumulang 30% ng nangungunang 500 na website na niraranggo ni Alexa ay posibleng mapailalim sa pag-atake.

Bilang isang solusyon upang harangan ang isang pag-atake sa gilid ng site, maaari mong gamitin ang header na "Cache-Control: no-store", na nagbabawal sa pag-cache ng tugon. Sa ilang CDN, hal.
CloudFront at Akamai, maaari mong i-disable ang pag-cache ng error sa antas ng mga setting ng profile. Para sa proteksyon, maaari mo ring gamitin ang mga firewall ng web application (WAF, Web Application Firewall), ngunit dapat itong ipatupad sa gilid ng CDN sa harap ng mga host ng caching.

Pinagmulan: opennet.ru

Magdagdag ng komento