Web Application Firewall va hujumlardan himoya qilish
Qisqacha xulosa
WAF/WAAP HTTP (S )/WebSocket-trafikni ilova darajasida filtrlaydi va nazorat qiladi: zaifliklardan foydalanishni bloklaydi (OWASP Top 10), autentifikatsiyani chetlab oʻtishga urinishlar, skanerlash, avtomatlashtirilgan bot-trafik va L7 DDoS. Zamonaviy stek anti-bot dvigatel, API-himoya, rate limiting, virtual patchlar bilan to’ldiriladi, shuningdek qoidalar kod kabi xavfsiz siljishi uchun CI/CD bilan yaqin integratsiya qilinadi.
Arxitekturadagi roli va o’rni
Edge/CDN WAF (bulut): past yashirin, global obro’si/Managed Rules, L7 DDoS.
Self-hosted WAF (on-prem/K8s): ichki tarmoqlar bilan chuqur integratsiya, nozik sozlash.
WAAP yondashuvi: WAF + API-Gateway funksiyalari (schema-validation, authZ), anti-bot, L7 DoS, mTLS.
Kiritish sxemalari: ilovadan oldin Reverse-proxy; K8s Ingress-kontroller; Service Mesh filtrlari; sidecar.
Himoya modeli
Negative security (imzolar/CRS): mashhur texnikalarni tez qamrab olish (SQLi/XSS/SSRF/RCE).
Positive security (allow-list): Faqat «valid» soʻrovlarga ruxsat beramiz (metod/yoʻl/sxema/kontent turlari).
Virtual Patching: eksploytni kod fixigacha tezkor blokirovka qilish.
Kontekst: statik kontent, API, ma’murlar, yuklashlar, vebxuklar uchun turli siyosatlar.
Namunaviy tahdidlar va choralar
OWASP Top 10: SQLi, XSS, IDOR/BOLA, SSRF, shablonizatorlarda in’ektsiya, deseralizatsiya, miskonfig.
L7 DDoS: sekin so’rovlar/sarlavhalar, issiq endpointlarga burst → himoya: rate-limits, challenge, avto-blok.
Botlar/skriperlar: xulq-atvor, chastota, «g’ayriinsoniy» patternlar, device-fingerprinting, dinamik tokenlar.
Credential Stuffing/ATO: IP/ASN boʻyicha manomaliya, velocity rules, qoʻshimcha omillar.
Yuklash: antivirus turi/oʻlchami/multiscan, media zonalarda «image-only».
API/GraphQL: schema-validation,’maxDepth ’/’ maxCost’, jazolanmaydigan wildcard taqiqlanishi, usullar va sarlavhalarni nazorat qilish.
Qoidalar siyosatchilari va konstruktorlari
Har qanday dastur uchun bazaviy «skelet»:1. Transport: TLS 1. 2+/1. 3, HSTS, mTLS sezgir orqa tomonlarda.
2. Usullar: allow-list (’GET, POST, PUT, DELETE, PATCH, OPTIONS’) resursda noyob.
3. Yo’llar: qat’iy niqoblar/regeksplar; adminka/billing - alohida prefiks/domenga.
4. Sarlavhalar: oq ro’yxatlar, xavflilarni taqiqlash (’X-Original-URL’, nostandart).
5. Tanalar: yo’nalish bo’yicha JSON-only/Multipart-only; «Content-Length» limitlari, «login/qidiruv» uchun binarlar bloki.
6. Rate limits: per-IP/ASN/kalit/tashkilot; «qimmat» so’rovlar uchun alohida limitlar.
7. Anti-bot: xulq-atvor skoringi, «bezovta qilmaydigan» challenglar, identifikatsiyalarni yopishtirish (cookie-tokenlar, JA3/TLS FP).
8. CRS/Managed Rules: aktiv, FP ostida tyuning.
9. Virt-patchlar: ma’lum bo’lgan parametrlar/hujum shablonlarini tezda blokirovka qilish.
10. Logi/metrika: yagona format,’trace _ id’bilan korrelyatsiya, FP/TP hisobotlari.
Tyuning amaliyoti: yolg’on ishlanmalarni qanday kamaytirish kerak
Trafikni tanlagan holda Detect-only/Count-mode (shadow) da yangi qoidalarni ishga tushirish.
Kontekstda istisnolar yaratish (’path =/search’,’param = q’maxsus simvollarga ruxsat berish).
Zonani boʻlish: «ommaviy sahifalar» vs «sezgir operatsiyalar» (tajovuzkorlik chegarasi har xil).
Konveyer: qoida → steyjing → kanareyka (1-5%) → prod; FP metrikasi bo’yicha rollback.
Regression testlar uchun «soxta» payload katalogini yuritish.
DevSecOps bilan integratsiya
CI: Git statik qoidalari; testlar: real so’rovlar nusxasi + hujumlar katalogidan sintetika.
CD: kanareyochnie postovki, bayroqlar chichey; «siyosiy» monitoring (qoidalarni o’zgartirish = change).
RASP va SAST/DAST: WAF kodni tuzatishni toʻldiradi, lekin almashtirmaydi.
Kuzatish darajasi va SLO
Metriklar:- p95/99 latentlik WAF orqali; bloklangan/o’tkazib yuborilgan; share Managed Rules vs custom; «attack rate».
- Anti-bot: challenge/topshirish ulushi, FP/TP.
- L7 DDoS: burst-rate, auto-mitigation events.
- "0 dan ortiq emas. 5% FP avtorizatsiyalangan operatsiyalar/sutka uchun".
- «p95 overhead WAF ≤ 10 мс».
- «TTR virtual patcha ≤ 30 daqiqa».
- Alarmlar: qoidalar chiqarilgandan keyin 4xx/5xx ko’tarilishi; FP o’sishi; kapchalar o’tishining pasayishi; JWKS/mTLS validatsiyasining degradatsiyasi.
Konfiguratsiya namunalari
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 + mamlakatlar ro’yxati bloki)
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: oddiy usul/tana qoidasi
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: cheklovchilar
’maxDepth = 6’,’maxCost = 1000’, protda’__ schema’, operatsiyalar allow-list, sarlavhalar validatsiyasi (’Content-Type: application/json’).
Anti-bot va insoniy-do’stona tekshiruvlar
Invisible challenge (JS-kapchasiz challenji), «qimmat» yo’llarda proof-of-work, xulq-atvor tahlili (harakatlar/tayminglar).
TLS/JA3-fingerprinting, IP/ASN obro’si, proksi/VPN ro’yxatlari (oqilona doirada).
Shakl (honeypot-maydon) tuzoqlari, shakl/seansning dinamik tokenlari.
Maxfiylikni himoya qilish: trekingni minimallashtirish, shaffof siyosatlar, opt-out variantlari.
API fokus
Schema-first: OpenAPI/JSON Schema validatsiya uchun; ortiqcha maydonlarni taqiqlash.
Auth: Bearer JWT yoki mTLS bo’lishi shart; reject без `Authorization`.
Rate/Quota: per-key/per-org; oshganda - «soft block «/slowing.
Webhooks: HMAC imzosi,’timestamp + nonce’, qisqa qabul qilish oynasi.
GraphQL: yuqoridagi cheklovlarga qarang; operatsiya nomini/belgisini manba qilish.
Yuklab olish va media
Oʻlcham chegarasi, MIME/kengaytmalar whitelists, fayllarning nomini oʻzgartirish;
AV-skan (multi-dvigatellar), ImageMagick policy (xavfli dekoderlarsiz);
Thumb-servis alohida domenda, serve-only-images.
Ma’murlar va tanqidiy zonalar xavfsizligi
Alohida domen/yo’l, mTLS/umumiy ASN/mamlakatlardan taqiqlangan, qattiq rate limits, JIT-kirish, IP allow-list.
Qoʻshimcha signallar (device posture, risk score) → ikkinchi tekshiruvni talab qilish.
Operatsiyalar, hodisalar va virtual patchlar
Runbook: blokni tez chiqarish, TTL cheklash, buyruqlarni ogohlantirish.
Orqaga qaytish mezonlari: boʻyi 4xx/5xx> chegara, FP> chegara, p95 latency ↑.
Post-mortem: regression qoidalar to’plamiga test qo’shish, SIGMA alertini SIEMga o’rnatish.
Komplayens va maxfiylik
Minimal logni: yoʻl/usul/kod/blok sababi/identifikatorlari; tananing PII/sirlarini saqlamaslik.
Siyosat bo’yicha loglarni saqlash muddatlari; rollar bo’yicha kirish; diskda shifrlash.
iGaming/fintech uchun xususiyatlar
To’lovlar/to’lovlar/hamyonlar: per-org kvotalar, PSPga mTLS, yo’llarning qat’iy allow-varaqlari, PSP vebxuklari uchun HMAC.
ATO/bonus-abyuz: login/ro’yxatdan o’tish/promokodlar uchun velocity-qoidalar, xulq-atvor limitlari va anti-bot.
Kontent-provayderlar/studiyalar: alohida domen/siyosat, IP/ASN allow-list, Time-to-Wallet monitoringi/WAF ta’siriga konversiyalar.
Mintaqaviy talablar: geo-siyosat (mamlakatlar/hududlar), GDPR uchun ishlov berishning shaffofligi.
Joriy etish yo’l xaritasi
1. Zonalarni inventarizatsiya qilish (ommaviy, API, ma’muriy, yuklash).
2. Asosiy profil: TLS, allow-list usullari/yoʻllari, Managed Rules/CRS.
3. Rate limits + sezgir yo’llarda anti-bot.
4. Virtual patchlar va shoshilinch qoidalar jarayoni (SLA ≤ 30 min).
5. Qoidalar uchun CI/CD, steyjing/kanareyka/shadow-mode.
6. Telemetriya, SLO, regression test qoidalari.
7. Davriy review istisnolar va aylanma yo’llarni «tozalash».
Tipik xatolar
«Barcha CRSlarni maksimal darajada yoqdik» → FP ko’chkisi va buyruqning yonishi.
Qoidalar kanareykasiz va shadow-rejimsiz.
Segmentatsiya yo’qligi: hamma uchun bitta siyosat.
Ignor API/GraphQL spetsifikasi (schema/limits).
Loglar korrelyatsiyasiz (’trace _ id’) va sifat metriklarisiz.
FAQ
WAF xavfsiz kodni almashtiradimi?
Yo’q. Bu yumshatish qatlami va «virtual patch», lekin koddagi texnik qarzni bartaraf etish shart.
Qattiq bloklarni yoqish vaqti kelganini qanday tushunish mumkin?
Shadow rejim hisoboti past FP va regression qoidalar testlarini ko’rsatganda.
API uchun alohida WAF kerakmi?
Yaxshiroq WAAP/API-shlyuz bilan integratsiya: sxema, limitlar, autentifikatsiya, vebxuk imzolari.
Jami
Samarali WAF/WAAP - bu DevSecOps jarayonlari, telemetriya va aniq SLO bilan mustahkamlangan asosiy CRS/Managed Rules, ijobiy model, anti-bot, limitlar va virtual patchlarning kombinatsiyasi. Bunday yondashuv zaifliklarga tez munosabatda bo’lish, avtomatlashtirilgan hujumlarga chidamlilik va UX va unumdorlikka oldindan aytib bo’ladigan ta’sirni ta’minlaydi.