Bosh sahifa Wiki SSRF

SSRF

SSRF — serverni attacker tanlagan yoki ta’sir qila oladigan manzilga request yuborishga majbur qiladigan web zaiflik. To‘liq nomi Server-Side Request Forgery. Hujumchi serverning network joylashuvi, credentiallari va ishonch darajasidan foydalanib, tashqaridan kira olmaydigan resource’larga murojaat qilishga urinadi.

SSRF ko‘pincha URL import, webhook, image fetch, PDF generator, proxy, preview va integration funksiyalarida uchraydi.

Zaif funksiyalar

Riskli funksiyalar:

  • URLdan rasm yuklash;
  • remote fayl importi;
  • webhook test;
  • link preview;
  • document converter;
  • feed reader;
  • callback;
  • cloud metadata bilan ishlash;
  • generic HTTP proxy.

User URLni to‘liq yoki qisman boshqarsa threat modeli talab qilinadi.

Ichki network

Application server ichki service’larga kira olishi mumkin:

127.0.0.1
private IP
internal DNS
management port
database admin
container network

Tashqi user bu manzillarga to‘g‘ridan-to‘g‘ri kira olmasa ham server orqali request yuborishga urinadi.

Cloud metadata

Cloud virtual machine yoki container muhitida metadata endpoint instance identity va vaqtinchalik credential berishi mumkin.

SSRF orqali metadata’ga access olinsa attacker cloud API huquqlarini qo‘lga kiritishi ehtimoli bor.

Metadata service himoyasi, token talabi va minimal IAM role muhim.

Blind SSRF

Server response body’ni userga qaytarmaydi, ammo request baribir yuboriladi.

Attacker:

  • DNS log;
  • tashqi callback;
  • timing;
  • error farqi;
  • service side effect

orqali request bo‘lganini bilishi mumkin.

Response ko‘rinmasligi SSRF xavfini yo‘qotmaydi.

URL parser

URL murakkab syntaxga ega:

Custom string tekshiruvi parser farqlari sabab bypass qilinishi mumkin.

Bitta ishonchli parser ishlatiladi va normalized host tekshiriladi.

DNS rebinding

Allowlist tekshiruvida domen public IPga resolve bo‘lishi, request vaqtida esa boshqa yoki private IPga o‘zgarishi mumkin.

DNS rebinding va multi-address holati hisobga olinadi.

Har connection uchun resolved IP tekshiriladi va redirectdan keyin qayta validation qilinadi.

Redirect

Ruxsat etilgan tashqi URL keyin private manzilga redirect qilishi mumkin.

HTTP client redirectni avtomatik kuzatsa dastlabki allowlist yetarli emas.

Har redirect target alohida tekshiriladi yoki redirect butunlay o‘chiriladi.

Scheme

Faqat HTTP va HTTPS kutilgan bo‘lsa boshqa schemelar rad etiladi.

Generic URL library file, FTP yoki boshqa protocolni qo‘llashi mumkin.

Protocol allowlist minimal bo‘ladi.

Port

User arbitrary port tanlasa server ichki management yoki database service’ga murojaat qilishi mumkin.

Ruxsat etilgan service uchun aniq portlar allowlist qilinadi.

Default port normalization ham tekshiriladi.

Egress filtering

Application subnet faqat zarur tashqi destinationlarga chiqishi mumkin.

Firewall yoki proxy:

ga connectionni bloklaydi.

Application validation buzilsa ham network qatlam himoya beradi.

Dedicated fetch service

Remote content olish alohida izolyatsiyalangan service orqali bajarilishi mumkin.

U:

  • ichki networkga kira olmaydi;
  • minimal credentialga ega;
  • response size va type limitiga ega;
  • timeout bilan ishlaydi;
  • contentni scan qiladi.

Asosiy application arbitrary network access olmaydi.

Response limit

SSRF faqat targetga access emas, resource exhaustion ham yaratishi mumkin.

Remote server cheksiz yoki juda katta response yuborishi ehtimoli bor.

Client:

  • maksimal byte;
  • timeout;
  • decompression limit;
  • content type;
  • redirect soni

ni cheklaydi.

Authentication forwarding

Server userning cookie, Authorization header yoki internal tokenini arbitrary targetga yubormasligi kerak.

HTTP client default headerlari destinationga qarab boshqariladi.

Redirect boshqa hostga o‘tsa secret header olib tashlanadi.

Logging

Logda:

  • original URL;
  • normalized host;
  • resolved IP;
  • redirect;
  • response status;
  • byte;
  • timeout;
  • user yoki tenant

qayd etiladi.

Secret query parameterlar redaction qilinadi.

Test

SSRF testlari private IP, localhost, IPv6, encoded address, redirect, DNS o‘zgarishi va metadata manzilini qamrab oladi.

Production ichki service’lariga zararli request yubormasdan izolyatsiyalangan test endpointlari ishlatiladi.

Hostname allowlist

Suffix tekshiruvi xato yozilsa trusted.example.attacker.tld kabi host o‘tishi mumkin. Host parser orqali ajratilib exact match yoki haqiqiy subdomain boundary tekshiriladi. Username qismidagi [email protected] ham chalkashlik yaratishi mumkin.

IP formatlari

IP manzil decimal, hexadecimal, IPv6, IPv4-mapped IPv6 yoki boshqa alternativ yozuvlarda ifodalanishi mumkin. Custom regex barcha formatni qamrab olmasligi ehtimoli bor. Parser va resolved address classification librarysi ishlatiladi.

Audit endpoint

Remote fetch funksiyasi business uchun zarur bo‘lsa barcha requestlar central service orqali o‘tadi. Security jamoasi qaysi user qaysi hostga qachon request yuborganini ko‘ra oladi. Noma’lum private destination urinishlari alert yaratadi.

URL credentiallari

URL ichidagi username:password@host qismi log va UI’da hostni chalkashtirishi mumkin. Application embedded credentiallarni rad etadi. Remote resource uchun zarur authentication server konfiguratsiyasidan qo‘shiladi, user URLidan olinmaydi.

Proxy

Barcha outbound HTTP requestlar nazorat qilinadigan egress proxy orqali o‘tsa destination policy markazlashtiriladi. Proxy private range, noma’lum port va metadata manzilini bloklaydi. Application proxy’ni chetlab to‘g‘ridan-to‘g‘ri networkga chiqolmasligi kerak.

Bog‘liq tushunchalar

Server-Side Request Forgery, URL parsing, DNS rebinding, Cloud metadata, Egress filtering, Allowlist, Redirect, Internal network, Web security