GH GambleHub

WAF və inyeksiya qorunması

1) Niyə API dövründə WAF

Hətta ciddi validasiya və parametrləşdirmə ilə inyeksiyalar aşağıdakılardan qaynaqlanır:
  • «uzun quyruqlu» inteqrasiyalar (irsi kod, tərəfdaş vebhuk),
  • parsinq fərqləri (proxy framework),
  • yeni protokol/obfusion atlama texnikaları.
  • WAF kod buraxılmazdan əvvəl erkən uğursuzluq (early deny) və «virtual yamaq» verir, lakin təhlükəsiz inkişafı əvəz etmir.

2) Təhlükə modeli: API üçün inyeksiya növləri

SQLi/ORMi: classic/boolean/time-based/stacked; gecikmələr vasitəsilə blind.
NoSQLi (Mongo/Elastic): '$ne/ $gt', JSON injection, regex-DoS operatorları.
Command Injection/RCE: shell-metacimwall, arqumentlərin dəyişdirilməsi, unsafe deserialization → code exec.
XXE: XML-də xarici varlıqlar/DTD.
SSRF: '169. 254. 169. 254 '/daxili xidmətlər; DNS-rebinding.
Template Injection: Jinja/Thymeleaf/Handlebars; `{{77}}`.
LDAP/EL Injection, XPath, Header injection (CRLF), Path traversal.
GraphQL-spesifik: '__ schema' introspection, sorğuların dərinliyi/mürəkkəbliyi.
JSON/JS spesifik: Prototype Pollution ('__ proto __', 'constructor').
gRPC/Protobuf: sxemlərin uyğunsuzluğu ilə oversized messages, field smuggling.


3) WAF memarlığı

CDN-WAF perimetri: sürətli geo/ASN filtrasiya, baza bot nəzarəti, cache/anti-adding.
L7 perimetri (NGINX/Envoy/APISIX/Kong): dəqiq parsinq, dərin qaydalar, PDP/limitlərlə inteqrasiya.
Saidkar/mash (Envoy WASM/Filter): per-servis, məlumatlara yaxın, daxili API üçün daha az yanlış-müsbət.
Tövsiyə: iki qatlı model (CDN-WAF + L7 WAF).


4) Parsinq, normallaşma və anti-bypass

WAF tətbiqlə eyni kanonik görünüşü görməlidir:
  • Yolların normallaşdırılması ('/a/% 2e% 2e/b '→ uğursuzluq),' UTF-8 '/Unicode confusables, NUL-baytlar.
  • Vahid dekodinq: URL-/HTML-/Unicode-/Base64 qatları, ikiqat dekodinq qadağası.
  • Məhdudiyyətlər: 'max _ headers', 'max _ header _ size', 'max _ body _ size', 'max _ args', JSON dərinliyi, multipart hissələri limiti, 2x gzip/zip bomba qadağası.
  • Content-Type siyasəti: 'application/json' yalnız JSON end-pointlərində; «polyglot» rədd.

5) Qaydaların modelləri

Mənfi (imzalar): OWASP CRS (SQLi/XSS/SSRF/Java/Node RCE və s.). Sürətli başlanğıc.
Müsbət (allow-list): sərt sxemlər (JSON Schema/Protobuf), növlər və diapazonlar; marşrutlar üzrə.
Anormal/skoring: «şübhəli» əlamətlərin cəmlənməsi → kilid həddi.
Kontekst: 'POST/payments' və 'GET/status' üçün müxtəlif profillər; az FP.


6) Mühafizə blokları (birlikdə)

1. Sxemlər və növləri: JSON Schema/Protobuf iş məntiqinə validasiya.
2. Parametrləşdirmə: hazırlanmış ifadələr, ORM-bindinqlər, konkatenasiya qadağası.
3. Output-escaping: HTML/JS/SQL kontekstində.
4. Bədən siyasəti: Content-Type, ölçüsü, multipart məhdudiyyətləri, JSON qələmlərində binarların qadağan edilməsi.
5. WAF qaydaları: CRS + xüsusi mənfi/müsbət.
6. Rate/Quota/Concurrency: brute/tısbağa DDoS, ictimai formalar üçün qoruyucu kapçalar/çağırışlar.
7. Şəbəkələrin izolyasiyası: SSRF (deny RFC1918/metadata/Unix sockets) üçün egress siyasəti.
8. Headers-gigiyena: 'X-Content-Type-Options: nosniff', 'Content-Security-Policy' cəbhə üçün, 'Referrer-Policy'.
9. GraphQL guard: dərinlik/mürəkkəblik limitləri, prod introspection qadağan (və ya roll-gate).


7) Konfiqurasiya nümunələri

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: növ məhdudlaşdırılması və anti-fusion

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) Tyuninq və saxta təsirlərin azaldılması (FP)

