GH GambleHub

WAF ва муҳофизати тазриқ

1) Чаро WAF дар давраи API

Ҳатто ҳангоми санҷиши дақиқ ва параметризатсия, тазриқ бо сабаби:
  • "думҳои дароз" -и ҳамгироӣ (рамзи меросӣ, вебхукҳои шарикӣ),
  • таҳлили номутобиқатӣ (чаҳорчӯбаи прокси ↔),
  • усулҳои нави протокол/obfuscation bypass.
  • WAF сарҳади барвақт ва "таъмири виртуалӣ" -ро пеш аз барориши код медиҳад, аммо рушди бехатарро иваз намекунад.

2) Модели таҳдид: Намудҳои тазриқи API

SQL ji/ORM mi: классикӣ/мантиқӣ/замонӣ/часпонидашуда; кӯр тавассути таъхирҳо.

Нест SQL (Mongo/Elastic): операторҳо '$ ne/$ gt', тазриқи JSON, regex-Do

Тазриқи фармон/RCE: метахарактерҳои ниҳонӣ, иваз кардани аргументҳо, биёбоншавии хатарнок → рамзи exec.
XXE: субъектҳои беруна/DTD дар XML.
SSRF: дастрасӣ ба '169. 254. 169. 254 '/хадамоти дохилӣ; DNS-барқароркунӣ.
Тазриқи қолаб: Jinja/Thymeleaf/Handlebars; '{{77}}'.
LDAP/EL Injection, XP bath, тазриқи сарлавҳа (CRLF), гузариши роҳ.
Графикаи мушаххас: '__ схема' интроспексия, амиқ/мураккабии дархостҳо.
JSON/JS-мушаххас: Прототипи ифлосшавӣ ('__ прото __', 'созанда').
GRPC/Protobuf: паёмҳои азим, қочоқи саҳро тавассути номувофиқатии схема.


3) меъмории WAF

Периметри CDN-WAF: филтри тези гео/ASN, назорати асосии бот, кэш/анти-padding.
Периметри L7 (NGINX/Envoy/APISIX/Kong): таҳлили дақиқ, қоидаҳои амиқ, ҳамгироӣ бо PDP/маҳдудиятҳо.
Sidecar/mash (Envoy WASM/Filter): ҳар як хидмат, наздик ба маълумот, барои API-ҳои дохилӣ камтар мусбат.
Тавсия: модели қабати дугона (CDN-WAF + L7 WAF).


4) Коркард, нормализатсия ва зидди гузариш

WAF бояд ҳамон як намояндагии каноникиро ҳамчун барнома бинад:
  • Нормализатсияи роҳ ('/a/% 2e% 2e/b '→ нокомӣ),' UTF-8 '/Unicode confusables, байтҳои NUL.
  • Рамзгузории ягона: URL-/HTML-/Unicode-/Base64-layers, манъи рамзгузории дугона.
  • Маҳдудиятҳо: 'max _ headers', 'max _ header _ size', 'max _ body _ size', 'max _ args', умқи JSON, лимити бисёрҷониба, бомбаҳои 2x gzip/zip манъ карда шудаанд.
  • Сиёсатҳои навъи мундариҷа: 'ариза/json' танҳо дар нуқтаҳои ниҳоии JSON; рад "полиглот".

5) Моделҳои қоида

Манфӣ (имзоҳо): OWASP CRS (SQL/XSS/SSRF/Java/Node RCE ва ғайра). Оғози зуд.
Мусбат (рӯйхати иҷозат): схемаҳои қатъӣ (JSON Schema/Protobuf), намудҳо ва диапазонҳо; дар масирҳо.
Ғайримуқаррарӣ/баҳодиҳӣ: ҷамъбасти аломатҳои "шубҳанок" → бастани ҳадди ниҳоӣ.
Контекстуалӣ: профилҳои гуногун барои 'POST/пардохтҳо' ва 'GET/status'; камтар FP.


6) Воҳидҳои муҳофизатӣ (дар маҷмӯъ)

1. Схемаҳо ва намудҳо: Тасдиқи JSON Schema/Protobuf ба мантиқи тиҷорат.
2. Параметризатсия: ибораҳои омодашуда, пайвастагиҳои ORM, манъи ҳамоҳангсозӣ.
3. Хуруҷи натиҷа: контекстуалии HTML/JS/SQL.
4. Сиёсати бадан: Намуди мундариҷа, андоза, маҳдудиятҳои бисёрҷониба, манъи бинарҳо дар дастгоҳҳои JSON.
5. Қоидаҳои WAF: CRS + фармоишии манфӣ/мусбат.
6. Меъёри/Квота/Мувофиқат: фишурдани бераҳм/сангпушт DD DD, captchas/мушкилоти муҳофизатӣ барои шаклҳои ҷамъиятӣ.
7. Ҷудокунии шабака: сиёсати egress барои SSRF (рад кардани розеткаҳои RFC1918/metadata/Unix).
8. Сарлавҳаҳо-гигиена: 'X-Content-Type-Options: nosniff', 'Content-Security-Policy' барои пеш, 'Referrer-Policy'.
9. Гвардияи графикӣ: маҳдудиятҳои амиқ/мураккаб, манъи интроспексия дар prod (ё нақши дарвоза).


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 Фиристодаи HTTP WAF (WASM + JSON Schema + SSRF egress-рад)

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: маҳдудкунии намуд ва зидди obfuscation

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)

