Bosh sahifa Wiki Request Smuggling

Request Smuggling

Request Smuggling — front-end proxy va back-end server HTTP request chegarasini turlicha talqin qilganda attacker yashirin requestni keyingi oqimga joylashtiradigan zaiflik. U web application, identity, protokol parsing yoki software supply chain xavfsizligida uchraydigan aniq tushunchani bildiradi. Atama xavfning nomini beradi, ammo real ta’sir application arxitekturasi, attacker imkoniyati, ishlatilgan kutubxona va operatsion nazoratga bog‘liq.

Qo‘llanish konteksti

HTTP/1.1 da Content-Length va Transfer-Encoding headerlari xabar tanasi qayerda tugashini belgilaydi. Agar reverse proxy bir qoida bo‘yicha, origin server boshqa qoida bo‘yicha parsing qilsa, attacker bir connection ichida ortiqcha baytlarni keyingi request sifatida ko‘rsatishi mumkin. Bu session hijack, cache poisoning yoki access control bypassga olib keladi.

Request Smuggling alohida zaiflik yoki hujum usuli sifatida ko‘rinsa ham, uning natijasi ko‘pincha boshqa qatlamdagi ishonch qaroriga ulanadi. Browser origini, reverse proxy, directory service, mail gateway, package registry yoki CI runner bir xil inputni turlicha talqin qilishi mumkin. Shu sabab tahlil faqat kod parchasini emas, butun data yo‘lini qamrab oladi.

Ekspluatatsiya yo‘li

Request desynchronization umumiy holat bo‘lib, client, proxy va backend oqimlari sinxron talqin qilinmaydi. Request smuggling odatda attacker ataylab bir request ichiga boshqasini “yashirishi” texnikasiga urg‘u beradi. XSSdan farqli ravishda hujum browser parseriga emas, HTTP framingga tayanadi.

Request Smugglingdan himoyalanishda “filterlash” so‘zi aniq contextga bog‘lanadi. HTML, LDAP, XPath, HTTP header, DNS yoki package metadata uchun ruxsat etilgan belgilar va escaping qoidalari bir-biridan farq qiladi.

Security review payloadga emas, invariantga qaraydi: ishonchsiz data instructionga aylanmasligi, cache key noto‘liq bo‘lmasligi, build artefakti provenance yo‘qotmasligi yoki secret logga tushmasligi kerak. Request Smuggling shunday invariant orqali tekshiriladi.

Risk bahosi

Proxy va backend bir xil HTTP parser siyosatiga ega bo‘ladi. Ambiguous Content-Length, Transfer-Encoding, whitespace va HTTP/2 downgrade holatlari rad etiladi. Connection reuse, buffering va normalization sozlamalari test qilinadi; edge qatlamda aniqlangan xabar backendga xom holda uzatilmaydi.

Patchdan keyin eski cache, token, build artefakt yoki zaharlangan DNS yozuvi qolishi mumkin. Request Smugglingga qarshi tuzatish deploy qilingach, persisted state va downstream nusxalar ham tozalanadi yoki invalidatsiya qilinadi.

Request Smuggling bo‘yicha xavf bahosi confidentiality, integrity, availability va accountability oqibatlari bo‘yicha ajratiladi. Ba’zi holatlarda asosiy zarar ma’lumot o‘qilishi emas, audit izining buzilishi, trusted update kanalining zaharlanishi yoki boshqa foydalanuvchi kontekstida amal bajarilishidir. Shuning uchun severity faqat payload murakkabligiga qarab belgilanmaydi.

Aniqlash

Static analysis inputning source’dan sinkka borishini ko‘rsatishi mumkin, lekin runtime konfiguratsiya va reverse proxy behaviorini to‘liq almashtirmaydi. Request Smuggling uchun static, dynamic va manual tekshiruvlar bir-birini to‘ldiradi.

Request Smuggling uchun sinovlar oddiy “yomon payload rad etildi” darajasida qolmaydi. Valid input, chegaraviy qiymat, noto‘g‘ri encoding, eski client, rollback, cache invalidation va monitoring signallari birga tekshiriladi. Tuzatishdan keyin tegishli log, alert va runbook yangilanmasa, keyingi incidentda muammo qayta kech aniqlanishi mumkin.

Operatsion amaliyotda owner, qabul mezoni va favqulodda javob tartibi oldindan yoziladi. Agar Request Smuggling supply chain yoki identity tizimiga taalluqli bo‘lsa, credential rotation, artefakt revoke, cache purge yoki user session invalidation kabi keyingi harakatlar ham rejaning bir qismi bo‘ladi.

Bog‘liq tushunchalar

HTTP parser, reverse proxy, Content-Length, Transfer-Encoding, request desynchronization, cache poisoning