Web Appport Firewall և պաշտպանություն հարձակումներից
Live ռեզյումե
WAF/WAAP-ը ֆիլտրում և վերահսկում է HTTP (S )/WindSocket-international-ը հավելվածի մակարդակում. Ժամանակակից աթոռը լրացվում է հակատանկային շարժիչով, API-պաշտպանությամբ, rate limiting, վիրտուալ պարկերով, ինչպես նաև CI/CD-ի հետ սերտ ինտեգրումով, որպեսզի կանոնները դուրս գան այնքան անվտանգ, որքան կոդը։
Դերերն ու տեղը ճարտարապետության մեջ
Edge/CDN WAF (ամպ) 'ցածր լատենտ, գլոբալ հեղինակություն/Dised Rules, L7 DDoS։
Nof-hosted WAF (on-35m/K8s) 'խորը ինտեգրումը ներքին ցանցերի հետ, բարակ։
WAAP մոտեցումը ՝ WAF + API-Gateway գործառույթները (schema-validation, authZ), anti-bot, L7 DoS, mTLS։
Ներառման սխեմաները 'Reverse-proxy-ից առաջ; Ingress-վերահսկիչը K8s-ում; Peter Mesh ֆիլտրեր; sidecar.
Պաշտպանության մոդել
Negative-ը (ստորագրություններ/CRS) 'հայտնի տեխնիկայի արագ ծածկումը (SNi/XIV/SSRF/RCE)։
Positive-ը (allow-list), մենք թույլ ենք տալիս միայն «վալիդային» հարցումներ (մեթոդներ/ուղիներ/սխեմաներ/բովանդակության տեսակներ)։
Virtium Patching: էքսպլոյտի ստացիոնար արգելափակում մինչև կոդի ֆիքսը։
Համատեքստը 'տարբեր քաղաքականություններ ստատիկ բովանդակության, API, օպտիկայի, բեռնման, վեբհուկի համար։
Տիպիկ սպառնալիքներ և միջոցներ
OWASP Top 10: SNi, XIV, IDOR/BOLA, SSRF, մոդելավորման, դեսերիզացիայի, միսկոնֆիգների։
L7 DDoS: դանդաղ հարցումներ/վերնագրեր, burst տաք endpoints-ի պաշտպանությունը 'rate-limits, challenge, auto բլոկը։
Բոտա/սքրեյպերներ 'վարքագիծ, հաճախականություն, «անմարդկային» պաթթերներ, device-fingerprinting, դինամիկ հոսանքներ։
Credential Stuffing/ATO: Logines-ի ընդհատումը/տեղափոխումը IP/ASN, velocity rules, գործոններ։
Բեռնումը 'տեսակը/չափը/բազմապատկումը հակավիրուսով, «image-only» լրատվամիջոցների մեջ։
API/GraphQL: Schema-validation, «www.Depth», անանուն wildcard արգելքը, մեթոդների և վերնագրերի վերահսկումը։
Քաղաքականության և կանոնների դիզայներները
Հիմնական «կմախքը» ցանկացած ծրագրի համար
1. Տրանսպորտը ՝ TFC 1։ 2+/1. 3, HSTS, mTSA զգայուն բեքենդերի վրա։
2. Մեթոդներ ՝ allow-list («GET, POST, PUT, MSETE, PATCH, OPTIONS») յուրահատուկ ռեսուրսի վրա։
3. Ճանապարհները 'խիստ դիմակներ/ռեգեքսպներ; admk/biling - առանձին նախածանց/տիրույթի վրա։
4. Վերնագրեր ՝ սպիտակ ցուցակներ, վտանգավոր («X-Original-UR», ոչ ստանդարտ) առանց կարիքների։
5. Մարմինները ՝ JSON-only/Multipart-only երթուղով; limits 'Entent-Length ", binary բլոկը" լոգինի/որոնման "վրա։
6. Rate limits: per-IP/ASN/բանալին/կազմակերպություն; առանձին սահմաններ «թանկ» հարցումների համար։
7. Anti-bot: վարքագծային կորտինգը, չլենջները, ինքնության լանջը (cookie-tocens, JA3/TMS FP)։
8. CRS/Euroned Rules: Ներառում է, թյունինգը FP-ի տակ։
9. Virt-patchi: արագ արգելափակում հայտնի շարժիչների/հարձակման ձևանմուշների։
10. Logs/metriks: Մեկ ձևաչափ, հարաբերակցությունը 'trace _ id ", FP/TP զեկույցները։
Թյունինգի պրակտիկան 'ինչպես նվազեցնել կեղծ գործարկումները
Սկսել նոր կանոնները Detrone-only/Count-mode (shadow) նմուշով։
Ստեղծել բացառություններ համատեքստով («path =/search», «param = q» թույլ տալ հատուկ սիմվոլներ)։
Բաժանել տարածքը '"հանրային էջերը" զգայուն վիրահատություններ "(ագրեսիվության շեմն տարբեր է)։
Փոխակրիչ 'ստանդարտ ստեյջինգի ստանդարտ կանարեյկա (1-5%) prod; rollback FP-ում։
«Կեղծ» payload կատալոգը ղեկավարել ռեգրեսիայի թեստերի համար։
Ինտեգրումը DevSecOps-ում
CI 'պետական կանոնները Git-ում; թեստեր 'իրական հարցումների/սինթեզի վերամշակում ռուսական հարձակումներից։
CD: Կանարյան ծածկոցներ, դեմքի դրոշներ; «Քաղաքական» նախաձեռնություն (կանոնների փոփոխություն = change)։
RASP և SFC/DTS: WAF-ը լրացնում է, բայց չի փոխարինում կոդի ուղղումը։
Դիտարկումը և SLO
Մետրիկները
p95/99 լատենտ WAF-ի միջոցով; արգելափակված/բաց թողնված մասնաբաժինը; share Managed Rules vs custom; «attack rate».
Anti-bot: Chelengey/dack, FP/TP։
L7 DDoS: burst-rate, auto-mitigation events.
SLO օրինակներ
"Ոչ ավելի քան 0։ 5% FP-ը հեղինակային գործողությունների/օրվա համար"։
«p95 overhead WAF ≤ 10 мс».
«TTR վիրտուալ փամփուշտը 30 րոպե»։
Ալարմա '4xx/5xx-ի աճը կանոնների թողարկումից հետո։ FP աճը; կաթիլների անկում; JWKS/mTRK-validation։
Միգրացիայի օրինակներ
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 + երկրների ցուցակի բլոկը)
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: Պարզ կանոնը 112/մարմինների վրա
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: Սահմանափակիչներ
«www.Depth = 6», «www.Cost = 1000», արգելք '_ schema' վաճառքում, allow-list վիրահատությունների, վերնագրերի («Content-Type: application/json»)։
Anti-bot և մարդկային-ընկերական ստուգումներ
Disisible challenge (JS-Challengy առանց գլխարկի), proof-of-work «թանկ» ճանապարհների վրա, վարքագծային վերլուծաբան (շարժում/թայմինգներ)։
TFC/JA3-fingerprinting, IP/ASN հեղինակություն, www.ru/WPN ցուցակները (ողջամիտ սահմաններում)։
Թակարդները (honeypot-դաշտեր) ձևերի վրա, դինամիկ հոսանքները ձևերի/ձևերի վրա։
Գաղտնիության պաշտպանություն 'թրքինգի նվազեցում, թափանցիկ քաղաքականություններ, opt-out տարբերակներ։
API ֆոկուս
Schema-first: OpenAPI/JSON Schema-ը վալիդացիայի համար։ արգելում է ավելորդ դաշտերը։
Auth: Bearer JWT կամ mTLS; reject без `Authorization`.
Rate/Quota: per-key/per-org; ավելացնելիս '«softblock «/slowing։
Webhooks: HMAC ստորագրությունը, «timestamp + nonce», կարճ պատուհանը։
GraphQL: Տե՛ ս սահմանափակումները ավելի բարձր; տրամաբանել գործողության անունը/պիտակը։
Բեռնումն ու մեդիան
Չափի սահմանը, whitelisom MIME/ընդլայնումը, ֆայլերի փոխակերպումը։
AV-սկանը (մուլտֆիլմ-շարժիչներ), Imant Magick policy (առանց վտանգավոր մրցույթների);
Thumb-ծառայությունը առանձին ենթախմբում, serve-only-images-ում։
Ուղղափառության անվտանգությունը և կրիտիկական գոտիները
Առանձին տիրույթ/ճանապարհ, mTSA/արգելք ընդհանուր ASN/երկրներից, կոշտ rate limits, JIT հասանելի, IP allow-list։
Լրացուցիչ ազդանշաններ (device posture, risk score) նախատեսվում է պահանջել երկրորդ ստուգում։
Վիրահատություններ, միջադեպեր և վիրտուալ փամփուշտներ
Runbook: block կանոնների արագ արտադրությունը, TTL սահմանափակումը, թիմերի ծանուցումը։
Արձագանքի չափանիշները '4x/5x> շեմն, FP> շեմն, p95 latency-ը։
POST-mortem: Թեստի ավելացումը կանոնների ռեգրեսիայի հավաքածուի մեջ, SIGMA-alert-ը SIEM-ում։
Complaens եւ մասնավոր
Տրամաբանել նվազագույն 'ճանապարհը/մեթոդը/կոդը/բլոկի պատճառը/ազդանշանները; չպահել PII/մարմնի գաղտնիքները։
Քաղաքականության լոգարանների պահպանման ժամկետները. հասանելիություն 'դերերով; կոդավորումը կոդավորման վրա։
Հատկություններ iGaming/fintech համար
Վճարումներ/վճարումներ/դրամապանակներ ՝ per-org քվոտա, mTSA k PSA, խիստ allow-թերթիկներ, HMAC webhuks PSA-ի համար։
ATO/bonus-abus: velocity կանոնները լոգինի/գրանցման/պրոմոկոդների, վարքագծային սահմանաչափերի և հակա-բոտի վրա։
Բովանդակություն-պրովայդերներ/ստուդիաներ 'առանձին ֆորումներ/քաղաքականություն, IP/ASN allow-list, Time-to-Wallet/փոխադարձություն WAF ազդեցության վրա։
Տարածաշրջանային պահանջներ ՝ գեո քաղաքական (երկրներ/տարածաշրջաններ), GDPR-ի թափանցիկությունը։
Իրականացման քարտեզը
1. Գոտիների բուլարիզացիան (հանրային, API, admink, բեռնումը)։
2. Հիմնական պրոֆիլը ՝ TFC, մեթոդներ/ուղիներ allow-list, Died Rules/CRS։
3. Rate limits + anti-bot զգայուն ճանապարհների վրա։
4. Վիրտուալ փամփուշտներ և հրատապ կանոնների գործընթացը (SLA 3530 րոպե)։
5. CI/CD կանոնների համար, stejing/canareka/shadow-mode։
6. Թելեմետրիա, SLO, կանոնների ռեգրեսիայի թեստեր։
7. Բացառությունների պարբերական ակնարկը և շրջադարձերի «մաքրումը»։
Տիպիկ սխալներ
"Միացրեցին բոլոր CRS-ները FP-ի ռուսական լավինի և թիմի այրման վրա։
Կանոնները առանց կանետների և shadow ռեժիմի։
Սեգմենացիայի բացակայությունը 'մեկ քաղաքականություն ամեն ինչի համար։
API/GraphQL անտեսումը հատկություններ (schema/limits)։
Լոգները առանց հարաբերակցության («trace _ id») և առանց որակի։
FAQ
WAF-ն փոխարինում է անվտանգ կոդը։
Ոչ։ Սա մեղմացման շերտ է և «վիրտուալ պաթչ», բայց կոդում պարտքը պարտադիր է վերացնել։
Ինչպե՞ ս կարող ենք հասկանալ, որ ժամանակն է կոշտ բլոկներ ներառել։
Երբ shadow-ռեժիմի զեկույցը ցույց է տալիս ցածր FP-ը և կան կանոնների ռեգրեսիայի թեստեր։
Արդյո՞ ք առանձին WAF-ն անհրաժեշտ է API-ի համար։
Ավելի լավ է WAAP/ինտեգրումը API դարպասի հետ 'սխեմա, լիմիտներ, վավերացում, վեբհուկի ստորագրություններ։
Արդյունքը
WAF/WAAAP-ը հիմնական CRS/Euroned Rules-ի համադրությունն է, դրական մոդելը, anti-bota, limits և վիրտուալ փամփուշտներ, որոնք ամրացված են DevSecOps գործընթացներով, հեռուստացույցով և պարզ SLO-ով։ Այս մոտեցումը արագ արձագանք է տալիս խոցելիության վրա, ավտոմատացված հարձակման դիմադրությունը և կանխատեսելի ազդեցությունը UX-ի և արտադրողականության վրա։