GH GambleHub

WAF we sanjym goragy

1) Näme üçin WAF API döwründe

Berk tassyklama we parametrleşdirmek bilen hem sanjymlar ýüze çykýar:
  • integrasiýalaryň "uzyn guýruklary" (miras kody, hyzmatdaş webhuklar),
  • parsing tapawudy,
  • aýlanyp geçmegiň täze teswirnama/obfuskasiýa tehnikalary.
  • WAF kod çykmazdan ozal irki şowsuzlyk (early deny) we "wirtual patching" berýär, ýöne howpsuz ösüşiň ornuny tutmaýar.

2) Howp modeli: API üçin sanjymlaryň görnüşleri

SQLi/ORMi: classic/boolean/time-based/stacked; gijikdirmeler arkaly blind.
NoSQLi (Mongo/Elastic): '$ne/ $gt', JSON injection, regex-DoS operatorlary.
Command Injection/RCE: shell-metasimwollar, argumentleri çalyşmak, unsafe deserialization → code exec.
XXE: XML-de daşarky zatlar/DTD.
SSRF: '169. 254. 169. 254 '/içerki hyzmatlara; DNS-rebinding.
Template Injection: Jinja/Thymeleaf/Handlebars; `{{77}}`.
LDAP/EL Injection, XPath, Header injection (CRLF), Path traversal.
GraphQL-aýratynlygy: '__ schema' introspection, soraglaryň çuňlugy/çylşyrymlylygy.
JSON/JS-spesifik: Prototype Pollution ('__ proto __', 'constructor').
gRPC/Protobuf: oversized messages, field smuggling.


3) WAF arhitekturasy

CDN-WAF perimetri: çalt geo/ASN-süzgüç, esasy bot-gözegçilik, kesh/anti-gadding.
Perimetri L7 (NGINX/Envoy/APISIX/Kong): takyk parsing, çuňňur düzgünler, PDP/çäkler bilen integrasiýa.
Saidkar/meş (Envoy WASM/Filter): per-hyzmat, maglumatlara ýakyn, içerki API üçin ýalan-oňyn az.
Maslahat: iki gatly model (CDN-WAF + L7 WAF).


4) Parsing, kadalaşma we anti-aýlaw

WAF programma ýaly kanoniki görnüşi görmeli:
  • Usullaryň kadalaşmagy ('/a/% 2e% 2e/b '→ şowsuzlyk),' UTF-8 '/Unicode confusables, NUL-baýtlar.
  • URL-/HTML-/Unicode-/Base64 gatlaklary.
  • Çäklendirmeler: 'max _ headers', 'max _ header _ size', 'max _ body _ size', 'max _ args', JSON çuňlugy, multipart-bölekleriň çäkleri, 2x gzip/zip-bombalaryň gadagan edilmegi.
  • Content-Type syýasaty: 'application/json' diňe JSON-endpointlerde; "polyglot" -dan ýüz öwürmek.

5) Düzgünleriň modelleri

Negatiw (gollar): OWASP CRS (SQLi/XSS/SSRF/Java/Node RCE we ş.m.). Çalt başlamak.
Oňyn (allow-list): berk shemalar (JSON Schema/Protobuf), görnüşleri we diapazonlary; marşrutlar boýunça.
Anomal/skoring: "şübheli" alamatlaryň jemlenmegi → blokirlemegiň çäkleri.
Kontekst: 'POST/payments' we 'GET/status' üçin dürli profiller; az FP.


6) Gorag bloklary (bir topar)

