GH GambleHub

WAF ve enjeksiyon koruması

1) API döneminde neden WAF

Titiz doğrulama ve parametrelendirme ile bile, enjeksiyonlar aşağıdakiler nedeniyle gerçekleşir:
  • Entegrasyonların "uzun kuyrukları" (eski kod, bağlı web kitapları),
  • Ayrıştırma tutarsızlıkları (proxy ↔ framework),
  • yeni protokol/şaşırtma bypass teknikleri.
  • WAF, kod sürümünden önce erken bir reddetme ve'sanal yamalama "sınırı verir, ancak güvenli geliştirmenin yerini almaz.

2) Tehdit Modeli: API Enjeksiyon Tipleri

SQLi/ORMi: klasik/boolean/zaman tabanlı/yığılmış; Gecikmelerle kör.
NoSQLi (Mongo/Elastic): operatörler '$ ne/$ gt', JSON enjeksiyonu, regex-DoS.
Komut Enjeksiyonu/RCE: kabuk metakarakterleri, argüman değiştirme, güvenli olmayan çölleşme - kod exec.
XXE: XML'de harici varlıklar/DTD'ler.
SSRF: '169'a erişim. 254. 169. 254'/dahili hizmetler; DNS-rebinding.
Şablon Enjeksiyonu: Jinja/Thymeleaf/Gidonlar; '{{77}'.
LDAP/EL Enjeksiyonu, XPath, Başlık enjeksiyonu (CRLF), Yol geçişi.
GraphQL'ye özgü: '__ şeması' iç gözlem, sorguların derinliği/karmaşıklığı.
JSON/JS'ye özgü: Prototip Kirliliği ('__ proto __', 'yapıcı').
GRPC/Protobuf: büyük boyutlu mesajlar, şema uyumsuzluğu yoluyla alan kaçakçılığı.


3) WAF mimarileri

CDN-WAF çevre: hızlı coğrafi/ASN filtreleme, temel bot kontrolü, önbellek/anti-dolgu.
Perimeter L7 (NGINX/Envoy/APISIX/Kong): doğru ayrıştırma, derin kurallar, PDP/limitlerle entegrasyon.
Sidecar/mash (Envoy WASM/Filter): Servis başına, veriye yakın, dahili API'ler için daha az false positive.
Öneri: Çift katmanlı model (CDN-WAF + L7 WAF).


4) Ayrıştırma, normalleştirme ve anti-bypass

WAF, uygulama ile aynı kanonik temsili görmelidir:
  • Yol normalleştirme ('/a/% 2e %2e/b '> başarısızlık),' UTF-8'/Unicode confusables, NUL bytes.
  • Tek kod çözme: URL-/HTML-/Unicode-/Base64-layers, çift kod çözme yasağı.
  • Kısıtlamalar: 'max _ headers', 'max _ header _ size', 'max _ body _ size', 'max _ args', JSON derinliği, çok parçalı sınır, 2x gzip/zip bombaları yasaktır.
  • İçerik Türü politikaları: Yalnızca JSON uç noktalarında 'uygulama/json'; "Çokdilli'yi reddet.

5) Kural modelleri

Negatif (imzalar): OWASP CRS (SQLi/XSS/SSRF/Java/Node RCE, vb.). Hızlı başlangıç.
Pozitif (allow-list): katı şemalar (JSON Schema/Protobuf), türleri ve aralıkları; güzergahlarda.
Anormal/puanlama: "şüpheli" işaretlerin toplanması - engelleme eşiği.
Bağlamsal: 'POST/payments've' GET/status 'için farklı profiller; Daha az FP.


6) Koruma birimleri (bir paket halinde)

1. Şemalar ve türleri: JSON Schema/Protobuf iş mantığına doğrulama.
2. Parametreleştirme: hazırlanmış ifadeler, ORM bağlamaları, bitiştirme yasağı.
3. Çıktı alma: HTML/JS/SQL bağlamsal.
4. Gövde politikaları: İçerik Tipi, boyut, çok parçalı kısıtlamalar, JSON tutamaçlarında ikili dosyaların yasaklanması.
5. WAF kuralları: CRS + özel negatif/pozitif.
6. Oran/Kota/Eşzamanlılık: kaba/kaplumbağa DDoS bastırma, koruyucu captchas/kamu formları için zorluklar.
7. Ağ yalıtımı: SSRF için çıkış ilkeleri (RFC1918/metadata/Unix soketlerini reddetme).
8. Headers-hygiene: 'X-Content-Type-Options: nosniff', 'Content-Security-Policy' for front, 'Referrer-Policy'.
9. GraphQL koruması: derinlik/karmaşıklık sınırları, prod (veya rol kapısı) iç gözlem yasağı.


