Web Application Firewall we hüjümlerden goramak
Gysgaça gysgaça
WAF/WAAP HTTP (S )/WebSocket-traffigi programma derejesinde süzýär we gözegçilikde saklaýar: gowşaklyklaryň işleýşini (OWASP Top 10), tassyklamadan aýlanyp geçmek synanyşyklaryny, skaneri, awtomatlaşdyrylan bot-traffigi we L7 DDoS bloklaýar. Häzirki zaman yığını anti-bot hereketlendirijisi, API goragy, rate limiting, wirtual ýama, şeýle hem düzgünleriň kod ýaly howpsuz çykmagy üçin CI/CD bilen ýakyn integrasiýa bilen doldurylýar.
Arhitekturadaky rollary we orny
Edge/CDN WAF (bulut): pes gizlinlik, global abraý/Dolandyrylan Rules, L7 DDoS.
Öz-hosted WAF (on-prem/K8s): içerki torlar bilen çuňňur integrasiýa, inçe sazlama.
WAAP çemeleşmesi: WAF + API-Gateway funksiýalary (schema-validation, authZ), anti-bot, L7 DoS, mTLS.
Goşmak shemalary: Programmadan öň Reverse-proxy; Ingress-kontroller K8s; Service Mesh süzgüçleri; sidecar.
Gorag modeli
Negative security (gollar/CRS): Belli tehnikalary çalt ýapmak (SQLi/XSS/SSRF/RCE).
Positive security (allow-list): diňe "dogry" soraglara rugsat berýäris (usullar/ýollar/shemalar/mazmun görnüşleri).
Wirtual Patching: kod fiksine çenli eksploýtyň operatiw blokirlemegi.
Kontekstlik: statiki mazmun, API, administratorlar, ýüklemeler, webhuklar üçin dürli syýasatlar.
Adaty howplar we çäreler
OWASP Top 10: SQLi, XSS, IDOR/BOLA, SSRF, şablonizatorlara sanjymlar, deseralizasiýa, miskonfig.
L7 DDoS: haýal soraglar/sözbaşylar, gyzgyn nokatlara burst → gorag: rate-limits, challenge, awto-blok.
Botlar/skreýperler: özüni alyp barşy, ýygylygy, "adamkärçiliksiz" patternler, device-fingerprinting, dinamiki bellikler.
Credential Stuffing/ATO: IP/ASN, velocity rules, goşmaça faktorlar.
Ýüklemek: görnüşi/ululygy/multiscan antivirus, "image-only" media zolaklarynda.
API/GraphQL: schema-validation, 'maxDepth '/' maxCost', jeza berilmeýän wildcard gadaganlygy, usullara we sözbaşylara gözegçilik.
Düzgünnamanyň syýasatçylary we dizaýnerleri
Islendik programma üçin esasy "skelet":1. Ulag: TLS 1. 2+/1. 3, HSTS, mTLS duýgur arkalarda.
2. Usullar: allow-list ('GET, POST, PUT, DELETE, PATCH, OPTIONS') çeşme üçin özboluşly.
3. Ýollar: berk maskalar/regekspler; administration/billing - aýratyn prefiks/domen üçin.
4. Sözbaşylar: ak sanawlar, howply ('X-Original-URL', standart däl) zerurlyksyz gadaganlyk.
5. Bedenler: JSON-only/Multipart-only ugry boýunça; "Content-Length" çäkleri, "login/gözleg" üçin binarlar bloky.
6. Rate limits: per-IP/ASN/açar/gurama; "gymmat" haýyşlara aýratyn çäklendirmeler.
7. Anti-bot: özüňi alyp baryş skoringi, "sarsmaz" kynçylyklar, şahsyýeti ýelmemek (cookie-tokenler, JA3/TLS FP).
8. CRS/Managed Rules: FP-iň aşagyndaky sazlama.
9. Wirt-patches: hüjümleriň belli parametrlerini/şablonlaryny çalt blokirlemek.
10. Loglar/metrikler: bir format, 'trace _ id' bilen baglanyşyk, FP/TP hasabatlary.
Sazlamak tejribesi: ýalan täsirleri nädip azaltmaly
Traffigi saýlap, Detect-only/Count-mode (shadow) -da täze düzgünleri başla.
Kontekstde kadadan çykmalar dörediň ('path =/search', 'param = q').
Zonany bölmek: "köpçülik sahypalary" vs "duýgur amallar" (agressiwligiň çägi başga).
Konweýer: düzgün → staging → kanareýa (1-5%) → önüm; FP metrikleri boýunça rollback.
Regression synaglary üçin "ýalan" payload katalogyny ýöret.
DevSecOps bilen integrasiýa
CI: Git statik düzgünleri; synaglar: hakyky haýyşlaryň sözleri + hüjümleriň katalogyndan sintetika.
CD: kanareýa ýerleşdirmeleri, fiçleriň baýdaklary; "Syýasy" gözegçilik (düzgünleri üýtgetmek = change).
RASP we SAST/DAST: WAF kod düzedişini doldurýar, ýöne onuň ornuny tutmaýar.
Synlamak we SLO
Metrikler:- p95/99 gizlinlik WAF arkaly; petiklenen/sypdyrylan paýy; share Managed Rules vs custom; «attack rate».
- Anti-bot: challenge/gowşuryş paýy, FP/TP.
- L7 DDoS: burst-rate, auto-mitigation events.
- "0-dan köp bolmaly däldir. Ygtyýarlandyrylan amallar/gün üçin 5% FP".
- «p95 overhead WAF ≤ 10 мс».
- "Wirtual ýama TTR ≤ 30 minut".
- Aladalar: düzgünler çykarylandan soň 4xx/5xx köpelýär; FP ösüşi; kapçanyň geçmeginiň peselmegi; JWKS/mTLS-tassyklamanyň pese gaçmagy.
Konfigurasiýa mysallary
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 + ýurtlaryň sanawynyň blogy)
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: usullar/jisimler boýunça ýönekeý düzgün
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: Çäklendirmeler
'maxDepth = 6', 'maxCost = 1000', prodda '__ schema' gadaganlygy, amallaryň allow-listi, sözbaşy tassyklamasy ('Content-Type: application/json').
Anti-bot we adam-dost barlaglary
Invisible challenge (kapçasyz JS-challenge), "gymmat" ýollarda proof-of-work, özüni alyp barşyň seljermesi (hereketler/wagtlar).
TLS/JA3-fingerprinting, IP/ASN abraýy, proxy/VPN sanawlary (amatly çäklerde).
Formalarda duzaklar (honeypot-meýdançalar), formanyň/sessiýanyň dinamiki bellikleri.
Gizlinligi goramak: yzarlamany azaltmak, aç-açan syýasatlar, opt-out opsiýalary.
API-fokus
Schema-first: Tassyklamak üçin OpenAPI/JSON Schema; artykmaç meýdanlary gadagan etmek.
Auth: Bearer JWT ýa-da mTLS hökmanydyr; reject без `Authorization`.
Rate/Quota: per-key/per-org; geçende - "soft block "/slowing.
Webhooks: HMAC, 'timestamp + nonce', gysga kabul ediş penjiresi.
GraphQL: Ýokardaky çäklendirijilere serediň; amalyň adyny/belligini belläň.
Ýüklemeler we metbugat
Ululyk çäkleri, MIME/uzantylar whitelists, faýllaryň adyny üýtgetmek;
AV-skan (köp hereketlendirijiler), ImageMagick policy (howply dekoderlersiz);
Aýry-aýry domen hyzmaty, serve-only-images.
Dolandyryş we möhüm zolaklaryň howpsuzlygy
Aýry-aýry domen/ýol, mTLS/umumy ASN/ýurtlardan gadaganlyk, gaty rate limits, JIT-elýeterlilik, IP allow-list.
Goşmaça signallar (device posture, risk score) → ikinji barlagy talap etmek.
Amallar, hadysalar we wirtual ýamalar
Runbook: blok düzgünini çalt çykarmak, TTL çäklendirmesi, buýruklara habar bermek.
Yza gaýdmagyň ölçegleri: ösüş 4хх/5хх> çäk, FP> çäk, p95 latency ↑.
Post-mortem: synagy regressiýa düzgünleriniň toplumyna goşmak, SIEM-de SIGMA-alertini düzetmek.
Laýyklyk we gizlinlik
Iň az logist: ýol/usul/kod/blok sebäbi/identifikatorlary; bedeniň PII/syrlaryny saklamaň.
Syýasat boýunça ýazgylary saklamagyň möhletleri; giriş - rollar boýunça; diskde şifrlemek.
iGaming/fintech üçin aýratynlyklar
Tölegler/tölegler/gapjyklar: per-org kwotalary, PSP-e mTLS, ýollaryň berk allow-listleri, PSP webhuklary üçin HMAC.
ATO/bonus-hyýanatçylyk: giriş/hasaba alyş/promo kodlary, özüni alyp baryş çäkleri we anti-bot velocity-düzgünleri.
Mazmun-üpjün edijiler/studiýalar: aýry-aýry domenler/syýasatlar, IP/ASN allow-list, Time-to-Wallet/WAF täsirine öwrümlere gözegçilik.
Sebit talaplary: geo-syýasatlar (ýurtlar/sebitler), GDPR üçin işläp taýýarlamalaryň aç-açanlygy.
Giriş ýol kartasy
1. Zonalaryň sanawy (köpçülige açyk, API, administrator, ýüklemek).
2. Esasy profil: TLS, allow-list, Managed Rules/CRS usullary/ýollary.
3. Rate limits + duýgur ýollarda anti-bot.
4. Wirtual ýamalar we gyssagly düzgünler prosesi (SLA ≤ 30 min).
5. Düzgünler üçin CI/CD, staging/kanareýka/shadow-mode.
6. Telemetriýa, SLO, düzgünleriň regression synaglary.
7. Wagtal-wagtal gözden geçirmek we aýlawlary "arassalamak".
Adaty ýalňyşlyklar
"Ähli CRS-leri iň ýokary derejä çykardyk" → FP göçmegi we toparyň ýadawlygy.
Kanareýalar we şadow-re modeimsiz düzgünler.
Bölünişigiň ýoklugy: hemme zat üçin bir syýasat.
API/GraphQL aýratynlyklary (shema/limits).
Baglanyşyksyz ('trace _ id') we hil metriksiz loglar.
FAQ
WAF ygtybarly kody çalyşýarmy?
Ýok. Bu ýumşadyş gatlagy we "wirtual ýama", ýöne kodda tehniki borjy ýok etmek hökmanydyr.
Gaty bloklary açmagyň wagtynyň gelendigine nädip düşünmeli?
Haçan-da shadow-re regimeim hasabaty pes FP görkezse we düzgünleriň regression synaglary bar bolsa.
API üçin aýratyn WAF gerekmi?
WAAP/API şlýuzy bilen integrasiýa has gowudyr: shema, çäkler, tassyklama, webhuklaryň gollary.
Jemi
Netijeli WAF/WAAP, DevSecOps, telemetriýa we aýdyň SLO prosesleri bilen goldanýan esasy CRS/Managed Rules, oňyn model, anti-bot, çäklendirmeler we wirtual ýamalaryň utgaşmasydyr. Bu çemeleşme gowşaklyklara çalt jogap bermegi, awtomatlaşdyrylan hüjümlere garşylygy we UX we öndürijilige öňünden aýdyp boljak täsirini üpjün edýär.