GH GambleHub

Web Application Firewall והגנה מפני התקפות

תקציר

WAF/WAAP מסננים ושולטים בתנועת HTTP (S )/WebSocket ברמת היישום: ניצול בלוקים של פגיעות (OWASP ToP 10), ניסיונות לעקוף אימות, סריקה, תנועת בוט אוטומטית ו-L7 DOS. הערימה המודרנית משלימה על ידי מנוע אנטי-בוט, הגנת API, הגבלת קצב, טלאים וירטואליים, כמו גם אינטגרציה הדוקה עם CI/CD כך שהכללים מתגלגלים בבטחה כמו הקוד.

תפקידים ומקום בארכיטקטורה

Edge/CDN WAF: Latency, Global מוניטין/Managed Rules, L7 DDOS.
WAF (on-prem/K8s): אינטגרציה עמוקה עם רשתות פנימיות, כוונון עדין.
גישה: WAF + API-Gateway פונקציות (schema-validation, authZ), אנטי-בוט, L7 DOS, mTLS.
תוכניות הכללה: הפוך-פרוקסי לפני היישום; בקר Ingress in K8s; מסנני רשת שירות; מכונית צדדית.

מודל הגנה

אבטחה שלילית (חתימות/CRS): כיסוי מהיר של טכניקות ידועות (SQLi/XSS/SSRF/RCE).
ביטחון חיובי (Law-list): אפשר רק בקשות ”תקפות” (שיטות/שבילים/סכמות/סוגי תוכן).
תיקון וירטואלי: חסימה מקוונת של הניצול לתיקון הקוד.
הקשר: מדיניות שונה לתוכן סטטי, API, ניהול, הורדות, פתקי אינטרנט.

איומים ואמצעים טיפוסיים

OWASP טופ 10: SQLi, XSS, IDOR/BOLA, SSRF, זריקות תבנית, מדבור, פיגים מוטעים.
L7 DDoS: בקשות איטיות/כותרות, פרץ עבור נקודות קצה חמות * הגנה: קצב מגבלות, אתגר, חסימה אוטומטית.
בוטים/מגרדים: התנהגות, תדירות, תבניות ”לא אנושיות”, טביעת אצבע התקן, אסימונים דינמיים.
מילוי/ATO: יירוט/הספרה של לוגנים * אנומליה על ידי IP/ASN, כללי מהירות, גורמים נוספים.
הורדות: סוג/גודל/מולטי-וירוס, ”תמונה-בלבד” באזורי מדיה.
API/GraphQL: סכימה-אימות, 'Maxit '/' MaxCost', איסור על כרטיסי בר ללא עונש, שליטה בשיטות וכותרות.

מדיניות ומעצבי שלטון

שלד בסיסי לכל יישום:

1. תחבורה: TLS 1. 2+/1. 3, HSTS, mTLS על גב רגיש.

2. שיטות: אפשר-List ('GET, POST, POST, מחק, תיקון, אפשרויות') הוא ייחודי לכל משאב.

3. נתיבים: מסכות קפדניות/רגולציות; ניהול/חיוב - לקידומת נפרדת/תחום.

4. כותרות: רשימות לבנות, איסור מסוכן (”X-Original-URL”, לא סטנדרטי) שלא לצורך.

5. גופים: JSON-בלבד/Multipart-בלבד לאורך המסלול; מגביל 'אורך תוכן', בלוק של בינאריות עבור ”התחברות/חיפוש”.

6. מגבלות קצב: per-IP/ASN/key/organization; מגבלות נפרדות על בקשות ”יקרות”.

7. אנטי-בוט: ניקוד התנהגותי, אתגרים ”לא מעצבנים”, הדבקת זהויות (עוגיות אסימונים, FP JA3/TLS).

8. חוקי CRS/מנוהלים: מופעלים, מתכווננים תחת FP.

9. טלאי וירת: חסימה מהירה של דפוסי התקפה/פרמטרים ידועים.

10. לוגים/מדדים: פורמט אחיד, מתאם עם ”trace _ id', דו” חות FP/TP.

מנהג כוונון: כיצד להפחית חיוביות כוזבות

הפעל חוקים חדשים במצב זיהוי-בלבד/ספירה (צל) עם דגימת תנועה.
יצירת יוצאים מן הכלל על פי ההקשר (”path =/search”, ”param = q” let תווים מיוחדים).
חלק את האזור: ”עמודים ציבוריים” נגד ”פעולות רגישות” (סף התוקפנות שונה).
Conveyor: rule # staging ach canary (1-5%) ac.prod; רולבים על ידי מדדים FP.
שמור על ספרייה של מטען ”כוזב” לבדיקות רגרסיה.

