WAF և պաշտպանություն խմբակցություններից
1) Ինչու WAF-ը API դարաշրջանում
Նույնիսկ խիստ վալիդացիայի և միգրացիայի բևեռացման ժամանակ առաջանում են հետևյալը
ինտեգրման երկար պոչերը (ժառանգական կոդը, գործընկերային webhuki),
Պարսինգի տարաձայնությունները (No. Premork),
նոր պրոտոկոլային/վերամշակման տեխնիկան շրջանցելու համար։
WAF-ը տալիս է վաղ հրաժարվելու (early deny) և «վիրտուալ պաթչինգը» մինչև կոդի թողարկումը, բայց չի փոխարինում անվտանգ զարգացումը։
2) սպառնալիքների մոդելը 'API-ի համար միգրացիայի տեսակները
SQLi/ORMi: classic/boolean/time-based/stacked; blind հետաձգման միջոցով։
DRI (Mongo/Elastic) 'օպերատորներ' 108/դոլար gt ", JSON inject, regex-DoS։
Command Inject/RCE: shell-metasimvols, փաստարկների փոխարինում, unsafe deserialization code exec։
MSE ՝ արտաքին էակներ/DTD XML-ում։
GraphQL-հատուկ '_ _ _ schema' introsp.ru, դիմումների խորությունը/բարդությունը։
JSON/JS-հատուկ 'Delotype Polution («_ _ բանաձևը _ _», «constructor»)։
SSRF 'հասանելիությունը' 169։ 254. 169. 254 '/ներքին ծառայություններին; DNS-rebinding.
Template Injection: Jinja/Thymeleaf/Handlebars; `{{77}}`.
LDAP/EL Injection, XPath, Header injection (CRLF), Path traversal.
GRPC/Drobuf: oversized drages, field smuggling սխեմաների անհամապատասխանության միջոցով։
3) WAF ճարտարապետությունը
CDN-WAF-ի պարագծերը 'արագ geo/ASN ֆիլտրացում, հիմնական բոտ վերահսկողություն, քաշ/հակադադադդինգ։
L7 (NGINX/Envoy/APISIX/Kong) 'ճշգրիտ պարսինգը, խորը կանոնները, PDP/limits հետ ինտեգրումը։
Saidkar/mash (Envoy WASM/Winter): տեղեկատվական ծառայություն, մոտ է տվյալներին, ավելի քիչ կեղծ դրական ներքին API-ի համար։
Առաջարկություն ՝ երկշաբաթյա մոդել (CDN-WAF + L7 WAF)։
4) Պարսինգը, նորմալացումը և հակադարձ շրջանցումը
WAF-ը պետք է տեսնի նույն կանոնական գաղափարը, ինչ ծրագիրը
Ուղիների նորմալացում ("/a/% 2e/b 'ռուսական մերժում), "UTF-8 "/Unicode nusables, NUL-բայթ։
Միասնական ինդեքսը ՝ URL-/HTML-/Unicode-/Base64 շերտերը, կրկնակի ինդուկցիայի արգելքը։
Սահմանափակումներ ՝ «max _ headers», «max _ header _ size», «max _ body _ size», «max _ args», JSON խորությունը, multipart-մասերի սահմանը, 2x gzip/zip-bomb արգելքը։
Content-Type-ի քաղաքականությունները '«applation/json» միայն JSON-Endpoints-ում։ շեղել «polyglot»։
5) Կանոնավոր մոդելներ
Բացասական (ստորագրություններ) 'OWASP CRS (SNi/XIV/SSRF/Java/Node RCE և այլն)։ Արագ սկիզբը։
Դրական (allow-list) 'խիստ սխեմաներ (JSON Schema/Eurobuf), տեսակներ և միջակայքներ։ երթուղիներով։
Աննոմալ/արագ '«կասկածելի» նշանների ամփոփումը արգելափակման շեմն է։
Համատեքստային 'տարբեր պրոֆիլներ «POST/payments» և «GET/status» համար։ Ավելի քիչ FP։
6) Պաշտպանիչ բլոկները (կապի մեջ)
1. Սխեմաները և տեսակները ՝ JSON Schema/Eurobuf-ը մինչև բիզնես տրամաբանությունը։
2. Դելբրիզացիան 'պատրաստված արտահայտություններ, ORM-bindings, կոնկատենացիայի արգելք։
3. Diput-escaping: HTML/JS/SQL կոնտեքստային։
4. Մարմնի քաղաքական գործիչները ՝ Content-Type, չափսը, multipart-սահմանափակումը, binary արգելքը JSON հոսքերի վրա։
5. WAF կանոնները ՝ CRS + կաստոմային բացասական/դրական։
6. Rate/Delta/Concurrency: ճնշում bram/chripash DDoS, պաշտպանիչ գլխարկներ/Chelengy հասարակական ձևերի համար։
7. Ցանցերի մեկուսացումը 'egress քաղաքականություն SSRF-ի համար (deny RFC1918/metadata/Unix sockets)։
8. Headers-հիգիենան '«X-Engent-Type-Options: nosniff», «Content-Policy» առաջնագծի համար, «Referrer-Policy»։
9. GraphQL guard: limites խորություն/դժվարություն, introspox արգելք վաճառքում (կամ դեր)։
7) Միգրացիայի օրինակներ
7. 1 NGINX + ModSecurity (OWASP CRS)
nginx load_module modules/ngx_http_modsecurity_module.so;
modsecurity on;
modsecurity_rules_file /etc/modsecurity/modsecurity.conf;
modsecurity_rules '
SecRuleEngine On
Подключаем CRS
Include /etc/modsecurity/crs/crs-setup.conf
Include /etc/modsecurity/crs/rules/.conf
Позитивные правила: только JSON и ограничение размера
SecRule REQUEST_HEADERS:Content-Type "!@rx ^application/json($;)" "id:10001,phase:1,deny,status:415,msg:'Only JSON allowed'"
SecRequestBodyLimit 1048576
SecRequestBodyNoFilesLimit 1048576
Блок локальных адресов (SSRF)
SecRule REQUEST_HEADERS:Host "@ipmatch 127.0.0.0/8 10.0.0.0/8 169.254.0.0/16 192.168.0.0/16" \
"id:10002,phase:1,deny,status:403,msg:'Blocked private range'"
';
server {
listen 443 ssl http2;
server_name api.example.com;
client_max_body_size 1m;
proxy_request_buffering on; # защита от slow-POST proxy_read_timeout 300ms;
proxy_connect_timeout 100ms;
location /v1/ {
proxy_pass http://app_backends;
}
}
7. 2 Envoy HTTP WAF (WASM + JSON Schema + SSRF egress-deny)
yaml http_filters:
- name: envoy.filters.http.wasm typed_config:
config:
vm_config: { vm_id: waf, code: { local: { filename: /plugins/waf.wasm } } }
configuration:
"@type": type.googleapis.com/google.protobuf.Struct value:
crs_profile: "strict"
deny_patterns: ["(?i)union.select", "(?i)(sleep benchmark)\\s\\("]
json_schema:
"/v1/payments:create": "/schemas/payments_create.json"
- name: envoy.filters.http.router
Egress SSRF guard (L4): deny private ranges from gateway filter_chains:
- filters:
- name: envoy.filters.network.tcp_proxy typed_config:
stat_prefix: egress cluster: internet access_log: [...]
tunneling_config:
hostname: "%REQ(:authority)%"
transport_socket:
name: envoy.transport_sockets.tls
7. 3 APISIX 'տեսակների սահմանափակում և հակաֆուսացում
yaml routes:
- uri: /v1/
plugins:
cors: { allow_origins: "https://app.example.com" }
request-validation:
body_schema:
{"type":"object","properties":{"amount":{"type":"number","minimum":1}},"required":["amount"]}
uri-blocker:
block_rules: ["..","%2e%2e","%2f..","\\x00"] # traversal/NULL proxy-rewrite:
headers:
set:
X-Content-Type-Options: "nosniff"
8) Թյունինգը և կեղծ աշխատանքի նվազումը (FP)
Per-rope-ի պրոֆիլները 'խիստ կանոնները միայն այնտեղ, որտեղ դրանք տեղին են (օրինակ ՝ "/search "թույլ է տալիս "/"%")։
Shadow/Reast-Only: Մենք աշխատում ենք բլոկի առջև։ A/B համեմատությունը։
Կաստոմային allow ցուցակները «աղմկոտ» լեգիտիմական կոմպոզիաների համար։
Սկորինգը 'արգելափակել միայն ցուցանիշների գումարով> շեմն։
Փորձարկումները 'փոքր տոկոսը նոր կանոնների վրա տրամադրվում է Avto-rollback-ը։
9) Դիտողությունն ու ֆորենզիկան
Метрики: `waf_block_total{rule}`, `waf_anomaly_score`, `request_body_rejected_total`, `schema_violation_total`, `ssrf_block_total`.
Լոգները (semple) 'կանոն, հարցման մի մասը (խմբագրված), «trace _ id», «tenault», «rope», պատճառը։ Դիմակավորված PII/գաղտնիքները։
Dashbords: Լավագույն կանոնները/ճանապարհները, FP-2019, դինամիկան թողարկումից հետո։
Միջադեպերը 'արտեֆակտների պահպանումը (payload, pcap անհրաժեշտության դեպքում), RCA արտադրանքները և «վիրտուալ փամփուշտները»։
10) Փորձարկումներ և քաոս սցենարներ
WAF (SNI/XIM/SSRF), կրկնակի/եռակի կոդավորումը, խառնված Unicode։
Պարսինգի տարբերությունները 'ուղարկեք payload, որտեղ հյուրանոցները և շրջանակները կարող են ծախսվել (դուբլներ, զանգվածներ, ";" vs' & ")։
Slow-POST/oversize, zip-ռումբեր, բազմաթիվ հաճախակի ձևեր, սխալ boundary։
GraphQL 'խորության/բարդության գեներատոր, սահմանների և թայմաուտների ստուգում։
11) Անտիպատերնի
«Միացրեցին CRS-ը և մոռացան» ՝ առանց սխեմաների, առանց թյունինգի երթուղիներով։
Լոգները հում են հարցման մարմինով և PII-ով։
Չկա նորմալիզացիա/չափսեր, DoS պարսինգի վրա։
International-Type '/charset ստուգումներ ռուսական պոլիգլոտ հարձակումները։
Egress ֆիլտրերի բացակայությունը SSRF-ն է ամպի մետրոպոլիտին։
Արտաքին և ներքին API-ի համար մեկ ընդհանուր պրոֆիլ։
«Գործընկերոջ համար» անվերահսկելի բացառությունները պարագծի մեջ անցքեր են։
12) iGaming/ֆինանսական առանձնահատկությունները
Ուժեղացված պրոֆիլները ստացիոնար/եզրակացական հոսքերի վրա 'փոքրիկ body-limits, խիստ սխեմաներ, deny ցուցակներ account/IBAN/PAN դաշտերի համար (դիմակավորում, ստացիոնար ստուգումներ)։
Webhuks PMS/KYC: HMAC ստորագրություն/մուտուալ TLS, WAF-ի առանձին պրոֆիլներ, anti-replay։
Geo/ASN ֆիլտրերը և վարքագծային լիմիտները, որպեսզի կանխեն բոտ գրանցումները և բոնուս-աբյուզան։
Ամսագրերը հաստատվում են անփոփոխ (աուդիտ), միգրացիայի պահպանումը։
13) Չեկ-թուղթ պատրաստակամության համար
- Երկշաբաթյա WAF (CDN + L7), մեկ նորմալացում և չափի սահմաններ։
- OWASP CRS-ն ներառում է, կաստոմային կանոնները per-rope; JSON Schema/Eurobuf-ը write-բռնակներում։
- Content-Type/charset քաղաքականություն; երկակի ինդուկցիայի արգելք/NFC/traversal։
- SSRF-egress բլոկը մասնավոր միջակայքների/metadata; RF-rebinding պաշտպանություն։
- Rate/Delta/Concurrency և anti-bot (Chelengi) հանրային ձևերով։
- Shadow/Report-Only → canary → enforce; avto-rollback SLO և FP-ով։
- Metriki/logs/treiss դիմակավորված; dashbords «բարձր կանոններ »/FP։
- Վիրտուալ փամփուշտներ և RCA; Այս փորձարկումները հետևյալն են.
- PMS/KYC webhuks, հիբրիդային բռնակներ և ներքին API-ներ։
14) TL; DR
Կառուցեք պաշտպանություն շերտերի վրա 'նորմալացում և սահմանաչափեր WAF (CRS + caste) www.rate/bot ֆիլտրեր wwww.egress-բլոկի SSRF։ Վերցրեք per-rome-ը, սկսեք նոր կանոնները shadow canary-ում, հետևեք մետրերին/FP-ին և պատրաստեք վիրտուալ փամփուշտներ մինչև կոդի ֆիքսը։ Մետրոպոլիտենի/webhuk-ճանապարհների համար կան առանձին խիստ ավելցուկներ, HMAC/mTRK և նվազագույն վստահության պատուհաններ։