Профилҳои ҳар як масир: қоидаҳои қатъӣ танҳо дар ҳолати зарурӣ (масалан, '/ҷустуҷӯ 'имкон медиҳад '/'%').
Соя/Ҳисобот-Танҳо: ҷавобҳои сабти пеш аз блок; Муқоисаи ченакҳои A/B.
Рӯйхати фармоишӣ барои параметрҳои қонунии "ғавғо" иҷозат медиҳад.
Баҳодиҳӣ: Блоки танҳо вақте ки маблағи нишондиҳанда> ҳадди ниҳоӣ.
Таҷрибаҳо: фоизи ками трафик ба қоидаҳои нав → худкор.


9) Мушоҳида ва беморӣ

Метрикӣ: 'waf _ block _ total {rule}', 'waf _ anomaly _ score', 'request _ body _ redied _ total', 'schema _ violation _ total', 'ssrf _ block _ total'.
Гузоришҳо (интихобшуда): қоида, қисми дархост (таҳриршуда), 'trace _ id', 'иҷорагир', 'масир', сабаб. Пинҳон кардани PII/асрори.
Панели панелҳо: қоидаҳои боло/роҳҳо, кластерҳои FP, динамика пас аз озодшавӣ.
Ҳодисаҳо: сарфа кардани артефактҳо (сарборӣ, ҳангоми зарурат pcap), маҳсулоти RCA ва "часпакҳои виртуалӣ".


10) Сенарияҳои озмоишӣ ва бетартибӣ

Замимаҳои гардиши WAF (SQL/XSS/SSRF), рамзҳои омехтаи дукарата/сегона Юникод.
Фарқияти таҳлил: фиристодани сарборӣ, ки дар он прокси ва чаҳорчӯба метавонанд фарқ кунанд (параметр нусхабардорӣ мекунад, массивҳо, ';' vs '&').
Оҳиста-POST/калонҳаҷм, бомбаҳои почта, шаклҳои бисёр қисм, сарҳади хато.
GraphQL: тавлидкунандаи амиқӣ/мураккаб, санҷиши маҳдудиятҳо ва вақтҳо.


11) Антипаттернҳо

"CRS-ро фурӯзон кард ва фаромӯш кард": бидуни нақша, бидуни танзим дар масир.
Гузоришҳо бо мақоми дархости хом ва PII.
Ягон маҳдудият/андоза ба таври муқаррарӣ/гузариш вуҷуд надорад, барои таҳлил.
Гузаронидани 'Content-Type '/charset санҷишҳо → ҳамлаҳои полиглот.
Филтрҳои egress → SSRF ба метамаълумоти абрӣ нестанд.
Як профили умумӣ барои API-ҳои беруна ва дохилӣ.
Истисноҳои беназорат "барои шарик" → сӯрохиҳо дар периметр.


12) Хусусиятҳои IGaming/Finance

Профилҳои тақвиятёфта дар дастгоҳҳои пардохт/баромад: маҳдудиятҳои хурди бадан, нақшаҳои қатъӣ, рад кардани рӯйхатҳо барои майдонҳои ҳисоб/IBAN/PAN (ниқоб, чекҳои формат).
Webhooks аз PSP/KYC: имзои HMAC/TLS мутақобила, профилҳои инфиродӣ WAF, зидди такрорӣ.
Филтрҳои Geo/ASN ва маҳдудиятҳои рафторӣ барои пешгирии бақайдгирии бот ва сӯиистифодаи бонус.
Гузоришҳои ҳодисаҳо тағйирнопазиранд (аудит), нигаҳдорӣ аз рӯи салоҳият.


13) Рӯйхати санҷиши омодагии Prod

  • Қабати дугонаи WAF (CDN + L7), меъёри ягона ва маҳдудиятҳои андоза.
  • OWASP CRS фаъол аст, қоидаҳои фармоишӣ дар як масир; JSON Schema/Protobuf оид ба навиштани қалам.
  • Сиёсати намуди мундариҷа/чарсет; манъ кардани рамзгузории дукарата/NULL/traversal.
  • Блоки SSRF-egress барои гурӯҳҳои хусусӣ/метамаълумот; Муҳофизати такрории DNS.
  • Меъёри/Квота/Мувофиқат ва зидди бот (мушкилот) дар шаклҳои ҷамъиятӣ.
  • Соя/Ҳисобот-Танҳо § Канарей → татбиқ; худкор аз ҷониби SLO ва FP.
  • Нишондиҳандаҳо/гузоришҳо/роҳҳо бо ниқоб; панели панели "қоидаҳои боло "/FP.
  • Китобҳои бозии виртуалӣ ва RCA; озмоишҳои мунтазами гузариш.
  • Профилҳои ҷудогона барои webhooks PSP/KYC, қаламҳои пардохт ва API-ҳои дохилӣ.

14) TL; ДР

Муҳофизатро аз рӯи қабатҳо созед: нормализатсия ва маҳдудиятҳо → схемаҳо/намудҳо → параметеризатсия → WAF (CRS + caste) → филтрҳои суръат/бот → блоки SSRF egress. Дар ҳар як масир танзим кунед, қоидаҳои навро дар сояи → канарейка иҷро кунед, ченакҳо/FP-ро назорат кунед ва пеш аз ислоҳи код "часбҳои виртуалӣ" созед. Барои роҳҳои пардохт/webhook - профилҳои қатъии алоҳида, HMAC/MTLS ва тирезаҳои ҳадди аққали эътимод.

Contact

Тамос гиред

Барои саволҳо ё дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Оғози интегратсия

Email — муҳим аст. Telegram ё WhatsApp — ихтиёрӣ.

Номи шумо ихтиёрӣ
Email ихтиёрӣ
Мавзӯъ ихтиёрӣ
Паём ихтиёрӣ
Telegram ихтиёрӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиёрӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.