GH GambleHub

WAF жана ийне коргоо

1) Эмне үчүн WAF доорунда API

Катуу валидация жана параметрлөө менен да инъекциялар төмөнкүлөрдөн келип чыгат:
  • "узун куйруктарды" интеграциялоо (мурас коду, өнөктөш вебхоктор),
  • парсинг айырмачылыктары (прокси фреймворк),
  • жаңы протоколдук/айланма ыкмалары.
  • WAF коддун бошотулушуна чейин эрте баш тартуу (early deny) жана "виртуалдык патчинг" чегин берет, бирок коопсуз иштеп чыгууну алмаштырбайт.

2) коркунуч модели: API үчүн ийне түрлөрү

SQLi/ORMi: classic/boolean/time-based/stacked; кечигүү аркылуу blind.
NoSQLi (Mongo/Elastic): операторлор '$ne/ $gt', JSON injection, regex-DoS.
Command Injection/RCE: shell-метасимволдар, аргументтерди алмаштыруу, unsafe deserialization → code exec.
XXE: XML тышкы жактары/DTD.
SSRF: '169 кирүү. 254. 169. 254 '/ички кызматтарга; DNS-rebinding.
Template Injection: Jinja/Thymeleaf/Handlebars; `{{77}}`.
LDAP/EL Injection, XPath, Header injection (CRLF), Path traversal.
GraphQL-өзгөчө: '__ schema' introspection, суроо-талаптардын тереңдиги/татаалдыгы.
JSON/JS Special: Prototype Pollution ('__ proto __', 'constructor').
gRPC/Protobuf: oversized messages, field smuggling аркылуу шайкеш схемалар.


3) WAF Архитектура

CDN-WAF периметри: тез geo/ASN чыпкалоо, базалык бот контролдоо, кэш/антипаддинг.
L7 периметри (NGINX/Envoy/APISIX/Kong): так парсинг, терең эрежелер, PDP/лимиттер менен интеграция.
Сайдкар/mash (Envoy WASM/Filter): per-кызматы, маалыматтарга жакын, ички API үчүн жалган-оң аз.
Сунуш: эки катмарлуу модель (CDN-WAF + L7 WAF).


4) Парсинг, нормалдаштыруу жана анти-айланып

WAF арыз менен бирдей канондук көрүнүштү көрүшү керек:
  • Жолдорду нормалдаштыруу ('/a/% 2e% 2e/b '→ ката),' UTF-8 '/Unicode confusables, NUL-байттар.
  • Бирдиктүү декодинг: URL-/HTML-/Unicode-/Base64 катмарлары, кош декодинг тыюу салуу.
  • Чектөөлөр: 'max _ headers', 'max _ header _ size', 'max _ body _ size', 'max _ args', JSON тереңдиги, multipart бөлүктөрүнүн чеги, 2x gzip/zip бомбаларына тыюу салуу.
  • Content-Type саясаты: 'application/json' JSON-пункттарында гана; "polyglot" четке кагуу.

5) Эрежелердин моделдери

Терс (кол тамгалар): OWASP CRS (SQLi/XSS/SSRF/Java/Node RCE ж.б.). Тез баштоо.
Позитивдүү (allow-list): катуу схемалар (JSON Schema/Protobuf), түрлөрү жана диапазондору; жолдору боюнча.
Аномалдуу/эсепти: "шектүү" белгилерди кошуу → бөгөт коюу босогосу.
Контексттик: 'POST/payments' жана 'GET/status' үчүн ар кандай профилдер; азыраак FP.


6) коргоо блоктору (байламта)

1. Схемалар жана түрлөрү: JSON схемасы/бизнес-логикага Protobuf валидация.
2. Параметрлештирүү: даярдалган сөз айкаштары, ORM-bindings, атаандаштык тыюу салуу.
3. Output-escaping: HTML/JS/SQL контекстинде.
4. Body Policies: Content-Type, көлөмү, multipart-чектөөлөр, JSON-калем боюнча бинардык тыюу салуу.
5. WAF эрежелери: CRS + өзгөчө терс/оң.
6. Rate/Quota/Concurrency: brute/таш бака DDoS басуу, коомдук формалар үчүн коргоочу капчыктар/чакырыктар.
7. Тармактарды изоляциялоо: SSRF (deny RFC1918/metadata/Unix sockets) үчүн egress саясаты.
8. Headers-гигиена: 'X-Content-Type-Options: nosniff', 'Content-Security-Policy' алдыңкы, 'Referrer-Policy'.
9. GraphQL guard: тереңдик/татаалдыктын чектери, прод-жылы introspection тыюу (же ролу-дарбазасы).


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: түрүн чектөө жана анти-fusion

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-route профилдери: алар ылайыктуу жерде гана катуу эрежелер (мисалы, '/search 'жол берет '/'%').
Shadow/Report-Only: блоктун алдында иштеп логин; A/B салыштыруу метриктер.
"Ызы-чуу" легитимдүү параметрлери үчүн атайын allow тизмелери.
Scoring: индикаторлордун суммасы> босого болгондо гана бөгөт коюу.
эксперименттер: жаңы эрежелер → auto-rollback боюнча трафиктин аз пайызы.


9) Байкоо жана форензия

