Web Application Firewall (WAF) คืออะไร ทำงานอย่างไร ทำไมต้องมี
Complete Guide to Web Application Firewalls
สารบัญ
WAF คืออะไร และทำงานอย่างไร
Web Application Firewall หรือ WAF เป็นเครื่องมือรักษาความปลอดภัยที่ทำหน้าที่คัดแยกและป้องกันการโจมตีทางเน็ตไม่ให้เข้าถึง Web Application ของคุณ แตกต่างจากไฟวอลล์ทั่วไปที่มองแต่ IP Address และ Port WAF นั้นสามารถวิเคราะห์เนื้อหา HTTP Request ได้อย่างลึกซึ้ง เพื่อตรวจจับและปฏิเสธคำขอที่ไม่ปลอดภัย
การทำงานของ WAF เป็นไปดังนี้:
- ดักจับ HTTP/HTTPS Request ทั้งหมดที่เข้ามาหาเว็บไซต์ของคุณ
- วิเคราะห์แต่ละ Request เทียบกับ Rules และ Pattern ที่ทำการป้องกัน
- ตรวจสอบ SQL Injection, XSS, CSRF, และจุดอ่อนอื่น ๆ ในคำขอ
- ปล่อยให้ Traffic ที่ปลอดภัยผ่านไปยัง Server และ Block Traffic ที่เป็นอันตราย
- บันทึก Log การโจมตีเพื่อให้คุณสามารถตรวจสอบและศึกษาได้
WAF ทำงานที่ระดับ Application Layer (Layer 7 ใน OSI Model) ซึ่งต่างจากไฟวอลล์ปกติที่ทำงานที่ Layer 3-4 นั่นคือ WAF เข้าใจ HTTP Language ได้ จึงสามารถเห็นเนื้อหาจริง ๆ ของการโจมตี ไม่ใช่แค่ดูที่ที่มาหรือไปของแพ็คเก็ตข้อมูล
WAF ป้องกันอะไร เพื่อป้องกัน OWASP Top 10
OWASP Top 10 คือรายการ 10 อันดับความเสี่ยงความปลอดภัยทางเว็บที่ร้ายแรงที่สุด WAF ช่วยป้องกันภัยคุกคามเหล่านี้ได้เป็นอย่างดี นี่คือสิ่งที่ WAF สามารถป้องกันได้:
- SQL Injection: ผู้โจมตีพยายามใส่โค้ด SQL เพื่อเข้าถึงข้อมูลในฐานข้อมูล WAF ตรวจจับและหยุดคำขอนี้
- Cross-Site Scripting (XSS): การเพิ่มโค้ด JavaScript ร้ายแรงในเพจ WAF ป้องกันการดำเนินการ Script ที่ไม่ปลอดภัย
- Cross-Site Request Forgery (CSRF): WAF ตรวจสอบคำขอเพื่อให้แน่ใจว่าเข้ามาจากแหล่งที่เชื่อถือได้
- Path Traversal: พยายามเข้าถึงไฟล์ที่ไม่ควรจะเข้าถึง WAF ป้องกันด้วยการตรวจสอบ Path
- Insecure Deserialization: WAF ตรวจจับข้อมูลที่ไม่ปลอดภัยในการถ่ายโอน
- DDoS Attacks: ท่องเว็บจำนวนมากจากแหล่งเดียว WAF สามารถจำกัดอัตรา Request ได้
นอกจากนี้ WAF ยังสามารถป้องกัน:
- Broken Access Control: ผู้ใช้สามารถเข้าถึงสิ่งที่ไม่ควรจะเข้าถึง
- Sensitive Data Exposure: ข้อมูลที่เป็นความลับถูกเปิดเผย
- XML External Entity (XXE): การโจมตีผ่าน XML Processing
- Broken Authentication: การปลอมแปลงตัวตน
- Vulnerable Components: ใช้ Library หรือ Framework ที่มีจุดอ่อน
ประเภท WAF: Hardware, Software และ Cloud-based
มี 3 ประเภท WAF หลัก ๆ ที่คุณสามารถเลือกได้ตามความต้องการของธุรกิจ:
1. Hardware WAF (WAF แบบ Appliance)
Hardware WAF เป็นอุปกรณ์ที่ติดตั้งที่ On-premises (ที่สำนักงานของคุณ) ทำหน้าที่คัดแยก Traffic ทั้งหมดก่อนที่จะเข้าเซิร์ฟเวอร์ของคุณ ข้อดี: ควบคุมเต็มที่ ข้อเสีย: ราคาแพง ต้องมีคนดูแลเอง ใช้สำหรับองค์กรขนาดใหญ่เท่านั้น
2. Software WAF (WAF แบบ Module)
Software WAF ติดตั้งบน Server ของคุณเอง เช่น ModSecurity สำหรับ Apache หรือ Nginx ข้อดี: ราคาถูก ทำงานบน Server เดียวกัน ข้อเสีย: ใช้ทรัพยากร Server เพิ่มเติม ต้องดูแลและอัปเดตด้วยตนเอง เหมาะกับ VPS หรือ Dedicated Server
3. Cloud-based WAF
Cloud WAF อยู่ระหว่างเว็บไซต์ของคุณและผู้ใช้งาน (Reverse Proxy) คำขอทั้งหมดผ่าน WAF cloud ก่อน ข้อดี: ไม่ต้องติดตั้งอะไร หรือ จ่ายแค่เดือนละบาท ถูกต้อง ข้อเสีย: ต้องเปลี่ยน DNS หรือใช้ CNAME ตัวอย่าง: Cloudflare, Sucuri, AWS WAF, Imperva
ส่วนใหญ่ Hosting Provider ทั่วไปจะมี Software WAF เช่น ModSecurity หรือ cpGuard ซึ่งทำงานบน Server แล้ว
WAF สำหรับ WordPress
WordPress เป็นเป้าหมายของผู้โจมตีเพราะมีผู้ใช้มากมายและมี Plugin เป็นจำนวนมาก ดังนั้น WAF สำหรับ WordPress จึงมีความสำคัญเป็นอย่างมาก
Cloud WAF สำหรับ WordPress
เครื่องมือเช่น Cloudflare, Sucuri, Wordfence Premium มีป้องกัน WordPress-specific Rules เช่น:
- ป้องกันการถมบ้านรหัสผ่าน Brute Force
- ป้องกัน Malware ที่พยายามฝังตัวลงใน Plugin
- ป้องกัน Exploit ที่เกี่ยวข้องกับ WordPress Core, Theme, Plugin
- ล็อกแอ่ว User ที่เข้าสู่ระบบบ่อย ๆ จากสถานที่ต่างกัน
Plugin WAF สำหรับ WordPress
นอกจาก Cloud WAF แล้ว คุณสามารถติดตั้ง Plugin แบบ Software WAF บน WordPress เอง เช่น:
- iThemes Security Pro
- Wordfence Security (ฟรี)
- All In One WP Security & Firewall (ฟรี)
- Shield Security
Plugin เหล่านี้ทำงานที่ระดับ WordPress เองเพื่อตรวจจับและปฏิเสธการโจมตี บ่อย ๆ ใช้ร่วมกับ Cloud WAF เพื่อความปลอดภัยที่มากยิ่งขึ้น
ModSecurity: WAF ที่นิยมที่สุดสำหรับ Hosting
ModSecurity เป็น Software WAF ที่เปิดโค้ดและฟรี ใช้งานได้กับ Apache, Nginx, และ IIS ส่วนใหญ่ Hosting Provider ใช้ ModSecurity สำหรับป้องกันเว็บไซต์ของลูกค้า
ลักษณะเฉพาะของ ModSecurity
- Real-time Monitoring: ตรวจสอบ Traffic ทั้งหมดแบบสดขณะเกิด
- Request and Response Filtering: ไม่เพียง Request ด้านในเท่านั้น แต่ยังตรวจสอบ Response ที่ส่งกลับมา
- OWASP ModSecurity Core Rule Set (CRS): Ruleset ที่ใช้ Object ห้องแบบมาตรฐานโลก
- Customizable Rules: สามารถสร้าง Rules เองตามความต้องการ
- Logging: บันทึก Log การโจมตีทั้งหมดสำหรับการตรวจสอบ
วิธีตั้งค่า ModSecurity
ถ้า Hosting ของคุณใช้ ModSecurity อยู่แล้ว ส่วนใหญ่จะมี Dashboard ใน Control Panel (เช่น cPanel หรือ DirectAdmin) เพื่อให้คุณสามารถ:
- เปิด/ปิด ModSecurity ได้
- ปรับ Paranoia Level (ระดับหนักของการตรวจจับ) ได้
- Exclude Rules สำหรับ Application ที่ถูกต้องแต่ ModSecurity误認เป็นอันตราย
- ดู Log การโจมตี
หากต้องการตั้งค่า ModSecurity บน VPS หรือ Dedicated Server เองก็สามารถติดตั้ง ทำให้ได้ความยืดหยุ่นสูง แต่ต้องมีความรู้ Linux พอสมควร
cpGuard: WAF ที่มาพร้อมกับ cPanel Hosting
cpGuard เป็น WAF ที่พัฒนาโดย cPanel Inc สำหรับลูกค้า cPanel Hosting cpGuard ได้รับความนิยมมากเพราะว่ามันมาพร้อมกับ cPanel โดยค่าเริ่มต้น ไม่ต้องติดตั้งหรือจ่ายเพิ่มเติม
ลักษณะเฉพาะของ cpGuard
- Built-in with cPanel: ไม่ต้องติดตั้ง ใช้งานได้ทันที
- Signature-based Protection: ใช้ลายเซ็น (Signature) ของการโจมตีที่รู้จักแล้ว
- Real-time Updates: ลายเซ็นใหม่ได้รับการอัปเดตอย่างต่อเนื่อง
- Automatic Blocking: ปฏิเสธการโจมตีโดยอัตโนมัติ
- Whitelisting and Blacklisting: สามารถสร้างรายชื่อ IP ที่อนุญาตหรือปฏิเสธได้
วิธีตั้งค่า cpGuard ใน cPanel
ผู้ใช้ cPanel สามารถเข้าไปที่ Security (หรือ Security & Filters) แล้วเลือก cpGuard เพื่อ:
- เปิด/ปิด cpGuard
- เลือก Protection Level (Minimal, Normal, Strong)
- จัดการ Whitelist IP ที่ไม่ต้องตรวจสอบ
- ดู Log การโจมตี
- Export Log เพื่อการวิเคราะห์เพิ่มเติม
ข้อเสีย: cpGuard ต้องการให้ Hosting ใช้ cPanel ดังนั้นหาก Hosting ของคุณใช้ DirectAdmin หรือ Plesk ก็ใช้งาน cpGuard ไม่ได้
วิธีตรวจสอบว่า Hosting ของคุณมี WAF
ต้องการให้แน่ใจว่า Hosting ของคุณมี WAF? ลองทำตามขั้นตอนนี้:
1. ตรวจสอบจากเอกสารของ Hosting
ดูเว็บไซต์ของ Hosting Provider หรือหน้า Feature ของแพ็คเกจ บ่อย ๆ เขาจะระบุว่า "WAF Protection" หรือ "ModSecurity" หรือ "cpGuard" ชัดเจน
2. ถามทีมสนับสนุน
ส่ง Ticket หรือแชทกับทีม Support ของ Hosting ถามตรงว่า "Hosting นี้มี WAF ใช้หรือไม่ ใช้ WAF แบบไหน?" ทีมที่ดีจะตอบชัดเจนและให้วิธีตั้งค่าด้วย
3. เข้า Control Panel ตรวจสอบ
ถ้าเป็น cPanel ให้ไปที่ Security → cpGuard ถ้าเห็นว่ามีเมนู "WAF" หรือ "ModSecurity" แสดงว่ามี WAF ถ้าเป็น DirectAdmin ให้ไปที่ Administrator → Tool → ModSecurity ที่นั่น
4. ลองดู HTTP Header
ใช้ Online Tool เช่น whatruns.com หรือ tools.keycdn.com/curl เพื่อตรวจสอบ HTTP Header ของเว็บไซต์ บ่อย ๆ WAF จะเพิ่ม Header เช่น Server: cloudflare (Cloudflare WAF), X-Sucuri-ID: … (Sucuri WAF), Headers ที่เป็น ModSecurity: X-ModSecurity-Message
5. ทดลองส่ง Malicious Request
ใช้ curl หรือ Postman เพื่อส่ง Request ที่มี SQL Injection Signature (เช่น ?id=1' OR '1'='1) ไปที่เว็บไซต์ต่าง ๆ ของคุณ ถ้า WAF ทำงาน คุณจะได้ 403 Forbidden หรือข้อความปฏิเสธจาก WAF ทำเฉพาะในเว็บไซต์ของคุณเอง ห้ามลองกับเว็บไซต์ของคนอื่น!
AsiaGB.com เป็นหนึ่งใน Hosting Provider ไทยที่ให้ WAF มาเป็นมาตรฐาน ทุกแพ็คเกจของพวกเขาใช้ SSD Storage ร่วมกับ ModSecurity และ DirectAdmin ทำให้มีความปลอดภัยสูง และทีมสนับสนุนไทยพูดไทยได้ 24 ชั่วโมง
วิธีเลือก Web Hosting ที่มี WAF ในไทย
เมื่อเลือก Hosting ใหม่ WAF ควรเป็นปัจจัยสำคัญประการหนึ่ง นี่คือสิ่งที่ต้องมองหา:
ปัจจัยสำคัญ:
- WAF Protection: ตรวจสอบว่า Hosting มี ModSecurity หรือ cpGuard หรือ Cloud WAF ไหม
- Uptime Guarantee: ต้องการ 99% uptime (โปรดทราบ: 99.9% ทำให้ปิดได้เฉพาะ 43 นาทีต่อเดือน ซึ่งไม่สมจริง)
- Server Location: ดีกว่าเซิร์ฟเวอร์อยู่ในไทยหรือสิงคโปร์ เพื่อให้ Speed เร็ว
- Storage Type: ต้องใช้ SSD ไม่ใช่ HDD เพื่อให้เร็วขึ้น
- Control Panel: cPanel (cpGuard built-in) หรือ DirectAdmin (ModSecurity)?
- Thai Support: ทีมสนับสนุนที่พูดไทยได้ 24 ชั่วโมง สำคัญสำหรับการแก้ปัญหาด่วน
ตัวอย่าง Hosting ที่มี WAF ในไทย
AsiaGB.com เป็น Hosting Provider ที่นำเสนอความปลอดภัยสูงพอ เซิร์ฟเวอร์ทั้งหมดติดตั้ง ModSecurity ใช้ SSD Storage ใช้ DirectAdmin ที่มีเสถียรภาพสูง และให้ 99% Uptime Guarantee ที่สมจริง รวมทั้งทีมสนับสนุนไทยที่พูดไทยเต็ม ๆ 24 ชั่วโมง
คำแนะนำสุดท้าย
- ไม่ควรเลือก Hosting แค่ด้วยราคาถูกเพียงอย่างเดียว ความปลอดภัย (WAF) เป็นส่วนหนึ่งของการลงทุนในความมั่นคงของเว็บไซต์
- ถ้า Hosting ของคุณไม่มี WAF คุณสามารถเพิ่มเอง ผ่าน Plugin (WordPress) หรือ Cloud WAF เช่น Cloudflare
- WAF ไม่ใช่วิธีป้องกันเดียว ต้องใช้ร่วมกับการอัปเดต Software, ใช้รหัสผ่านที่แข็งแกร่ง และ Backup สม่ำเสมอ