אינטגרציה לתוך DevSecOps

CI: חוקים סטטיים בגיט; בדיקות: שידור חוזר של בקשות אמיתיות + סינתטיות מספריית התקיפה.
CD: חישובים קנריים, דגלים מאפיינים; ”ניטור פוליטי” (שינוי שלטון = שינוי).
RASP ו ־ SAST/DAST: תוספי WAF אך אינם מחליפים תיקון קוד.

תצפית ו SLO

מדדים:
  • P95/99 latency via WAF; פרופורציה של חסום/החטאה; שיתוף כללים מנוהלים נגד מותאמים אישית; ”שיעור תקיפה”.
  • אנטי-בוט: שיתוף באתגרים/שינוי, FP/TP.
  • L7 DDOS: פורץ קצב, אירועים אוטומטיים-הקלה.
דוגמאות SLO:
  • "לא יותר מ-0. 5% FP במבצעים מורשים/יום"
  • ”P95 תקורה WAF/WAF/ 10/”.
  • ”תיקון וירטואלי TTR לפני 30 דקות”.
  • התראות: 4xx/5xx ספייק לאחר שחרור חוקים; צמיחה של FP; טיפה במעבר קפצ 'ה; השפלה של אימות JWKS/mTLS.

תצורות מדגם

ModSecurity + OWASP CRS (Nginx)

nginx
Enabling ModSecurity modsecurity on;
modsecurity_rules_file /etc/nginx/modsec/main. conf;
'etc/nginx/modsec/main. conf ':
apache
SecRuleEngine On
Include /usr/local/owasp-modsecurity-crs/crs-setup. conf
Include /usr/local/owasp-modsecurity-crs/rules/.conf

Example of an exception for a search parameter
SecRule REQUEST_URI "@beginsWith /search" "id:900100,phase:1,pass,nolog,ctl:ruleRemoveByTag=attack-xss"
SecRule REQUEST_URI "@beginsWith /search" "id:900101,phase:2,pass,ctl:ruleRemoveTargetById=942100; ARGS:q"

AWS WAF (JSON, מגבלת קצב + גוש רשימת מדינה)

json
{
"Name": "prod-web-acl",
"Scope": "CLOUDFRONT",
"DefaultAction": { "Allow": {} },
"Rules": [
{
"Name": "BurstLogin",
"Priority": 1,
"Statement": {
"RateBasedStatement": {
"Limit": 100,
"AggregateKeyType": "IP",
"ScopeDownStatement": { "ByteMatchStatement": {
"SearchString": "/login",
"FieldToMatch": { "UriPath": {} },
"TextTransformations": [{ "Priority": 0, "Type": "NONE" }],
"PositionalConstraint": "CONTAINS"
}}
}
},
"Action": { "Block": {} },
"VisibilityConfig": { "MetricName": "BurstLogin", "SampledRequestsEnabled": true, "CloudWatchMetricsEnabled": true }
}
]
}

Clodflare (כללי ביטוי)


(http. request. uri. path contains "/admin" and ip. geoip. country ne "UA")
or (http. request. uri. path eq "/login" and cf. threat_score > 10)
or (http. request. uri. path contains "/api" and not http. request. headers["authorization"][0] contains "Bearer ")

NGINX: שיטה פשוטה/כלל גוף

nginx location /api/withdraw {
limit_except POST { deny all; }
if ($request_method = POST) {
set $cl $http_content_length;
if ($ cl = "") {return 411;} # length is required if ($ cl> 1048576) {return 413;} # ≤ 1MB add_header X-Idempotency-Required "true";
}
}

GraphQL: שוטרים

'maxeDeep = 6', 'Maxt-Type = 1000', איסור על 'סכימת __' במכירה, אישורים לרשימת הפעולות, אימות של כותרות ('Content-Type: application/json').

אנטי-בוט וצ 'קים ידידותיים לאדם

