GH GambleHub

حماية WAF والحقن

1) لماذا WAF في عصر API

حتى مع التحقق الصارم والبارامترات، تحدث الحقن بسبب:
  • «ذيول طويلة» من التكامل (رمز قديم، خطوط ويب تابعة)،
  • تحليل التناقضات (إطار ↔ بالوكالة)،
  • تقنيات تجاوز البروتوكول/التشويش الجديدة.
  • يعطي WAF حدًا مبكرًا للإنكار و «التصحيح الافتراضي» قبل إصدار الكود، لكنه لا يحل محل التطوير الآمن.

2) نموذج التهديد: أنواع حقن واجهة برمجة التطبيقات

SQLi/ORMi: كلاسيكية/منبثقة/قائمة على الزمن/مكدسة ؛ أعمى بسبب التأخير.
NoSQLi (Mongo/Elastic): المشغلون «ne $/$ gt»، حقن JSON، regex-DoS.
Command Injection/RCE: shell metacharacters، استبدال الحجة، التصحر غير الآمن → code exec.
XXE: الكيانات الخارجية/DTDs في XML.
SSRF: الوصول إلى 169. 254. 169. 254 '/الخدمات الداخلية ؛ إعادة دمج DNS.
حقن القالب: Jinja/Thymeleaf/Handlebars ؛ '{{77}}.
حقن LDAP/EL، XPath، حقن الرأس (CRLF)، تجاوز المسار.
رسم بياني محدد QL: استبطان «مخطط __» وعمق/تعقيد الاستفسارات.
JSON/JS-specific: Prototype Pollution ('__ proto __', 'constructor').
gRPC/Protobuf: رسائل كبيرة الحجم، تهريب ميداني من خلال عدم تطابق المخطط.


3) بنية WAF

محيط CDN-WAF: تصفية جغرافية/ASN سريعة، والتحكم الأساسي في الروبوت، والذاكرة المخبأة/الحشوة المضادة.
المحيط L7 (NGINX/Envoy/APISIX/Kong): تحليل دقيق، وقواعد عميقة، وتكامل مع PDP/حدود.
Sidecar/mash (المبعوث WASM/Filter): لكل خدمة، بالقرب من البيانات، أقل إيجابية خاطئة لواجهات برمجة التطبيقات الداخلية.
التوصية: نموذج الطبقة المزدوجة (CDN-WAF + L7 WAF).


4) التحليل والتطبيع ومكافحة التجاوز

يجب أن يرى WAF نفس التمثيل القانوني مثل التطبيق:
  • تطبيع المسار ('/% 2e% 2e/b 'فشل →،' UTF-8 '/Unicode confusables، NUL bytes.
  • فك التشفير الفردي: URL-/HTML-/Unicode-/Base64-layers، حظر فك التشفير المزدوج.
  • القيود: «max _ headers'،» max _ header _ size «،» max _ body _ size «،» max _ args'، عمق JSON، حد متعدد الأجزاء، 2x gzip/zip قنابل ممنوعة.
  • سياسات نوع المحتوى: «تطبيق/جسون» فقط على نقاط نهاية JSON ؛ رفض «متعدد اللغات».

5) نماذج القواعد

سلبية (التوقيعات): OWASP CRS (SQLi/XSS/SSRF/Java/Node RCE، إلخ). البداية السريعة.
إيجابي (السماح بالقائمة): مخططات صارمة (مخطط JSON/Protobuf)، الأنواع والنطاقات ؛ على الطرق.
غير طبيعي/تسجيل: تلخيص العلامات «المشبوهة» → سد العتبة.
السياق: نبذات مختلفة عن 'البريد/المدفوعات' و 'GET/status' ؛ ناقص FP.


6) وحدات الحماية (في حزمة)

1. المخططات والأنواع: JSON Schema/Protobuf التحقق من صحة منطق الأعمال.
2. Parameterization: premissions prepresented expressions, ORM bindings, concatention promotion.
3. الهروب من المخرجات: سياق HTML/JS/SQL.
4. سياسات الجسم: نوع المحتوى، الحجم، القيود متعددة الأجزاء، حظر الثنائيات على مقابض JSON.
5. قواعد WAF: CRS + السلبية/الإيجابية المخصصة.
6. السعر/الحصة/التوافق: قمع DDoS الوحشي/السلحفاة، الكابتشاس الوقائي/التحديات للأشكال العامة.
7. عزل الشبكة: سياسات الخروج لـ SSRF (رفض RFC1918/metadata/Unix المقابس).
8. Headers-hygiene: «X-Content-Type-Options: nosniff» و «Content-Security-Policy» for front و «Referrer-Policy».
9. حارس الرسم البياني QL: حدود العمق/التعقيد، حظر الاستبطان في الحث (أو بوابة الدور).


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 exe-exny)

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)

