Web Application Firewall ва муҳофизат аз ҳамлаҳо
Хулосаи мухтасар
WAF/WAAP филтрҳои HTTP (S )/Web Стек муосир бо муҳаррики зидди бот, муҳофизати API, маҳдудияти суръат, часбҳои виртуалӣ, инчунин ҳамгироии қатъӣ бо CI/CD илова карда мешавад, то қоидаҳо ҳамчун рамз бехатар иҷро карда шаванд.
Нақшҳо ва ҷой дар меъморӣ
Edge/CDN WAF (абр): таъхири кам, эътибори глобалӣ/Қоидаҳои идорашаванда, L7 DD mozils.
WAF-и мустақил (on-prem/K8s): ҳамгироии амиқ бо шабакаҳои дохилӣ, танзими хуб.
Равиши WAAP: Функсияҳои WAF + API-Gateway (схема-тасдиқкунӣ, auth
Схемаҳои фарогирӣ: Баръакс-прокси пеш аз дархост; Ingress controller дар K8s; Филтрҳои хидмати Mesh; sidecar.
Модели муҳофизат
Амнияти манфӣ (имзоҳо/CRS): фарогирии босуръати усулҳои маълум (SQL mi/XSS/SSRF/RCE).
Амнияти мусбӣ (рӯйхати иҷозат): танҳо дархостҳои "дуруст" -ро иҷозат диҳед (усулҳо/роҳҳо/схемаҳо/намудҳои мундариҷа).
Patching виртуалӣ: бастани онлайни истисмор ба ислоҳи код.
Контекст: сиёсатҳои гуногун барои мундариҷаи статикӣ, API, маъмурон, зеркашиҳо, вебхукҳо.
Таҳдидҳо ва чораҳои маъмулӣ
OWASP Top 10: SQL mi, XSS, IDOR/BOLA, SSRF, тазриқи қолаб, дезериализатсия, ғалатфигҳо.
L7 DD HO: дархостҳо/сарлавҳаҳои суст, барои нуқтаҳои хотимавӣ → муҳофизат: меъёрҳо, мушкилот, блоки худкор.
Ботҳо/скреперҳо: рафтор, басомад, намунаҳои "ғайриинсонӣ", нақши ангуштони дастгоҳ, нишонаҳои динамикӣ.
Қуттиҳои эътимоднок/ATO: мусодира/ҳисобкунии логинҳо → аномалия аз ҷониби IP/ASN, қоидаҳои суръат, омилҳои иловагӣ.
Зеркашӣ: навъи/андоза/антивируси бисёрсоҳавӣ, "танҳо тасвир" дар минтақаҳои ВАО.
API/GraphQL: схемаи тасдиқкунӣ, 'максимум '/' макс арзиш', манъи ваҳшии беҷазо, назорати усулҳо ва сарлавҳаҳо.
Сиёсатҳо ва тарроҳони қоидаҳо
Скелети асосӣ барои ҳама гуна барномаҳо:1. Нақлиёт: TLS 1. 2+/1. 3, HSTS, MTLS дар пушти ҳассос.
2. Усулҳо: рӯйхати иҷозат ('GET, POST, PUT, DELETE, PATCH, OPTIONS') барои як манбаъ беназир аст.
3. Роҳҳо: ниқобҳои қатъӣ/regexps; админ/биллинг - ба префикс/домени алоҳида.
4. Сарлавҳаҳо: рӯйхатҳои сафед, манъи хатарнок ('X-Original-URL', ғайримуқаррарӣ).
5. Мақомот: Танҳо JSON/Multipart-танҳо дар масир; маҳдудиятҳои 'Мӯҳтаво-дарозӣ', блоки бинарӣ барои "воридшавӣ/ҷустуҷӯ".
6. Маҳдудиятҳои меъёрӣ: барои як IP/ASN/калид/созмон; маҳдудиятҳои ҷудогонаи дархостҳои "гарон".
7. Анти-бот: баҳодиҳии рафторӣ, мушкилиҳои "хашмгин", часпондани шахсиятҳо (нишонаҳои куки, FP JA3/TLS).
8. CRS/Қоидаҳои идорашаванда: фаъол, танзим дар доираи FP.
9. Часбҳои Wirth: бастани босуръати параметрҳои маълум/шакли ҳамла.
10. Гузоришҳо/ченакҳо: формати ягона, таносуб бо 'trace _ id', гузориш медиҳад FP/TP.
Амалияи танзими: чӣ гуна коҳиш додани мусбатҳои бардурӯғ
Қоидаҳои навро дар муайянкунии танҳо/ҳисоб кардани режим (соя) бо интихоби трафик иҷро кунед.
Эҷод кардани истисноҳо аз рӯи матн ('path =/search', 'param = q' аломатҳои махсусро иҷозат медиҳад).
Минтақаро тақсим кунед: "саҳифаҳои оммавӣ" vs "амалиёти ҳассос" (ҳадди хашмгинӣ гуногун аст).
Конвейер: қоида → марҳилаи → канарӣ (1-5%) → prod; бозгашт аз рӯи ченакҳои FP.
Нигоҳ доштани феҳристи бори "бардурӯғ" барои санҷишҳои регрессия.
Интегратсия ба Dev
CI: қоидаҳои статикӣ дар Git; озмоишҳо: такрори дархостҳои воқеӣ + синтетика аз феҳристи ҳамла.
CD: ҳисобҳои канарӣ, парчамҳои хусусият; мониторинги "сиёсӣ" (тағир додани қоида = тағирот).
RASP ва SAST/DAST: иловаҳои WAF, аммо ислоҳи рамзро иваз намекунад.
Мушоҳида ва SLO
Нишондиҳандаҳо:- p95/99 таъхир тавассути WAF; таносуби басташуда/пазмоншуда; мубодила Қоидаҳои идорашаванда vs одат; "сатҳи ҳамла".
- Анти-бот: ҳиссаи мушкилот/тағирот, FP/TP.
- L7 DD mozool: ҳодисаҳои таркиш, худкори сабуксозӣ.
- "На бештар аз 0. 5% FP дар амалиётҳои ваколатдор/рӯз"
- "p95 ҳавопаймои WAF ≤ 10 мс".
- "TTR-и виртуалӣ ≤ 30 дақиқа".
- Огоҳӣ: хӯшае 4xx/5xx пас аз баровардани қоидаҳо; Афзоиши FP; тарки дар гузаргоҳи captcha; таназзули тасдиқи JWKS/MTLS.
Танзимоти намуна
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, маҳдудияти нархҳо + блоки рӯйхати кишварҳо)
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 }
}
]
}
Абрнок (Қоидаҳои ифода)
(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: Усули оддӣ/Қоидаи бадан
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";
}
}
Диаграммаи QL: полис
'максимум = 6', 'максимум = 1000', манъи 'схемаи __' дар фурӯш, рӯйхати амалиётҳо, тасдиқи сарлавҳаҳо ('Мазмун-намуд: барнома/json').
Санҷишҳои зидди бот ва дӯстона
Мушкилоти ноаён (мушкилоти JS бидуни captcha), исботи кор дар роҳҳои "гарон", таҳлили рафтор (ҳаракат/вақт).
TLS/JA3 ангуштнамоӣ, эътибори IP/ASN, рӯйхати прокси/VPN (дар доираи маҳдудиятҳои оқилона).
Домҳо (майдонҳои асал) дар шаклҳо, нишонаҳои динамикӣ/сессия.
Муҳофизати дахолатнопазирӣ: кам кардани пайгирӣ, сиёсати шаффоф, имконоти дасткашӣ.
Фокус API
Схема-аввал: Схемаи кушодани API/JSON барои тасдиқ; манъ кардани майдонҳои иловагӣ.
Auth: ҳатмии Bearer JWT ё MTLS; рад кардани 'Авторизатсия'.
Меъёр/квота: барои як калид/як-org; агар барзиёд - "блоки мулоим "/сустшавӣ.
Webhooks: Имзои HMAC, 'timestamp + nonce', равзанаи қабули кӯтоҳ.
Диаграммаи QL: ба маҳдудиятҳои дар боло овардашуда нигаред; Сабти ном/нишонаи амалиёт.
Зеркашӣ ва ВАО
Маҳдудияти андоза, сафедпӯстон MIME/васеъкунӣ, номи файлҳо;
Сканеркунии AV (муҳаррикҳои бисёрсоҳавӣ), сиёсати Image-Magick (бе декодерҳои хатарнок);
Хидмати ангуштон дар домени алоҳида, танҳо-тасвирҳо хизмат мекунад.
Бехатарии маъмурон ва минтақаҳои муҳим
Домен/роҳи ҷудогона, m: TLS/манъкунӣ аз ASN/кишварҳои маъмул, маҳдудиятҳои суръати сахт, дастрасии JIT, рӯйхати иҷозатдиҳии IP.
Сигналҳои иловагӣ (ҳолати дастгоҳ, холҳои хатар) → санҷиши дуюмро талаб мекунанд.
Амалиётҳо, ҳодисаҳо ва часбҳои виртуалӣ
Runbook: зуд баровардани қоидаҳои блок, маҳдудкунии TTL, огоҳиномаи фармон.
Меъёрҳои бозгашт: ҳадди афзоиш 4xx/5xx> ҳадди ақалл, FP> ҳадди ниҳоӣ, p95 таъхири p95.
Пас аз марг: ба маҷмӯи қоидаҳои регрессия санҷиш илова кунед, ба SIEM ҳушдор диҳед.
Мувофиқат ва махфият
Ҳадди аққали сабти ном: роҳ/усул/код/блок сабаб/идентификаторҳо; сирри PII/баданро нигоҳ надоред.
Давраҳои нигоҳдории сабти сиёсат; дастрасӣ - аз рӯи нақшҳо; рамзгузорӣ дар диск.
Хусусиятҳо барои IGaming/fintech
Пардохтҳо/пардохтҳо/ҳамёнҳо: квотаҳои per-org, MTLS ба PSP, рӯйхати қатъии роҳ, HMAC барои вебҳукҳои PSP.
АТО/сӯиистифодаи бонус: қоидаҳои суръат барои воридшавӣ/бақайдгирӣ/рамзҳои таблиғотӣ, маҳдудиятҳои рафторӣ ва зидди бот.
Провайдерҳо/студияҳои мундариҷа: доменҳо/сиёсатҳои инфиродӣ, рӯйхати иҷозатдиҳии IP/ASN, мониторинг/табдили вақт ба ҳамён ба таъсири WAF.
Талаботи минтақавӣ: гео-сиёсатҳо (кишварҳо/минтақаҳо), шаффофияти табобат барои GDPR.
Харитаи роҳсозӣ
1. Инвентаризатсияи минтақаҳо (оммавӣ, API, панели маъмурӣ, зеркашӣ).
2. Профили асосӣ: TLS, усулҳои иҷозатдиҳӣ/роҳҳо, Қоидаҳои идорашаванда/CRS.
3. Меъёри маҳдудиятҳо + анти-бот дар роҳҳои ҳассос.
4. Часбҳои виртуалӣ ва раванди фаврии қоидаҳо (SLA ≤ 30 дақиқа).
5. CI/CD барои қоидаҳо, саҳна/канарӣ/сояи режим.
6. Телеметрия, SLO, санҷишҳои регрессияи қоидаҳо.
7. Баррасии даврии истисноҳо ва "тоза кардани" гузаргоҳҳо.
Хатогиҳои умумӣ
"Ҳама CRS-ро ба ҳадди аксар фурӯзон кард" → тарма ва FP сӯхтани даста.
Қоидаҳо бе канарейка ва ҳолати соя.
Не сегментатсия: як сиёсат барои ҳама чиз.
Нодида гирифтани хусусиятҳои API/GraphQL (схема/маҳдудиятҳо).
Сабтҳо бе коррелятсия ('trace _ id') ва бе ченакҳои сифат.
FAQ
WAF рамзи бехатарро иваз мекунад?
Не, ин тавр нест. Ин як қабати сабуккунӣ ва "ямоқи маҷозӣ" аст, аммо қарзи техникӣ дар код бояд бартараф карда шавад.
Чӣ тавр фаҳмидан мумкин аст, ки вақти фурӯзон кардани блокҳои сахт расидааст?
Вақте ки гузориши ҳолати сояҳо FP-и пастро нишон медиҳад ва санҷишҳои регрессияи қоидаҳо мавҷуданд.
Оё ба ман WAF алоҳида барои API лозим аст?
WAAP/ҳамгироии беҳтар бо дарвозаи API: схема, маҳдудиятҳо, аутентификатсия, имзоҳои webhook.
Ҷамъ
Самараноки WAF/WAAP ин маҷмӯи қоидаҳои асосии CRS/идорашаванда, модели мусбӣ, анти-бот, маҳдудиятҳо ва часбҳои виртуалӣ мебошад, ки аз ҷониби равандҳои Dev Ин равиш вокуниши зудро ба осебпазирӣ, муқовимат ба ҳамлаҳои автоматӣ ва таъсири пешгӯишаванда ба UX ва иҷро таъмин мекунад.