Метрики: `waf_block_total{rule}`, `waf_anomaly_score`, `request_body_rejected_total`, `schema_violation_total`, `ssrf_block_total`.
Логи (үлгүлүү): эреже, суроонун бир бөлүгү (редакцияланган), 'trace _ id', 'tenant', 'route', себеби. PII/сырларды жашыруу.
Dashbord: жогорку эрежелер/жолдор, FP-кластер, чыгаруу кийин динамикасы.
Окуялар: артефакттарды (payload, pcap керек болсо), RCA продуктуларын жана "виртуалдык патчтарды" сактоо.


10) тестирлөө жана башаламандык жагдайлар

WAF айланма корпустары (SQLi/XSS/SSRF), кош/үч коддоо, аралаш Unicode.
Парсинг айырмачылыктары: Прокси жана фреймворк айырмаланышы мүмкүн болгон payload жөнөтүү (параметрлер, массивдер, ';' vs '&).
Slow-POST/oversize, zip бомба, көп бөлүкчөлүү түрлөрү, boundary ката.
GraphQL: тереңдик/кыйынчылык генератору, чектерди жана таймдарды текшерүү.


11) Антипаттерндер

"CRS күйгүзүп, унутуп": схемалар жок, маршруттар боюнча тюнинг жок.
чийки орган суроо жана PII менен Логи.
нормалдаштыруу/өлчөмдөрдүн чеги жок → айланма, DoS парсинг.
Пропуск 'Content-Type '/charset текшерүүлөр → полиглот чабуулдар.
Жок egress чыпкалар → булут метадат SSRF.
тышкы жана ички API үчүн бир жалпы кароо.
Контролсуз өзгөчөлүктөр "өнөктөш үчүн" → периметри тешиктер.


12) iGaming/каржы өзгөчөлүктөрү

Төлөм/чыгаруу туткаларындагы күчөтүлгөн профилдер: кичинекей body-лимиттер, катуу схемалар, account/IBAN/PAN талаалары үчүн deny-тизмелер (маскировка, формат текшерүүлөр).
PSP/KYC тартып Webhuke: HMAC кол/мутациялык TLS, өзүнчө WAF профилдери, анти-кайталоо.
Гео/ASN чыпкалар жана жүрүм-турум чеги бот каттоо жана бонустук кыянаттык алдын алуу үчүн.
Инциденттердин журналдары өзгөрүлбөйт (аудит), юрисдикциялар боюнча сактоо.


13) Prod-даярдык чек тизмеси

  • Эки катмарлуу WAF (CDN + L7), бирдиктүү нормалдаштыруу жана өлчөм чектери.
  • OWASP CRS киргизилген, атайын эрежелер per-route; JSON схемасы/Protobuf write калем.
  • Content-Type/charset саясаты; кош декодинг тыюу/NULL/traversal.
  • Жеке диапазондогу SSRF-egress блогу/metadata; DNS-rebinding коргоо.
  • Rate/Quota/Concurrency жана анти-бот (челленджи) коомдук түрүндө.
  • Shadow/Report-Only → canary → enforce; SLO жана FP боюнча авто-rollback.
  • Metrics/Logi/Trades камуфляж менен; dashbord "жогорку эрежелер "/FP.
  • Playbook Virtual Patch жана RCA; үзгүлтүксүз текшерүү.
  • PSP/KYC Webhook, төлөм туткалары жана ички API үчүн өзүнчө профилдер.

14) TL; DR

катмарлар боюнча коргоо куруу: нормалдаштыруу жана чектер → схемалар/түрлөрү → параметрлөө → WAF (CRS + каст) → rate/бот-чыпкалар → egress-блок SSRF. per-route тюнинг, shadow → canary боюнча жаңы эрежелерди ишке киргизүү, Метрика/FP жана "виртуалдык тактарды" коддун фиксине чейин жасоо. Төлөм/вебхук жолдору үчүн - өзүнчө катуу профилдер, HMAC/mTLS жана минималдуу ишеним терезелери.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.