ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door
แนบนโยบาย WAF กับโปรไฟล์ Front Door เปิดใช้ชุดกฎที่มีการจัดการเพื่อป้องกัน OWASP Top 10 และสร้างกฎแบบกำหนดเองเพื่อบล็อก IP ที่เป็นอันตรายซึ่งทราบอยู่แล้ว
ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door เป็นบทเรียน Azure Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Azure Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
ไฟร์วอลล์แอปพลิเคชันเว็บคืออะไร
ไฟร์วอลล์แอปพลิเคชันเว็บ (WAF)จะตรวจสอบคำขอ HTTP/HTTPS ในเลเยอร์ 7 และบล็อกรูปแบบการโจมตีที่ทราบก่อนจะไปถึงแอปพลิเคชัน การโจมตีทั่วไปที่ป้องกันได้ ได้แก่ การแทรก SQL การเขียนสคริปต์ข้ามไซต์ (XSS) การรวมไฟล์ระยะไกล และความผิดปกติของโพรโทคอล หากไม่มี WAF ผู้โจมตีอาจใช้ประโยชน์จากช่องโหว่ในโค้ดแอปพลิเคชันของคุณได้ แม้เครือข่ายจะได้รับการรักษาความปลอดภัยอย่างเหมาะสมแล้วก็ตาม Azure WAF ผสานรวมได้ทั้งกับ Azure Front Door และ Azure Application Gateway
ทรัพยากรนโยบาย WAF
ใน Azure นโยบาย WAFคือทรัพยากรแบบแยกเดี่ยวที่มีชุดกฎที่จัดการให้และกฎแบบกำหนดเอง คุณสร้างนโยบาย กำหนดค่ากฎ แล้วเชื่อมโยงนโยบายกับเอนด์พอยต์ Front Door หรืออินสแตนซ์ Application Gateway อย่างน้อยหนึ่งรายการ การออกแบบแบบแยกส่วนนี้หมายความว่านโยบาย WAF หนึ่งรายการสามารถปกป้องเอนด์พอยต์ Front Door หลายรายการได้ โดยการเปลี่ยนแปลงนโยบายเพียงครั้งเดียวจะเผยแพร่ไปยังเอนด์พอยต์ที่เชื่อมโยงทั้งหมดโดยอัตโนมัติ นโยบาย WAF จะมีอยู่ในภูมิภาค Azure ที่ระบุ แต่เมื่อเชื่อมโยงกับ Front Door แล้ว การป้องกันจะมีผลทั่วโลกที่ PoPs ทั้งหมด
# Create a WAF policy for Front Door
az network front-door waf-policy create \
--name myWAFPolicy \
--resource-group myRG \
--sku Premium_AzureFrontDoor \
--mode Preventionโหมดการตรวจจับเปรียบเทียบกับโหมดการป้องกัน
นโยบาย WAF ทำงานได้สองโหมด โหมดการตรวจจับจะตรวจสอบคำขอทั้งหมดและบันทึกการจับคู่กับกฎ แต่จะไม่บล็อกการรับส่งข้อมูลใด ๆ เหมาะสำหรับการเริ่มปรับใช้เพื่อทำความเข้าใจว่านโยบายจะบล็อกการรับส่งข้อมูลใดบ้างก่อนบังคับใช้จริง โหมดการป้องกันจะบันทึกและบล็อกคำขอที่ตรงตามเงื่อนไขของกฎอย่างจริงจัง แนวทางปฏิบัติที่ดีที่สุดคือเริ่มต้นในโหมดการตรวจจับ ตรวจสอบบันทึก WAF เพื่อหาการตรวจพบที่ผิดพลาด ปรับแต่งกฎ แล้วจึงสลับไปใช้โหมดการป้องกันเมื่อมั่นใจว่านโยบายถูกต้องแล้ว
# Switch WAF policy to Prevention mode
az network front-door waf-policy update \
--name myWAFPolicy \
--resource-group myRG \
--mode PreventionMicrosoft Default Rule Set
Microsoft Default Rule Set (DRS) เป็นกลุ่มกฎที่มีการจัดการ ซึ่งดูแลโดยทีมรักษาความปลอดภัยของ Microsoft กลุ่มกฎนี้มีกฎสำหรับตรวจจับช่องโหว่ 10 อันดับแรกของ OWASP รวมถึงลายเซ็นของบอตและรูปแบบการโจมตีด้วยการลองข้อมูลประจำตัว Microsoft จะอัปเดต DRS อย่างต่อเนื่องด้วยกฎใหม่เพื่อตอบสนองต่อภัยคุกคามที่เกิดขึ้นใหม่ คุณจึงไม่จำเป็นต้องเขียนกฎด้วยตนเอง ระบบจะเผยแพร่ DRS เวอร์ชันใหม่เป็นระยะ เช่น DRS 2.1 และคุณสามารถอัปเกรดนโยบาย WAF เป็นเวอร์ชันใหม่กว่าได้ในช่วงเวลาบำรุงรักษา
# Add the Microsoft Default Rule Set to your WAF policy
az network front-door waf-policy managed-rules add \
--policy-name myWAFPolicy \
--resource-group myRG \
--type Microsoft_DefaultRuleSet \
--version '2.1'OWASP Rule Set
OWASP Core Rule Set (CRS) พร้อมใช้งานบน Application Gateway WAF และเป็นส่วนหนึ่งของ CDN WAF ระดับ Verizon กลุ่มกฎนี้มีกฎมากกว่า 200 รายการที่ครอบคลุมช่องโหว่ 10 อันดับแรกของ OWASP ได้แก่ การโจมตีแบบแทรกคำสั่ง การตรวจสอบสิทธิ์ที่มีข้อบกพร่อง การเปิดเผยข้อมูลสำคัญ การโจมตีด้วยเอนทิตีภายนอกของ XML และอื่น ๆ แต่ละกฎมี ID และกลุ่ม เช่น REQUEST-942-APPLICATION-ATTACK-SQLI คุณสามารถ ปิดใช้กฎแต่ละรายการตาม ID เพื่อระงับผลบวกลวงโดยไม่ต้องปิดใช้ทั้งกลุ่มกฎ
กฎ WAF แบบกำหนดเอง
กฎแบบกำหนดเองช่วยให้คุณเขียนเงื่อนไขสำหรับอนุญาตหรือบล็อกโดยเฉพาะ ซึ่งชุดกฎที่มีการจัดการไม่ครอบคลุม กฎแบบกำหนดเองประกอบด้วย เงื่อนไขการจับคู่อย่างน้อยหนึ่งรายการ เช่น IP ต้นทาง URI ของคำขอ ค่าของส่วนหัว หรือสตริงการค้นหา ซึ่งทำงานร่วมกับ การดำเนินการ เช่น อนุญาต Block บันทึก หรือ Redirect ระบบจะประเมินกฎแบบกำหนดเองก่อนชุดกฎที่มีการจัดการ และรองรับการจัดลำดับตามลำดับความสำคัญ ตัวอย่างการใช้งานที่พบบ่อย ได้แก่ การบล็อกบางประเทศ การจำกัดอัตราของโปรแกรมรวบรวมข้อมูลที่ส่งคำขอจำนวนมาก หรือการเพิ่ม IP สำหรับการตรวจสอบที่เชื่อถือได้ไว้ในรายการอนุญาตเพื่อข้ามกฎ WAF
# Create a custom rule to block requests from a specific IP
az network front-door waf-policy rule create \
--name BlockMaliciousIP \
--policy-name myWAFPolicy \
--resource-group myRG \
--priority 100 \
--action Block \
--rule-type MatchRule \
--match-condition remoteAddr IPMatch '1.2.3.4/32'การจำกัดอัตรา
กฎการจำกัดอัตราจำกัดจำนวนคำขอ HTTP จากที่อยู่ IP ของไคลเอ็นต์รายเดียวภายในช่วงเวลา 1 หรือ 5 นาที เมื่อจำนวนคำขอเกินค่าขีดจำกัด WAF จะส่ง HTTP 429 (คำขอมากเกินไป) กลับไปยังไคลเอ็นต์นั้น การจำกัดอัตรามีประสิทธิภาพในการป้องกันการโจมตีเพื่อเข้าสู่ระบบแบบลองทุกความเป็นไปได้ การยัดข้อมูลประจำตัว และการใช้งาน API ในทางที่ผิด คุณกำหนดขีดจำกัดจำนวนคำขอและช่วงเวลาได้ในคำจำกัดความของกฎแบบกำหนดเองภายในนโยบาย WAF
# Create a rate limit rule — max 100 requests per minute per IP
az network front-door waf-policy rule create \
--name RateLimitLogin \
--policy-name myWAFPolicy \
--resource-group myRG \
--priority 200 \
--action Block \
--rule-type RateLimitRule \
--rate-limit-threshold 100 \
--rate-limit-duration-in-minutes 1 \
--match-condition requestUri Contains '/login'ชุดกฎป้องกันบอต
ชุดกฎ Bot Manager ซึ่งพร้อมใช้งานใน Front Door รุ่น Premium จัดประเภทการรับส่งข้อมูลขาเข้าเป็นบอตที่ดี เช่น โปรแกรมรวบรวมข้อมูลของเครื่องมือค้นหาที่ได้รับการยืนยัน บอตที่ไม่ดี เช่น เครื่องมือสแกนและเครื่องมือตรวจหาช่องโหว่ที่รู้จัก และบอตที่ไม่ทราบประเภท เช่น การรับส่งข้อมูลอัตโนมัติที่ยังไม่ได้จัดประเภท คุณสามารถกำหนดการดำเนินการแยกตามหมวดหมู่ได้ ได้แก่ อนุญาตบอตที่ดี บล็อกบอตที่ไม่ดี และบันทึกบอตที่ไม่ทราบประเภท หากไม่มีการป้องกันบอต เครื่องมือสแกนอัตโนมัติอาจสร้างปริมาณการรับส่งข้อมูลมหาศาลจนทำให้ค่าใช้จ่ายเพิ่มขึ้นและบดบังการรับส่งข้อมูลของผู้ใช้จริงในข้อมูลวิเคราะห์
ข้อยกเว้น WAF
บางครั้งชุดกฎที่มีการจัดการจะสร้างผลบวกลวง โดยบล็อกคำขอที่ถูกต้องเนื่องจากตรงกับรูปแบบของกฎรักษาความปลอดภัยโดยบังเอิญ ตัวอย่างเช่น CMS ที่มีการแก้ไข Rich Text อาจส่ง HTML ในเนื้อหาของคำขอ POST ซึ่งตรงกับกฎ XSS ข้อยกเว้น WAFช่วยให้คุณยกเว้นแอตทริบิวต์ของคำขอบางรายการ เช่น ส่วนหัวของคำขอ คุกกี้ พารามิเตอร์สตริงการค้นหา หรือฟิลด์เนื้อหาคำขอ จากการประเมินกฎได้ทั้งในระดับส่วนกลาง หรือเฉพาะกลุ่มกฎหรือ ID ของกฎ โดยไม่ต้องปิดใช้กฎทั้งหมด
การตรวจสอบ WAF ด้วยบันทึก
WAF สร้างรายการบันทึกสองประเภทใน Azure Monitor ได้แก่ บันทึก WAF ซึ่งบันทึกทุกคำขอที่ตรงกับกฎ ไม่ว่าจะถูกบล็อกหรือบันทึกไว้ และบันทึกการเข้าถึง ซึ่งรวมคำขอทั้งหมด รวมถึงคำขอที่ผ่านโดยไม่ตรงกับกฎใดเลย ส่งบันทึกเหล่านี้ไปยังพื้นที่ทำงาน Log Analytics แล้วใช้ KQL เพื่อค้นหาแนวโน้มของคำขอที่ถูกบล็อก ระบุปลายทางที่ถูกโจมตีมากที่สุด หรือตรวจสอบ IP ของไคลเอ็นต์รายใดรายหนึ่ง สมุดงาน WAF Insights ในพอร์ทัลมีแดชบอร์ดที่สร้างไว้ล่วงหน้าสำหรับแสดงข้อมูลจากบันทึกเหล่านี้
// KQL — top 10 WAF rule hits in the last 24h
AzureDiagnostics
| where Category == 'FrontDoorWebApplicationFirewallLog'
| where TimeGenerated > ago(24h)
| where action_s == 'Block'
| summarize HitCount = count() by ruleName_s
| top 10 by HitCount descการเชื่อมโยงนโยบาย WAF กับ Front Door
หากต้องการเปิดใช้การป้องกัน WAF คุณต้องเชื่อมโยงนโยบาย WAF กับโปรไฟล์ความปลอดภัยของ Front Door ในพอร์ทัล ให้ไปที่โปรไฟล์ Front Door เลือก นโยบายความปลอดภัย แล้วเพิ่มนโยบาย WAF โดยระบุโดเมนที่นโยบายมีผล หรือใช้ CLI เพื่อเชื่อมโยงนโยบายก็ได้ เมื่อเชื่อมโยงแล้ว WAF จะตรวจสอบคำขอ HTTP/HTTPS ทั้งหมดที่มาถึงโดเมน Front Door เหล่านั้น ก่อนกำหนดเส้นทางไปยังต้นทาง คุณสามารถเชื่อมโยงนโยบาย WAF ได้หนึ่งนโยบายต่อหนึ่งโดเมน
# Associate WAF policy with a Front Door security policy
az afd security-policy create \
--profile-name myFrontDoor \
--resource-group myRG \
--security-policy-name mySecurityPolicy \
--domains /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.Cdn/profiles/myFrontDoor/customDomains/myDomain \
--waf-policy /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.Network/frontDoorWebApplicationFirewallPolicies/myWAFPolicyตรวจสอบความเข้าใจ
ทดสอบความเข้าใจแนวคิด Microsoft Azure Fundamentals (AZ-900) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า นโยบาย WAF ประกอบด้วยชุดกฎที่มีการจัดการ เช่น Microsoft DRS และ OWASP รวมถึงกฎแบบกำหนดเองที่ตรวจสอบการรับส่งข้อมูล HTTP ก่อนถึงต้นทาง โหมดการตรวจจับช่วยให้คุณปรับแต่งกฎก่อนเปลี่ยนเป็นโหมดการป้องกัน และกฎการจำกัดอัตราช่วยป้องกันการโจมตีแบบลองทุกความเป็นไปได้และการใช้งานในทางที่ผิด บทถัดไปเราจะสำรวจการใช้กลไกกฎของ Front Door เพื่อเพิ่มประสิทธิภาพด้วยการเปลี่ยนเส้นทางและส่วนหัวด้านความปลอดภัย
คำถามที่พบบ่อย
บทเรียน “ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Azure Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door”
แนบนโยบาย WAF กับโปรไฟล์ Front Door เปิดใช้ชุดกฎที่มีการจัดการเพื่อป้องกัน OWASP Top 10 และสร้างกฎแบบกำหนดเองเพื่อบล็อก IP ที่เป็นอันตรายซึ่งทราบอยู่แล้ว คุณปฏิบัติ Azure Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Azure Fundamentals หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Azure Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Azure Fundamentals นี้ได้ไหม
ได้ บทเรียน Azure Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โปรไฟล์และปลายทาง Azure CDN
- Azure Front Door: การกระจายโหลดทั่วโลก
- ไฟร์วอลล์เว็บแอปพลิเคชันบน Front Door
- เพิ่มประสิทธิภาพด้วยกฎ CDN