Web Application Firewall və hücumlardan qorunma
Qısa xülasə
WAF/WAAP HTTP (S )/WebSocket trafikini tətbiq səviyyəsində filtrləyir və nəzarət edir: boşluqların istismarını bloklayır (OWASP Top 10), autentifikasiyadan yan keçmək cəhdləri, tarama, avtomatlaşdırılmış bot trafiki və L7 DDoS. Müasir yığını anti-bot mühərriki, API qorunması, rate limiting, virtual yamalar və CI/CD ilə sıx inteqrasiya ilə tamamlanır ki, qaydalar kod kimi təhlükəsiz şəkildə yuvarlanır.
Memarlıq rolları və yeri
Edge/CDN WAF (bulud): aşağı gizli, qlobal nüfuz/Managed Rules, L7 DDoS.
Self-hosted WAF (on-prem/K8s): daxili şəbəkələrlə dərin inteqrasiya, incə konfiqurasiya.
WAAP-yanaşma: WAF + API-Gateway funksiyaları (schema-validation, authZ), anti-bot, L7 DoS, mTLS.
Daxil olma sxemləri: tətbiq əvvəl Reverse-proxy; Ingress-controller K8s; Service Mesh filtrləri; sidecar.
Mühafizə modeli
Negative security (imzalar/CRS): məşhur texnikaların sürətli əhatə (SQLi/XSS/SSRF/RCE).
Positive security (allow-list): Yalnız «valid» sorğulara icazə (metodlar/yollar/sxemlər/məzmun növləri).
Virtual Patching: kod fiksinə qədər eksploytun operativ bloklanması.
Kontekstlik: statik məzmun, API, administrator, downloads, vebhook üçün müxtəlif siyasətlər.
Tipik təhdidlər və tədbirlər
OWASP Top 10: SQLi, XSS, IDOR/BOLA, SSRF, şablonizer inyeksiyaları, deseralizasiya, miskonfiqlər.
L7 DDoS: yavaş sorğular/başlıqlar, isti end-point üçün burst → müdafiə: rate-limits, challenge, auto-blok.
Botlar/Skreyperlər: davranış, tezlik, «qeyri-insani» nümunələr, device-fingerprinting, dinamik tokenlər.
Credential Stuffing/ATO: IP/ASN anomaliyası, velocity rules, əlavə faktorlar.
Yüklemeler: tip/boyut/multiscan antivirus, «image-only» media zonalarında.
API/GraphQL: schema-validation, 'maxDepth '/' maxCost', cəzalandırılmayan wildcard qadağası, metodlara və başlıqlara nəzarət.
Siyasətçilər və qaydaların dizaynerləri
Hər hansı bir proqram üçün əsas «skelet»:1. Nəqliyyat: TLS 1. 2+/1. 3, HSTS, mTLS həssas arxalarda.
2. Metodlar: allow-list ('GET, POST, PUT, DELETE, PATCH, OPTIONS') resursda unikaldır.
3. Yollar: sərt maskalar/reqeksplər; adminka/billing - ayrı prefiks/domen.
4. Başlıqlar: ağ siyahılar, təhlükəli qadağan ('X-Original-URL', qeyri-standart) ehtiyac olmadan.
5. Bədən: JSON-only/Multipart-only marşrut; «Content-Length» limitləri, «giriş/axtarış» üçün binar bloku.
6. Rate limits: per-IP/ASN/açar/təşkilat; «bahalı» sorğulara ayrı-ayrı limitlər.
7. Anti-bot: davranış skoru, «sarsılmaz» çağırışlar, şəxsiyyət yapışdırma (cookie-tokenlər, JA3/TLS FP).
8. CRS/Managed Rules: daxil, FP altında sazlama.
9. Virt yamalar: məşhur parametrlərin/hücum şablonlarının sürətli bloklanması.
10. Log/metrika: vahid format, 'trace _ id' ilə korrelyasiya, FP/TP hesabatları.
Sazlama təcrübəsi: saxta pozuntuları necə azaltmaq olar
Trafik nümunəsi ilə Detect-only/Count-mode (shadow) yeni qaydaları işə salın.
Kontekstə görə istisnalar yaratmaq ('path =/search', 'param = q' xüsusi simvollara icazə vermək).
Bölgəni bölün: «ictimai səhifələr» vs «həssas əməliyyatlar» (aqressivlik həddi fərqlidir).
Konveyer: qayda → staging → kanarya (1-5%) → prod; FP metrik rollback.
Regressiya testləri üçün «saxta» payload kataloqunu saxlayın.
DevSecOps-a inteqrasiya
CI: Git statik qaydaları; testlər: real sorğuların replikası + hücum kataloqundan sintetika.
CD: kanareya dizaynları, fiç bayraqları; «siyasi» monitorinq (qaydaların dəyişdirilməsi = change).
RASP və SAST/DAST: WAF tamamlayır, lakin kod düzəlişini əvəz etmir.
Müşahidə və SLO
Metriklər:- p95/99 WAF vasitəsilə gizli; bloklanmış/buraxılmış paylar; share Managed Rules vs custom; «attack rate».
- Anti-bot: Challenge/teslim payı, FP/TP.
- L7 DDoS: burst-rate, auto-mitigation events.
- "0-dan çox deyil. 5% FP səlahiyyətli əməliyyatlar/gün".
- «p95 overhead WAF ≤ 10 мс».
- «TTR virtual yamaq ≤ 30 dəqiqə».
- Alarmlar: qaydalar buraxıldıqdan sonra 4xx/5xx sıçrayışı; FP artımı; caps keçidinin düşməsi; JWKS/mTLS-validasiya deqradasiyası.
Konfiqurasiya nümunələri
ModSecurity + OWASP CRS (Nginx)
nginx
Enabling ModSecurity modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main. conf;
`/etc/nginx/modsec/main. conf`:
apache
SecRuleEngine On
Include /usr/local/owasp-modsecurity-crs/crs-setup. conf
Include /usr/local/owasp-modsecurity-crs/rules/.conf
Example of an exception for a search parameter
SecRule REQUEST_URI "@beginsWith /search" "id:900100,phase:1,pass,nolog,ctl:ruleRemoveByTag=attack-xss"
SecRule REQUEST_URI "@beginsWith /search" "id:900101,phase:2,pass,ctl:ruleRemoveTargetById=942100; ARGS:q"
AWS WAF (JSON, rate limit + ölkələr siyahısı blok)
json
{
"Name": "prod-web-acl",
"Scope": "CLOUDFRONT",
"DefaultAction": { "Allow": {} },
"Rules": [
{
"Name": "BurstLogin",
"Priority": 1,
"Statement": {
"RateBasedStatement": {
"Limit": 100,
"AggregateKeyType": "IP",
"ScopeDownStatement": { "ByteMatchStatement": {
"SearchString": "/login",
"FieldToMatch": { "UriPath": {} },
"TextTransformations": [{ "Priority": 0, "Type": "NONE" }],
"PositionalConstraint": "CONTAINS"
}}
}
},
"Action": { "Block": {} },
"VisibilityConfig": { "MetricName": "BurstLogin", "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true }
}
]
}
Cloudflare (Expression Rules)
(http. request. uri. path contains "/admin" and ip. geoip. country ne "UA")
or (http. request. uri. path eq "/login" and cf. threat_score > 10)
or (http. request. uri. path contains "/api" and not http. request. headers["authorization"][0] contains "Bearer ")
NGINX: metodlar/cisimlər üçün sadə qayda
nginx location /api/withdraw {
limit_except POST { deny all; }
if ($request_method = POST) {
set $cl $http_content_length;
if ($ cl = "") {return 411;} # length is required if ($ cl> 1048576) {return 413;} # ≤ 1MB add_header X-Idempotency-Required "true";
}
}
GraphQL: məhdudlaşdırıcılar
'maxDepth = 6', 'maxCost = 1000', prodda '__ schema' qadağası, əməliyyatların allow-siyahısı, başlıqların validasiyası ('Content-Type: application/json').
Anti-bot və insan dostu yoxlamalar
Invisible challenge (kapçasız JS-challenge), «bahalı» yollarda proof-of-work, davranış analitikası (hərəkətlər/tayminqlər).
TLS/JA3-fingerprinting, IP/ASN nüfuz, proxy/VPN siyahıları (ağlabatan həddə).
Formalarda tələlər (honeypot sahələri), dinamik forma/seans tokenləri.
Privacy Protection: tracking minimuma endirilməsi, şəffaf siyasətlər, opt-out variantları.
API fokus
Schema-first: Validasiya üçün OpenAPI/JSON Schema; əlavə sahələrin qadağan edilməsi.
Auth: mütləq Bearer JWT və ya mTLS; reject без `Authorization`.
Rate/Quota: per-key/per-org; aşdıqda - «soft block «/slowing.
Webhooks: HMAC imzası, 'timestamp + nonce', qısa qəbul pəncərəsi.
GraphQL: yuxarıdakı məhdudiyyətlərə baxın; əməliyyat adını/etiketini loqo etmək.
Yükləmələr və media
Ölçü limiti, MIME/uzantıları whitelists, faylların adının dəyişdirilməsi;
AV-scan (multi-motorlar), ImageMagick policy (təhlükəli dekoderlər olmadan);
Thumb-xidmət ayrıca domen, serve-only-images.
Administratorların və kritik zonaların təhlükəsizliyi
Ayrı domen/yol, mTLS/ümumi ASN/ölkələrdən qadağan, sərt rate limits, JIT access, IP allow-list.
Əlavə siqnallar (device posture, risk score) → ikinci yoxlama tələb.
Əməliyyatlar, hadisələr və virtual yamalar
Runbook: Block qaydaları, TTL məhdudiyyəti, komandaları xəbərdar etmək üçün sürətli buraxılış.
Geri çəkilmə meyarları: boy 4xx/5xx> eşik, FP> eşik, p95 latency ↑.
Post-mortem: Reqressiya qaydaları toplusuna xəmirin əlavə edilməsi, SIEM-də SIGMA alertinin fiksasiyası.
Uyğunluq və məxfilik
Minimum log: yol/üsul/kod/blok səbəbi/identifikatorları; PII/bədən sirləri saxlamaq deyil.
Siyasət qeydlərinin saxlanma müddəti; giriş - rollara görə; diskdə şifrələmə.
iGaming/Fintech üçün xüsusiyyətlər
Ödənişlər/ödənişlər/cüzdanlar: per-org kvotaları, PSP-yə mTLS, ciddi allow-list yolları, PSP vebhukları üçün HMAC.
ATO/bonus sui-qəsd: giriş/qeydiyyat/promo kodları, davranış limitləri və anti-bot velocity qaydaları.
Məzmun provayderləri/studiyaları: fərdi domenlər/siyasətlər, IP/ASN allow-list, Time-to-Wallet monitorinqi/WAF-ın təsirinə çevrilmələr.
Regional tələblər: geo-siyasət (ölkələr/regionlar), GDPR üçün işlərin şəffaflığı.
Yol xəritəsi
1. Zonaların inventarlaşdırılması (ictimai, API, inzibati, yükləmə).
2. Əsas profil: TLS, allow-list metodları/yolları, Managed Rules/CRS.
3. Rate limits + həssas yollarda anti-bot.
4. Virtual yamalar və təcili qaydalar prosesi (SLA ≤ 30 dəq).
5. Qaydalar üçün CI/CD, staging/kanarya/shadow-mode.
6. Telemetriya, SLO, reqressiya qaydaları testləri.
7. Dövri review istisnalar və «təmizləmə» dolama.
Tipik səhvlər
«Maksimum bütün CRS daxil» → FP uçqun və komandanın tükənməsi.
Kanaryalar və shadow rejimi olmadan qaydalar.
Segmentasiya yoxdur: hər şey üçün bir siyasət.
API/GraphQL spesifikasiyası (schema/limits).
Korrelyasiya olmadan ('trace _ id') və keyfiyyət metrləri olmadan loqlar.
FAQ
WAF təhlükəsiz kodu əvəz edir?
Yox. Bu yumşalma təbəqəsi və «virtual yamaq», lakin kodda texniki vəzifə aradan qaldırılmalıdır.
Sərt blokları işə salmağın vaxtı gəldiyini necə başa düşmək olar?
shadow rejimi hesabat aşağı FP göstərir və reqressiya qaydaları testləri var.
API üçün ayrıca WAF lazımdır?
Daha yaxşı WAAP/API şlyuzu ilə inteqrasiya: sxem, limitlər, autentifikasiya, vebhuk imzaları.
Yekun
Effektiv WAF/WAAP, DevSecOps prosesləri, telemetriya və aydın SLO ilə dəstəklənən əsas CRS/Managed Rules, müsbət model, anti-bot, limitlər və virtual yamaların birləşməsidir. Bu yanaşma zəifliklərə sürətli reaksiya, avtomatlaşdırılmış hücumlara qarşı müqavimət və UX və performansa proqnozlaşdırıla bilən təsir təmin edir.