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-ерекше: Prototype Pollution ('__ proto __', 'constructor').
gRPC/Protobuf: oversized messages, field smuggling сызбалар сәйкес келмеуі арқылы.


3) WAF сәулеті

CDN-WAF периметрі: жылдам geo/ASN-сүзу, базалық бот-бақылау, кэш/антипаддинг.
L7 периметрі (NGINX/Envoy/APISIX/Kong): нақты парсинг, терең ережелер, PDP/лимиттермен интеграция.
Сайдкар/мэш (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 Schema/Protobuf бизнес-логикаға дейін валидация.
2. Параметрлеу: дайындалған өрнектер, ORM-биндингтер, конкатенацияға тыйым салу.
3. Output-escaping: HTML/JS/SQL контексті.
4. Дене саясаты: 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: түрлерін шектеу және антифузия

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 тізімдері.
Скоринг:> шегінің индикаторлар қосындысында ғана бұғаттау.
Эксперименттер: жаңа ережелерге трафиктің аз пайызы → авто-rollback.


9) Бақылау және форензия

Метрики: `waf_block_total{rule}`, `waf_anomaly_score`, `request_body_rejected_total`, `schema_violation_total`, `ssrf_block_total`.
Логи (жинақталған): ереже, сұрау бөлігі (редакцияланған), 'trace _ id', 'tenant', 'route', себебі. PII/құпияларды жасырыңыз.
Дашбордтар: топ-ережелер/жолдар, 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 тексерулерін жіберу → полиглот шабуылдары.
Bulut метадатына egress-сүзгілердің жоқтығы → SSRF.
Сыртқы және ішкі API үшін бір ортақ профиль.
«Серіктес үшін» бақылаусыз ерекшеліктер → периметрдегі тесіктер.


12) iGaming/Қаржы ерекшелігі

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


13) Prod-дайындық чек-парағы

  • Екі қабатты WAF (CDN + L7), бірыңғай нормалау және өлшем лимиттері.
  • OWASP CRS қосылған, per-route кастомдық ережелері; JSON Schema/Protobuf write-қаламдарда.
  • Content-Type/charset саясаты; қосарлы декодингке тыйым салу/NULL/traversal.
  • SSRF-egress-блокты/metadata; DNS-rebinding қорғанысы.
  • Rate/Quota/Concurrency және ашық нысандардағы қарсы бот (челлендждер).
  • Shadow/Report-Only → canary → enforce; SLO және FP бойынша авто-rollback.
  • Бүркемеленген метрика/логи/трейстер; «топ-ережелер »/FP дашбордтары.
  • Виртуалды патч және RCA ойнатқыштары; тұрақты тексеріп шығу тестілері.
  • PSP/KYC вебхуктар, төлем қаламдары және ішкі 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 міндетті емес
Пішім: +ел коды және номер (мысалы, +7XXXXXXXXXX).

Батырманы басу арқылы деректерді өңдеуге келісім бересіз.