
AWS WAF प्रशिक्षण गेम, जिसमें ट्यूटोरियल, स्कोर किए गए लैब और परीक्षाएँ शामिल हैं, जहाँ खिलाड़ी वास्तविक हमले के स्वरूपों को रोकने के लिए Web ACL नियम लिखते हैं और साथ ही गलत सकारात्मक परिणामों से बचते हैं।
वास्तविक हमलों से बचाव करते हुए AWS WAF सीखने के लिए एक व्यावहारिक प्रशिक्षण गेम।
English | 日本語
प्रशासकों के लिए: वातावरण कैसे बनाएं, इसे प्रतिभागियों को कैसे वितरित करें, इसे कैसे चलाएं और साफ़-सफ़ाई कैसे करें, यह प्रशासक गाइड (docs/ADMIN.md) में शामिल है, और प्रतिभागियों के लिए हैंडआउट खिलाड़ियों के लिए शुरुआत (docs/PLAYER_GUIDE.md) है। दोनों गाइड वर्तमान में जापानी में हैं।
AWS WAF सीखने के लिए एक व्यावहारिक वातावरण, हमले के दौरान।
अकेले खेलें या दूसरों के साथ प्रतिस्पर्धा करें।

ट्यूटोरियल के हमले और चरणों को पढ़ने से लेकर, किसी भेद्यता लैब में नियम डिज़ाइन करने, हमला शुरू करने, स्कोर और मॉडल उत्तर की समीक्षा करने, और अंत में प्रशासक पृष्ठ से एक प्रतियोगिता खोलने तक का प्रवाह (लगभग 70 सेकंड)। उच्च गुणवत्ता वाला संस्करण docs/demo-en.mp4 पर है।
डेवलपमेंट मोड (
make dev) में रिकॉर्ड किया गया, जो वास्तविक AWS WAF के बजाय मॉडल उत्तर से स्कोर करता है।
┌───────────────────── per player ──────────────────┐
Browser ── Lambda Function URL (gameapi: UI + API) │
│ async invoke │
▼ │
Lambda (trafficgen) ── HTTPS ─▶ ALB ◀── Web ACL (edited by the player)
│ │ │
│ ▼ │
│ Lambda (targetapp: dummy online shop) │
▼ └────────────────────────────────────┘
DynamoDB (runs, best scores, locks)
wafdojo-<name>-cf, us-east-1) भी मिलता है। CloudFront सीधे ALB के बजाय डमी ऐप के Lambda Function URL को फ्रंट करता है, इसलिए ALB के Web ACL नियम वहाँ लागू नहीं होते। इसे छोड़ने के लिए enable_cloudfront = false सेट करें।X-Forwarded-For में documentation पतों (RFC 5737) द्वारा दर्शाया जाता है (यह माना जाता है कि साइट किसी CDN के पीछे है)।| ID | विषय | आप क्या सीखते हैं |
|---|---|---|
| tutorial-1-sqli | SQL injection | Managed rule groups |
| tutorial-2-xss | समीक्षा फ़ॉर्म में XSS | Custom rules (Rule builder), body inspection, text transformations |
| tutorial-3-ipset | खतरा सूची में IPs | IP sets, CIDR, X-Forwarded-For |
| tutorial-4-useragent | Vulnerability scanners | हेडर पर String match, OR statements, lowercase transformation |
| tutorial-5-ratelimit | एक ही IP से बाढ़ | Rate-based rules, aggregation keys |
| tutorial-6-ja4 | ब्राउज़र का रूप धारण करने वाला स्क्रैपर | JA4 फ़िंगरप्रिंट कैसे काम करते हैं और उन्हें कैसे पढ़ें (a_b_c), सटीक JA4 मिलान, WAF लॉग विश्लेषण |
| ID | विषय | आप क्या सीखते हैं |
|---|---|---|
| game-1-fakebot | Googlebot का रूप धारण करने वाला स्क्रैपर | AND / NOT का संयोजन (UA कहता है Googlebot AND IP Google का नहीं है) |
| game-2-admin | एडमिन पैनल तक बाहरी पहुँच | URI path शर्तें + IP allow list, case sensitivity |
| game-3-traversal | Path traversal | text transformations को एक के ऊपर एक लगाना (double decoding), false positives से बचना |
| game-4-cms | एक XSS नियम जो आपके संपादकों को ब्लॉक करता है | अपवाद बनाना, rule priority, मौजूदा नियमों की पुनः समीक्षा |
| game-5-bruteforce | लॉगिन brute force + कॉर्पोरेट NAT | Scope-down statements, threshold design |
| game-6-ja4regex | एक बॉट सेना जो अपना JA4 बार-बार बदलती रहती है + वही लाइब्रेरी उपयोग करने वाला एक साझेदार | JA4 regular expressions (साझा b भाग को पकड़ना), अनदेखे वेरिएंट के लिए तैयारी, AND NOT के साथ अपवाद |
ट्यूटोरियल में बनाए गए नियम यथावत रहते हैं, इसलिए गेम मोड में वे कभी-कभी false positives का कारण बनते हैं (चरण 4 और 5)। आपको केवल नए हमलों को रोकना नहीं, बल्कि मौजूदा नियमों की पुनः समीक्षा करनी होती है।
प्रत्येक चुनौती इस प्रकार पढ़ी जाती है: "एक नई भेद्यता आई है। इसे इन शर्तों के अंतर्गत ब्लॉक किया जा सकता है। नियम लिखें।" लक्ष्य यह है कि जब भी कोई नई भेद्यता आए, आप अपने स्वयं के नियम लिख सकें। एक प्रयास के बाद आप मॉडल-उत्तर नियम JSON (कंसोल के Rule JSON editor में पेस्ट करने के लिए तैयार) और एक व्याख्या देख सकते हैं। कई Level 2 और 3 चुनौतियों में एक "common pitfall" नियम और यह भी शामिल होता है कि वह क्यों विफल होता है।