1. Shemalar we görnüşler: JSON Schema/Protobuf iş logikasyna çenli tassyklama.
2. Parametrleşdirmek: taýýarlanan sözler, ORM-bindingler, konkatenasiýa gadaganlygy.
3. Output-escaping: HTML/JS/SQL kontekstde.
4. Beden syýasaty: Content-Type, ululygy, multipart-çäklendirmeleri, JSON ruçkalarynda binar gadaganlygy.
5. WAF düzgünleri: CRS + negatiw/oňyn.
6. Rate/Quota/Concurrency: brute/pyşbaganyň DDoS basyşy, jemgyýetçilik görnüşleri üçin gorag kapçalary/kynçylyklary.
7. Tor izolýasiýasy: SSRF (deny RFC1918/metadata/Unix sockets) üçin egress-syýasatlar.
8. Arassaçylyk-arassaçylyk: 'X-Content-Type-Options: nosniff', 'Content-Security-Policy' front üçin, 'Referrer-Policy'.
9. GraphQL guard: çuňluk/çylşyrymlylyk çäkleri, önümde introspection gadaganlygy (ýa-da roll-gate).


7) Konfigurasiýa mysallary

7. 1 NGINX + ModSecurity (OWASP CRS)

nginx load_module modules/ngx_http_modsecurity_module.so;

modsecurity on;
modsecurity_rules_file /etc/modsecurity/modsecurity.conf;
modsecurity_rules '
SecRuleEngine On
Подключаем CRS
Include /etc/modsecurity/crs/crs-setup.conf
Include /etc/modsecurity/crs/rules/.conf

Позитивные правила: только JSON и ограничение размера
SecRule REQUEST_HEADERS:Content-Type "!@rx ^application/json($;)" "id:10001,phase:1,deny,status:415,msg:'Only JSON allowed'"
SecRequestBodyLimit 1048576
SecRequestBodyNoFilesLimit 1048576

Блок локальных адресов (SSRF)
SecRule REQUEST_HEADERS:Host "@ipmatch 127.0.0.0/8 10.0.0.0/8 169.254.0.0/16 192.168.0.0/16" \
"id:10002,phase:1,deny,status:403,msg:'Blocked private range'"
';

server {
listen 443 ssl http2;
server_name api.example.com;

client_max_body_size 1m;
proxy_request_buffering on;  # защита от slow-POST proxy_read_timeout 300ms;
proxy_connect_timeout 100ms;

location /v1/ {
proxy_pass http://app_backends;
}
}

7. 2 Envoy HTTP WAF (WASM + JSON Schema + SSRF egress-deny)

yaml http_filters:
- name: envoy.filters.http.wasm typed_config:
config:
vm_config: { vm_id: waf, code: { local: { filename: /plugins/waf.wasm } } }
configuration:
"@type": type.googleapis.com/google.protobuf.Struct value:
crs_profile: "strict"
deny_patterns: ["(?i)union.select", "(?i)(sleep    benchmark)\\s\\("]
json_schema:
"/v1/payments:create": "/schemas/payments_create.json"
- name: envoy.filters.http.router

Egress SSRF guard (L4): deny private ranges from gateway filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy typed_config:
stat_prefix: egress cluster: internet access_log: [...]
tunneling_config:
hostname: "%REQ(:authority)%"
transport_socket:
name: envoy.transport_sockets.tls

7. 3 APISIX: Görnüşleri çäklendirmek we gabamak

yaml routes:
- uri: /v1/
plugins:
cors: { allow_origins: "https://app.example.com" }
request-validation:
body_schema:
{"type":"object","properties":{"amount":{"type":"number","minimum":1}},"required":["amount"]}
uri-blocker:
block_rules: ["..","%2e%2e","%2f..","\\x00"]  # traversal/NULL proxy-rewrite:
headers:
set:
X-Content-Type-Options: "nosniff"

8) Galp täsirleri sazlamak we azaltmak (FP)

per-route profilleri: berk düzgünler diňe ýerlikli ýerlerde (mysal üçin '/search '/'% ').
Shadow/Report-Only: Blokyň öňündäki işleýiş ýazgylary; A/B metrikleri deňeşdirmek.
"Şowhunly" kanuny parametrler üçin aýratyn allow-sanawlar.
Skoring: Diňe görkezijiler> bosagada bloklamak.
Synaglar: täze düzgünlere traffigiň az göterimi → awto-rollback.


9) Gözegçilik we forensika