7) Yapılandırma örnekleri

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 Elçi HTTP WAF (WASM + JSON Şeması + SSRF çıkışı-reddi)

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: tip kısıtlaması ve anti-şaşırtma

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) Yanlış pozitifleri ayarlama ve azaltma (FP)

Rota başına profiller: Yalnızca uygun olduğu durumlarda katı kurallar (örn. '/search 'allows'/' %').
Gölge/Yalnızca Rapor: Bloktan önce günlük yanıtları; Metriklerin A/B karşılaştırması.
Özel, "gürültülü" meşru parametreler için listelere izin verir.
Puanlama: Yalnızca gösterge toplamı> eşik olduğunda engelleyin.
Deneyler: yeni kurallara trafiğin küçük bir yüzdesi - otomatik geri alma.


9) Gözlemlenebilirlik ve görülme sıklığı

Метрики: 'waf _ block _ total {rule}', 'waf _ anomaly _ score', 'request _ body _ rejected _ total', 'schema _ violation _ total', 'ssrf _ block _ total'.
Günlükler (örneklenmiş): kural, isteğin parçası (düzenlenmiş), 'trace _ id', 'kiracı', 'rota', neden. PII/sırları gizleyin.
Panolar: üst kurallar/yollar, FP kümeleri, serbest bırakıldıktan sonra dinamikler.
Olaylar: Eserleri kaydetmek (gerekirse yük, pcap), RCA ürünleri ve'sanal yamalar ".


10) Test ve kaos senaryoları

WAF bypass muhafazaları (SQLi/XSS/SSRF), çift/üçlü Unicode karışık kodlamalar.
Ayrıştırma farklılıkları: proxy ve çerçevenin ayrılabileceği payload gönder (parametre kopyaları, diziler, ';' vs '&').
Yavaş POST/büyük boy, zip bombaları, çok parçalı formlar, hatalı sınır.
GraphQL: derinlik/karmaşıklık oluşturucu, sınırları ve zaman aşımlarını kontrol etme.


11) Antipatterns

"CRS'yi açtı ve unuttu": şemalar olmadan, rotalar boyunca ayarlama yapmadan.
Ham istek gövdesi ve PII ile günlükler.
Normalleştirme/boyut sınırları yok - atlamalar, ayrıştırma için DoS.
'Content-Type'/charset kontrollerini atlamak - çok dilli saldırılar.
Bulut meta verilerine çıkış filtreleri - SSRF yok.
Harici ve dahili API'ler için ortak bir profil.
Kontrolsüz istisnalar "ortak için" - çevredeki delikler.


12) iGaming/Finansın Özellikleri

Ödeme/çıktı tutamaçlarında güçlendirilmiş profiller: küçük gövde limitleri, katı şemalar, hesap/IBAN/PAN alanları için reddetme listeleri (maskeleme, format kontrolleri).
PSP/KYC'den Webhooks: HMAC imzası/karşılıklı TLS, bireysel WAF profilleri, anti-replay.
Bot kayıtlarını ve bonus kötüye kullanımını önlemek için Geo/ASN filtreleri ve davranış sınırları.
Olay günlükleri değişmez (denetim), yargı yetkisine göre depolamadır.


13) Prod Hazırlık Kontrol Listesi

  • Çift katmanlı WAF (CDN + L7), tek normalleştirme ve boyut sınırları.
  • OWASP CRS etkin, rota başına özel kurallar; JSON Schema/Protobuf yazma kalemlerinde.
  • İçerik Tipi/charset politikaları; Çift kod çözme/NULL/geçişine izin verme.
  • Özel bantlar/meta veriler için SSRF-çıkış bloğu; DNS yeniden bağlama koruması.
  • Halka açık formlarda Oran/Kota/Eşzamanlılık ve anti-bot (zorluklar).
  • Shadow/Report-Only - kanarya - zorlamak; SLO ve FP tarafından otomatik geri alma.
  • Maskeleme ile metrikler/günlükler/yollar; Panolar "üst kurallar "/FP.
  • Sanal yama ve RCA oyun kitapları; Düzenli bypass testleri.
  • PSP/KYC web kitapları, ödeme kalemleri ve dahili API'ler için ayrı profiller.

14) TL; DR

Katmanlara göre koruma oluşturun: normalleştirme ve sınırlar - şemalar/türler - parametrelendirme - WAF (CRS + kast) - oran/bot filtreleri - SSRF çıkış bloğu. Rota başına ayarlayın, gölgede yeni kurallar çalıştırın - kanarya, metrikleri/FP'yi izleyin ve kod düzeltmeden önce'sanal yamalar "yapın. Ödeme/webhook yolları için - ayrı katı profiller, HMAC/mTLS ve minimum güven pencereleri.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.