אתגר בלתי נראה (אתגרי JS ללא קאפצ 'ה), הוכחה-של-עבודה על מסלולים ”יקרים”, אנליטיקה התנהגותית (תנועות/תזמון).
טביעת אצבע TLS/JA3, מוניטין IP/ASN, רשימות פרוקסי/VPN (בגבולות סבירים).
מלכודות (שדות דבש) על צורות, צורה דינמית/אסימונים הפעלה.
הגנת פרטיות: מזעור מעקב, מדיניות שקופה, אפשרויות בחירה.

מיקוד API

Schema-first: OpenAPI/JSON Schema לצורך אימות; איסור על שדות נוספים.
Auth: נושא חובה JWT או MTLS; לדחות את ”אישור”.
קצב/מכסה: per-key/per-org; אם חרג - ”בלוק רך ”/האטה.
Webhooks: חתימת HMAC, ”חותמת זמן + נונס”, חלון קליטה קצר.
GraphQL: ראה מגבלות מעל; רשום את השם/התווית של המבצע.

הורדות ומדיה

הגבלת גודל, witelists MIME/extensions, שינוי שם קבצים;

סריקת AV (רב מנועים), מדיניות Imagic Magick (ללא מפענחים מסוכנים);

שירות אגודלים בתחום נפרד, שירות בלבד-תמונות.

בטיחות של ניהול ואזורים קריטיים

Domain/Path, mTLS/bun from common ASN/states, hard rate laws, JIT Low-List.
אותות נוספים (יציבת התקן, ניקוד סיכונים) * יש צורך בבדיקה שנייה.

מבצעים, תקריות וטלאים וירטואליים

פנקס: שחרור מהיר של חוקי הבלוקים, הגבלת TTL, הודעת פקודה.
קריטריון rollback: גדילה 4xx/5xx> סף, FP> סף, p95 latency dyclose.
לאחר המוות: הוסף בדיקה לכלל הרגרסיה שנקבע, בצע התראת SIGMA ל-SIEM.

ציות ופרטיות

רישום מינימום: נתיב/שיטה/קוד/בלוק סיבה/זהויות; לא לאחסן סודות מח "ש/גוף.
תקופות שימור רישום מדיניות; גישה - על ידי תפקידים; הצפנה בדיסק.

מאפיינים עבור iGaming/fintech

תשלומים/תשלום/ארנקים: per-org cotas, mTLS עד PSP, HMAC עבור hooks PSP.
ניצול לרעה של ATO/בונוס: כללי מהירות עבור כניסה/רישום/קודי קידום, מגבלות התנהגות ואנטי-בוט.
ספקי תוכן/אולפנים: תחומים/מדיניות אישית, IP/ASN Law-List, Time-to-Wallet ניטור/המרות על השפעת WAF.
דרישות אזוריות: גיאו-פוליסות (מדינות/אזורים), שקיפות טיפולית עבור GDPR.

מימוש מפת דרכים

1. מלאי של אזורים (ציבור, API, לוח מנהלים, הורדות).
2. פרופיל בסיס: TLS, Let-list שיטות/שבילים, מנוהלים כללים/CRS.
3. מגבלות קצב + אנטי-בוט על מסלולים רגישים.
4. טלאים וירטואליים ותהליך כללים דחופים (SLA 30 min).
5. CI/CD לחוקים, היערכות/מצב הקנרית/צל.
6. טלמטריה, SLO, בדיקות רגרסיה של כללים.
7. סקירה תקופתית של חריגים ו ”ניקוי” של מעקפים.

טעויות נפוצות

”מופעל על כל CRS למקסימום” = מפולת FP וצוות שחוק.
חוקים ללא קנריות ומצב צל.
בלי קטעים, מדיניות אחת לכל דבר.
התעלמות מפרטי API/GraphQL (סכימה/גבולות).
לוגים ללא קורלציה ("trace _ id') וללא מדדים איכותיים.

FAQ

WAF מחליף קוד מאובטח?
לא, זה לא זוהי שכבה מקלה ו ”תיקון וירטואלי”, אבל החוב הטכני בקוד חייב להתבטל.

איך להבין שהגיע הזמן להדליק בלוקים קשים?
כאשר דו "ח מצב הצל מראה FP נמוך ויש מבחני רגרסיה של הכללים.

האם אני צריך WAF נפרד עבור API?
WAP/אינטגרציה טובה יותר עם שער API: סכימה, גבולות, אימות, חתימות webhook.

סך הכל

WAF/WAAP יעיל הוא שילוב של כללי CRS/Managed, מודל חיובי, אנטי-בוט, גבולות וטלאים וירטואליים, הנתמך על ידי תהליכי DevSecOP, טלמטריה ו-SLOS ברורים. גישה זו מספקת תגובה מהירה לפגיעות, התנגדות להתקפות אוטומטיות, והשפעה צפויה על UX וביצועים.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.