per-route profilləri: yalnız uyğun olduqları yerlərdə ciddi qaydalar (məsələn, '/search '/'% ').
Shadow/Report-Only: blok əvvəl işə salmaq; A/B müqayisə metrik.
«Səs-küylü» legitim parametrlər üçün xüsusi allow siyahıları.
Skoring: yalnız göstərici> eşik cəmində bloklayın.
Təcrübələr: Yeni qaydalara trafikin kiçik faizi → avto-rollback.


9) Müşahidə və forensika

Метрики: `waf_block_total{rule}`, `waf_anomaly_score`, `request_body_rejected_total`, `schema_violation_total`, `ssrf_block_total`.
Qeydlər (sample): qayda, sorğu hissəsi (redaktə edilmiş), 'trace _ id', 'tenant', 'route', səbəb. PII/sirləri maskalayın.
Daşbordlar: top-qaydalar/yollar, FP-klasterlər, buraxıldıqdan sonra dinamika.
Hadisələr: artefaktların (lazım olduqda payload, pcap), RCA məhsullarının və «virtual yamaların» qorunması.


10) Test və xaos ssenariləri

WAF bypass korpusları (SQLi/XSS/SSRF), ikiqat/üçlü kodlama, qarışıq Unicode.
Parsinq fərqləri: payload göndərin, burada proxy və framework ayrıla bilər (parametrlərin dublları, massivlər, 'vs' &).
Slow-POST/oversize, zip bombalar, çox hissəli formalar, səhv boundary.
GraphQL: dərinlik/mürəkkəblik generator, limitləri və zamanları yoxlamaq.


11) Antipattern

«CRS daxil və unudulmuş»: heç bir sxem, heç bir marşrutları sazlama.
çiy bədən sorğu və PII ilə Logi.
Normallaşma/ölçü limitləri yoxdur → bypass, parsing üçün DoS.
'Content-Type '/charset yoxlamalar → poliqlot hücumları.
Bulud metadata → SSRF egress filtrlərinin olmaması.
Xarici və daxili API üçün bir ümumi profil.
Nəzarətsiz istisnalar «tərəfdaş üçün» → perimetrdə dəliklər.


12) iGaming/Maliyyə Xüsusiyyətləri

Ödəniş/çıxış qələmlərində gücləndirilmiş profillər: kiçik body limitləri, sərt sxemlər, account/IBAN/PAN sahələri üçün deny siyahıları (maskalanma, format yoxlamaları).
PSP/KYC vebhukları: HMAC imzası/mutual TLS, fərdi WAF profilləri, anti-replay.
Geo/ASN filtrləri və bot qeydiyyatı və bonus sui-istifadəsinin qarşısını almaq üçün davranış limitləri.
Hadisə jurnalları dəyişməz (audit), yurisdiksiyalar üzrə saxlanılır.


13) Prod hazırlıq yoxlama siyahısı

  • İki qat WAF (CDN + L7), vahid normallaşdırma və ölçü limitləri.
  • OWASP CRS daxil, xüsusi qaydaları per-route; Write qələmlərində JSON Schema/Protobuf.
  • Content-Type/charset siyasəti; ikiqat dekodinq/NULL/traversal qadağan.
  • SSRF-egress-blok private diapazonları/metadata; DNS-rebinding qorunması.
  • Rate/Quota/Concurrency və anti-bot (challenge) ictimai formalarda.
  • Shadow/Report-Only → canary → enforce; SLO və FP avto-rollback.
  • Metrik/log/treys ilə maskalanma; «Top-qaydalar »/FP daşbordları.
  • Virtual yamaq və RCA playbook; müntəzəm yoxlama testləri.
  • PSP/KYC vebhuk, ödəniş qələmləri və daxili API üçün ayrı profillər.

14) TL; DR

Qatlara görə qorunma qurun: normallaşdırma və limitlər → sxemlər/tiplər → parametrləşdirmə → WAF (CRS + cast) → rate/bot filtrləri → SSRF egress bloku. per-route-u sürükləyin, shadow → canary-də yeni qaydaları işə salın, metrləri/FP-ni izləyin və kodun fiksinə qədər «virtual yamalar» edin. Ödəniş/vebhuk yolları üçün - ayrı-ayrı ciddi profillər, HMAC/mTLS və minimum etimad pəncərələri.

Contact

Bizimlə əlaqə

Hər hansı sualınız və ya dəstək ehtiyacınız varsa — bizimlə əlaqə saxlayın.Həmişə köməyə hazırıq!

İnteqrasiyaya başla

Email — məcburidir. Telegram və ya WhatsApp — istəyə bağlıdır.

Adınız istəyə bağlı
Email istəyə bağlı
Mövzu istəyə bağlı
Mesaj istəyə bağlı
Telegram istəyə bağlı
@
Əgər Telegram daxil etsəniz — Email ilə yanaşı orada da cavab verəcəyik.
WhatsApp istəyə bağlı
Format: ölkə kodu + nömrə (məsələn, +994XXXXXXXXX).

Düyməyə basmaqla məlumatların işlənməsinə razılıq vermiş olursunuz.