ملفات تعريف المسار: قواعد صارمة فقط عند الاقتضاء (على سبيل المثال '/البحث 'يسمح '/'%').
Shadow/Report-Only: log responses before the block; ألف/باء مقارنة المقاييس.
يسمح العرف بقوائم المعلمات المشروعة «الصاخبة».
الدرجات: حظر فقط عندما يكون مجموع المؤشر> العتبة.
التجارب: نسبة صغيرة من حركة المرور لقواعد جديدة → التراجع التلقائي.


9) إمكانية الملاحظة والحدوث

Метрики: 'waf _ block _ total {rule}', 'waf _ anomaly _ score', 'request _ body _ resolved _ total', 'schema _ value _ total', 'srf _ block _ total'.
الجذوع (مأخوذة عينات): القاعدة، جزء من الطلب (محرر)، 'تتبع - معرف'، 'مستأجر'، 'مسار'، سبب. تنكر PII/الأسرار.
لوحات القيادة: القواعد/المسارات العليا، مجموعات FP، الديناميكيات بعد الإصدار.
الحوادث: حفظ القطع الأثرية (الحمولة، pcap إذا لزم الأمر)، منتجات RCA و «البقع الافتراضية».


10) سيناريوهات الاختبار والفوضى

حاويات تجاوز WAF (SQLi/XSS/SSRF)، ترميزات يونيكود المختلطة المزدوجة/الثلاثية.
تحليل الاختلافات: إرسال الحمولة، حيث يمكن أن يتباعد الوكيل والإطار (تكرار المعلمة، المصفوفات، '؛' مقابل '&').
بطيء البريد/كبير الحجم، قنابل مضغوطة، أشكال متعددة الأجزاء، حدود خاطئة.
الرسم البياني QL: مولد العمق/التعقيد، والتحقق من الحدود والوقت.


11) أنتيباترن

«تشغيل CRS ونسيان»: بدون مخططات، دون ضبط على طول الطرق.
سجلات مع جسم الطلب الخام و PII.
لا يحد التطبيع/الحجم → التجاوزات، DoS للتحليل.
تخطي فحوصات «نوع المحتوى »/تشارست → هجمات متعددة اللغات.
لا توجد مرشحات للخروج → SSRF إلى البيانات الوصفية السحابية.
موجز مشترك لواجهات برمجة التطبيقات الخارجية والداخلية.
الاستثناءات غير المنضبطة «للشريك» → الثقوب في المحيط.


12) تفاصيل iGaming/Finance

موجزات معززة عن مقابض الدفع/النواتج: حدود صغيرة للجسم، مخططات صارمة، قوائم الرفض لحقول الحساب/IBAN/PAN (إخفاء، شيكات الشكل).
خطوط الويب من PSP/KYC: توقيع HMAC/TLS المتبادل، ملفات تعريف WAF الفردية، مكافحة إعادة التشغيل.
مرشحات Geo/ASN والحدود السلوكية لمنع تسجيل الروبوتات وإساءة استخدام المكافآت.
سجلات الحوادث غير قابلة للتغيير (التدقيق)، والتخزين حسب الولاية القضائية.


13) قائمة التحقق من الاستعداد

  • الطبقة المزدوجة WAF (CDN + L7)، التطبيع الفردي وحدود الحجم.
  • تمكين OWASP CRS، قواعد مخصصة لكل مسار ؛ مخطط JSON/Protobuf على أقلام الكتابة.
  • سياسات نوع المحتوى/المخطط ؛ عدم السماح بفك التشفير المزدوج/NULL/اجتياز.
  • كتلة خروج SSRF للنطاقات الخاصة/البيانات الوصفية ؛ حماية إعادة تعبئة DNS.
  • معدل/حصة/مواءمة (تحديات) مكافحة الروبوت على الأشكال العامة.
  • Shadow/Report-Only → canary → enforce; التراجع التلقائي من قبل SLO و FP.
  • المقاييس/السجلات/المسارات مع القناع ؛ لوحات القيادة «القواعد العليا «/FP.
  • التصحيح الافتراضي وكتيبات اللعب RCA ؛ اختبارات تجاوز منتظمة.
  • ملامح منفصلة لخطافات الويب PSP/KYC وأقلام الدفع وواجهات برمجة التطبيقات الداخلية.

14) TL ؛ د

بناء الحماية حسب الطبقات: التطبيع والحد → المخططات/الأنواع → بارامترات → WAF (CRS + caste) → مرشحات المعدل/الروبوت → SSRF extroduction block. قم بضبط كل مسار، وقم بتشغيل قواعد جديدة في الظل → الكناري، وراقب المقاييس/FP وقم بعمل «تصحيحات افتراضية» قبل إصلاح الكود. لمسارات الدفع/الخطاف الشبكي - ملفات تعريف صارمة منفصلة، HMAC/mTLS ونوافذ الثقة الدنيا.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.