RangeAmp – серыя нападаў на CDN, якая маніпулюе HTTP-загалоўкам Range

Група даследчыкаў з Пекінскага ўніверсітэта, Універсітэта Цінхуа і Тэхаскага ўніверсітэта ў Даласе выявіла новы клас DoS-нападаў — RangeAmp, заснаваны на выкарыстанні HTTP-загалоўка Range для арганізацыі ўзмацнення трафіку праз сеткі дастаўкі кантэнту (CDN). Сутнасць метаду ў тым, што з-за асаблівасці апрацоўкі Range-загалоўкаў у шматлікіх CDN атакавалы можа запытаць праз CDN адзін байт з вялікага файла, але CDN загрузіць з мэтавага сервера ўвесь файл ці значна большы блок дадзеных для памяшкання ў кэш. Ступень узмацнення трафіку пры такім нападзе ў залежнасці ад CDN складае ад 724 да 43330 раз, што можа выкарыстоўвацца для перагрузкі ўваходным трафікам CDN або зніжэння прапускной здольнасці канчатковага канала сувязі да сайта ахвяры.

RangeAmp - серыя нападаў на CDN, якая маніпулюе HTTP-загалоўкам Range

Загаловак Range дае кліенту магчымасць вызначыць дыяпазон пазіцый у файле, якія трэба загрузіць замест аддачы поўнага файла. Напрыклад, кліент можа паказаць "Range: bytes=0-1023" і сервер перадасць толькі першыя 1024 байта дадзеных. Падобная магчымасць запатрабавана пры загрузцы вялікіх файлаў - карыстач можа прыпыніць загрузку, а потым працягнуць яго з перапыненай пазіцыі. Пры ўказанні "bytes=0-0" стандарт загадвае аддаваць першы байт у файле, "bytes=-1" - апошні, "bytes=1-" - пачынальна з 1 байта і да канца файла. Дапускаецца перадача некалькіх дыяпазонаў ў адным загалоўку, напрыклад "Range: bytes=0-1023,8192-10240".

Дадаткова прапанаваны другі варыянт нападу, накіраваны на падвышэнне сеткавай нагрузкі пры пракідзе трафіку праз яшчэ адзін CDN, які выкарыстоўваецца як проксі (напрыклад, калі ў якасці фронтэнда (FCDN) выступае Cloudflare, а бэкенда (BCDN) - Akamai). Метад нагадвае першы напад, але лакалізуецца ўсярэдзіне CDN-сетак і дазваляе ўзмацніць трафік пры звароце праз іншыя CDN, падвысіўшы нагрузку на інфраструктуру і знізіўшы якасць сэрвісу.

Ідэя ў тым, што атакавалы накіроўвае ў CDN Range-запыты некалькіх дыяпазонаў, такія як «bytes=0-,0-,0-…», «bytes=1-,0-,0-…» ці «bytes=-1024,0 ,0-,0-…». Запыты ўтрымоўваюць вялікую колькасць дыяпазонаў «0-«, якія разумеюць аддачу файла ад нулявой пазіцыі да канца. З-за некарэктнай рэалізацыі разбору дыяпазонаў пры звароце першага CDN да другога, на кожны дыяпазон «53-» аддаецца поўны файл (дыяпазоны не агрэгуюцца, а паслядоўна перабіраюцца), калі ў першапачаткова адпраўленым атакавалым запыце прысутнічае дубляванне і скрыжаванне дыяпазонаў. Ступень узмацнення трафіку ў такім нападзе складае ад 7432 да XNUMX разоў.

RangeAmp - серыя нападаў на CDN, якая маніпулюе HTTP-загалоўкам Range

У працэсе даследавання было вывучана паводзіны 13 CDN -
Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, KeyCDN, StackPath і Tencent Cloud. Усё з разгледжаных CDN дапушчалі першы выгляд нападу на канчатковы сервер. Другому варыянту нападу на CDN апынуліся схільныя 6 сэрвісаў, з якіх чатыры могуць выступаць у нападзе ў ролі фронтэнда (CDN77, CDNsun, Cloudflare і StackPath) і тры ў ролі бэкенда (Akamai, Azure і StackPath). Найбольшая ўзмацнення дасягаецца ў Akamai і StackPath, якія дапускаюць указанне ў загалоўку Range больш за 10 тысяч дыяпазонаў. Уладальнікі CDN былі апавешчаныя аб уразлівасцях каля 7 месяцаў назад і да моманту публічнага расчынення звестак 12 з 13 CDN ухілілі выяўленыя праблемы ці выказалі гатовасць іх ухіліць (не адрэагаваў толькі сэрвіс StackPath).

Крыніца: opennet.ru

Дадаць каментар