Метрики: `waf_block_total{rule}`, `waf_anomaly_score`, `request_body_rejected_total`, `schema_violation_total`, `ssrf_block_total`.
Loglar (sample): düzgün, soragyň bir bölegi (redaktirlenen), 'trace _ id', 'tenant', 'route', sebäp. PII/syrlary gizläň.
Daşbordlar: top-düzgünler/ýollar, FP-klaster, çykarylandan soň dinamika.
Wakalar: artefaktlary (zerur bolsa payload, pcap), RCA önümlerini we "wirtual ýamalary" saklamak.


10) Synag we bulam-bujarlyk ssenarileri

WAF aýlaw korpuslary (SQLi/XSS/SSRF), iki/üç kod, garyşyk Unicode.
Parsing tapawudy: proxy we framwork tapawutlanyp bilýän payload iberiň (iki sany parametr, massiwler, ';' vs '&).
Slow-POST/oversize, zip bombalar, köp bölümli görnüşler, nädogry boundary.
GraphQL: çuňluk/çylşyrymlylyk generatory, çäkleri we wagtlary barlamak.


11) Antipatternler

"CRS-i açdylar we ýatdan çykardylar": shemasyz, marşrutlar boýunça sazlamasyz.
Çig haýyş bedeni we PII bolan ýazgylar.
Ölçegiň kadalaşmagy/çäkleri ýok → aýlanyp geçmek, parsing üçin DoS.
'Content-Type '/charset barlaglary → poliglot hüjümleri.
Bulut metadaty üçin egress-süzgüçleriň ýoklugy → SSRF.
Daşarky we içerki API üçin bir umumy profil.
"Hyzmatdaş üçin" gözegçiliksiz kadadan çykmalar → perimetrdäki deşikler.


12) iGaming/Maliýe aýratynlyklary

Töleg/çykyş ruçkalarynda güýçlendirilen profiller: kiçi body-limitler, berk shemalar, account/IBAN/PAN-meýdanlar üçin deny-sanawlar (maskalanmak, format barlaglary).
PSP/KYC-den webhuklar: HMAC-gol/mutual TLS, aýry-aýry WAF profilleri, anti-replay.
Geo/ASN-süzgüçleri we bot-hasaba alynmalaryň we bonus-satyn alynmalaryň öňüni almak üçin özüňi alyp barşyň çäkleri.
Hadysalaryň üýtgemeýän žurnallary (audit), ýurisdiksiýalar boýunça saklamak.


13) Prod-taýynlyk çek-sanawy

  • Iki gatly WAF (CDN + L7), bitewi kadalaşma we ululyk çäkleri.
  • OWASP CRS goşuldy, per-route düzgüni; JSON Schema/Protobuf write-ruçkalarda.
  • Content-Type/charset syýasaty; goşa dekoding/NULL/traversal gadaganlygy.
  • SSRF-egress-blok hususy zolaklara/metadata; DNS-rebinding goragy.
  • Rate/Quota/Concurrency we anti-bot (kynçylyk) jemgyýetçilik görnüşlerinde.
  • Shadow/Report-Only → canary → enforce; SLO we FP boýunça awto-rollback.
  • Gizlenen metrikler/loglar/söwdalar; "top-düzgünler "/FP dashbordlary.
  • Wirtual ýama we RCA pleýbuklary; yzygiderli обход synaglary.
  • PSP/KYC webhuk, töleg ruçkalary we içerki API üçin aýratyn profiller.

14) TL; DR

Goragy gatlaklara görä guruň: kadalaşmak we çäkler → shemalar/görnüşler → parametrlemek → WAF (CRS + kastom) → rate/bot-süzgüçler → SSRF egress-blok. Per-route çalyň, shadow → canary-de täze düzgünleri açyň, metrlere/FP-e gözegçilik ediň we kod fiksisine çenli "wirtual ýamalary" ediň. Töleg/webhuk-ýollar üçin - aýratyn berk profiller, HMAC/mTLS we iň az ynam penjireleri.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.