สวัสดีครับ เพื่อน ๆ ชาว IT วันนี้กลับมาพบกันอีกครั้งกับ Blog ของ Cloud HM นะครับ สำหรับหัวข้อในวันนี้ เราจะมาแนะนำการป้องกันการโจมตีจากผู้ไม่ประสงค์ดีที่จะมาทำร้าย Website หรือ Application ที่สำคัญของทุกท่านนะครับ โดยหลาย ๆ คนที่เข้ามาอ่าน อาจจะสงสัยกันว่า จำเป็นหรือไม่? ที่ต้องใช้งาน WAF ก็ถ้าหากท่านไม่เคยโดนโจมตีมาก่อนก็อาจจะยังไม่เห็นภาพนะครับ แต่ก็ไม่มีใครอยากให้เกิดขึ้นกับ Website หรือ Application ที่เกี่ยวข้องกับท่านไม่ทางตรงก็ทางอ้อมหรอกครับ ฉะนั้น กันไว้ดีกว่าแก้นะครับ โอเคเราเกริ่นกันมาเยอะแล้ว เราไปดูรายละเอียดกันครับ
WAF คืออะไร?
Web Application Firewall (WAF) เป็นเครื่องมือที่ใช้ป้องกัน Web application จากการโจมตีผ่านทาง Application Layer เช่น Cross-site scripting (XSS), SQL Injection และ Cookie Poisoning (ที่ชอบขึ้นให้กดตาม Website ต่าง ๆ) และอื่น ๆ ซึ่งช่องทางแรกที่จะถูกโจมตีก็คือ Website หรือ Application ที่เป็นด่านหน้าในการรองรับการใช้งานจากทางลูกค้า ซึ่งถ้าหากทะลวงเข้ามาได้ ก็จะสามารถเข้าถึงข้อมูลสำคัญที่เก็บไว้ในฐานข้อมูลได้ การที่มี WAF ติดตั้งอยู่และวางไว้ถูกที่ถูกเวลาจะช่วยให้สามารถป้องกันการโจมตีระบบของคุณได้นั่นเองครับ
WAF ทำงานได้อย่างไร?
หลักการที่ WAF ป้องกัน Web App ของคุณคือ การกรองข้อมูล, การ Monitoring และการ Block Traffic แปลกปลอมที่เป็น HTTP/HTTPS ที่ส่งมายัง Web Application ของคุณ และก็ป้องกันไม่ให้ข้อมูลส่งออกจาก Application โดยการใช้ Policy หลาย ๆ Policy เข้ามาช่วยวิเคราะห์หรือพิจารณาว่า Traffic ไหนผิดปกติ และ Traffic ไหนปลอดภัย Proxy Server จะทำหน้าที่ป้องกันข้อมูลของ Client ที่สามารถรั่วไหลออกได้ แต่ WAF จะทำหน้าที่ตรงกันข้ามกับ Proxy Server เรียกว่าเป็น Reverse Proxy มีหน้าที่ป้องกันไม่ให้ Traffic ที่ดูแล้วน่าจะเป็นภัยคุกคามต่อ Client เข้าถึงข้อมูลภายในของ Web Application Server ได้
ผลิตภัณฑ์ WAF ในตลาดมีอยู่หลากหลายรูปแบบเลย ไม่ว่าจะเป็น Software, Appliance หรือบริการแบบ Delivered as a service ส่วนของ Policy เองก็สามารถปรับค่าได้ตามต้องการให้เหมาะสมกับ Web Application ของคุณ ถึงแม้ว่า WAF หลาย ๆ เจ้า จะสามารถ Update Policy ได้อยู่บ่อย ๆ เพื่อให้พร้อมกับภัยคุกคามรูปแบบใหม่ ๆ บางรายถึงขั้นมีการใช้ Machine Learning ในการ Enable ให้ WAF Update ได้แบบอัตโนมัติ การที่มี Feature แบบนี้จะช่วยให้ลดปัญหาที่ยุ่งยากในการ Update Policy ลงไปได้ และทำให้มั่นใจว่า WAF จะสามารถป้องกันภัยคุกคามชนิดใหม่ ๆ ได้ นั่นเองครับ
ความแตกต่างระหว่าง WAF กับ IPS และ NGFW คืออะไร
หลาย ๆ คนอาจจะยังงงอยู่ ว่าที่ยกตัวอย่างทั้งหมดมันก็คือ Firewall นิ แล้วมันไม่สามารถใช้ได้เหมือนกันใช่ไหม?
ชื่อเต็มของแต่ละตัว
WAF ย่อมาจาก Web Application Firewall
IPS ย่อมาจาก Intrusion Prevention System
NGFW ย่อมาจาก Next-generation Firewall
แล้วความแตกต่างคืออะไร?
Web Application Firewall (WAF) ใช้ป้องกันการโจมตีผ่านทาง Application Layer and โดยถูกออกแบบมาเป็นพิเศษในการวิเคราะห์ Traffic ที่เป็น HTTP และ HTTPS ก่อนที่จะหลุดเข้าไปภายใน Application ที่มีข้อมูลของ User หรือข้อมูลสำคัญอื่น ๆ ให้มองง่าย ๆ ว่า WAF เป็นด่านของประตูในการกรองผู้ที่จะเข้าไปใช้งาน Application โดยรูปแบบการโจมตีที่นิยมใช้กัน หรือเจอได้บ่อย ๆ เรียงลำดับจากบ่อยสุดและลดลงมาตามลำดับ ได้แก่
- Injection Attacks – เป็นการส่ง Source code ไปทางช่องโหว่ในการเข้าถึง Application เปรียบเทียบเหมือนกับการฉีดยา เช่น SQL Injection
- Broken Authentication – เจาะเข้าถึงข้อมูลด้วยรหัสที่คาดเดาได้ง่าย
- Sensitive Data Exposure – เจาะเข้าไปเพื่อเปิดเผยข้อมูลที่เป็นความลับให้แสดงออกมา
- XML External Entities (XXE) – ผู้โจมตีจะทำการใส่ข้อมูลและปลอมแปลงด้วยภาษา XML เพื่อ Upload ผ่านทางช่องโหว่ไปโจมตี
- Broken Access Control – โจมตีผ่านทาง Permission ที่ไม่รัดกุมพอ เช่น ยังเก็บ Default User ไว้อยู่ทำให้เจาะเข้าระบบได้ง่ายกว่าปกติ
- Security Misconfigurations – อาศัยช่องโหว่จากการตั้งค่าส่วนของ Security ที่ผิดพลาดในการเข้าโจมตี
- Cross-Site Scripting (XSS) – ย้ายเส้นทางของ Website ให้ไปปรากฎเป็น Website ของผู้โจมตี เพื่อหลอกเอาข้อมูล
- Insecure Deserialization – เป็นช่องโหว่ที่เกิดขึ้นกับ Software ที่รับ Serialized Data จาก Untrusted Input ซึ่งอาจทำให้ผู้ที่โจมตีสามารถเข้าถึงหรือเรียกใช้งานบางอย่างใน Software ได้
Intrusion Prevention System (IPS) คือระบบที่กำหนดค่าให้ใช้วิธีการต่าง ๆ ในการป้องกัน Network จากการ Access โดยไม่ได้รับอนุญาต วิธีการที่ว่ามีอยู่ด้วย 3 รูปแบบดังนี้
Signature-Based – เป็นการใช้ Signature ที่มีการตั้งค่าไว้ให้รู้จักกับภัยคุกคามนั้น ๆ ที่มีคนเคยเจอมาแล้ว ลักษณะการทำงานจะทำหน้าป้องกันการโจมตีที่มีรูปแบบที่ Match กับค่าของ Signature โดยระบบจะจัดการให้ตามความเหมาะสม
Anomaly-Based – ลักษณะการทำงานจะเป็นการ Monitor ความผิดปกติที่เกิดขึ้นในระบบ Network โดยการเอาตัวอย่างของ Traffic มาเปรียบเทียบรวมกับ Traffic ส่วนใหญ่ ซึ่งเมื่อตรวจพบความผิดปกติจะทำการ Block Traffic ไม่ให้สามารถเข้าถึง Host ได้
Policy-Based – วิธีนี้จะต้องอาศัย Admin ในการตั้งค่าในส่วนของ Security Policy โดยอิงตาม Policy ของทางองค์กร และ Network Infrastructure เมื่อมีการโจมตีหรือเกิดความผิดปกติขึ้นก็จะมีการแจ้งเตือนด้วย Alert ที่ส่งไปหา System Adminโดยทั่วไปแล้ว IPS จะเอาไว้ใช้ป้องกัน Traffic ที่โจมตีมาด้วย Protocol เช่น DNS, SMTP, TELNET, RDP, SSH, และ FTPIPS จะปกป้องคลอบคลุมในระดับ Layers 3 (Network Layer) และ Layer 4 (Session Layer) บางตัวจะสามารถกันได้ถึง Layer 7 (Application layer)
Next-generation Firewall (NGFW) – ใช้สำหรับ Monitor Traffic ที่วิ่งออกสู่ Internet เช่น Traffic ระหว่าง Website, อีเมล และพวก SaaSหลักการทำงานคือการปกป้อง UserNGFW จะใช้ Policy ที่เป็นแบบ User-based ในการป้องกันโดยเพิ่ม Context ในส่วนของ Security Policy ใช้การเพิ่ม Feature ขึ้นมาให้ใช้งาน เช่น การทำ URL filtering, การทำตัวเป็น Antivirus หรือ Anti-malware และบางตัวก็สามารถทำหน้าที่เป็น IPS ได้
จากที่เคยได้กล่าวไปว่า WAF จะทำหน้าที่คล้าย ๆ กับ Reverse Proxy (ใช้โดย Web App ซึ่งก็คือ Server)แต่ NGFW จะมองว่าใช้งานเป็นรูปแบบของ Forward Proxy (ใช้โดย User หรือ Client เช่น การใช้งานผ่านทาง Browser)
มีวิธีไหนบ้างที่จะ Deploy WAF ขึ้นมาใช้งาน?
สำหรับการ Deploy WAF ขึ้นมาใช้งานสามารถทำได้หลายรูปแบบครับ สำหรับเงื่อนไขที่ควรพิจารณาคือ
- Web Application ของคุณ Deploy ไว้ที่ไหน?
- คุณให้บริการกับลูกค้าหรือทีมงานอย่างไร?
- คุณต้องการจะบริหารจัดการระบบอย่างไร?
- เรื่องของ Performance ที่ต้องการจะให้เป็นอย่างไร?
- คุณจะบริหารเอง หรือจะจ้างคนมาดูแล?
- อยากใช้บน Cloud หรือจะติดตั้งที่ On-Premise?
วิธีการ Deploy WAF มีให้เลือกดังนี้ครับ
1. Deploy ไว้บน Cloud + มีคนบริหารจัดการให้ — แบบนี้จะเหมาะกับคนที่ต้องการใช้บริการทันที ขึ้นไวที่สุด วิธีนี้ไม่ยุ่งยากในการตั้งค่า WAF ให้ป้องกัน App ของคุณ โดยเฉพาะถ้าหลังบ้านของคุณไม่ได้มีอุปกรณ์เรื่องของ Security หรือ Resource มากนัก
2. Deploy ไว้บน Cloud + บริหารจัดการเอง — แบบนี้จะแยกออกเป็น 2 แบบคือ
Manual จะค่อนข้างยืดหยุ่นกว่าในเรื่องของการ Custom Security Configure ต่าง ๆ และสะดวกที่มีการ Deploy ไว้บน Cloud แต่ก็ยังสามารถจัดการเรื่องของ Traffic และ Policy ต่าง ๆ ได้
Auto Provision แบบนี้เป็นวิธีที่ง่ายที่สุดในการใช้งาน WAF บน Cloud และการ Deploy ในเรื่องของ Security Policy ก็ทำง่าย และมีราคาถูก
3. Deploy ที่ On-premise โดยใช้ Virtual Appliance หรือ Physical Hardware — วิธีนี้เป็นที่นิยมมากที่สุดเพราะมีความยืดหยุ่นสูง สามารถควบคุมเรื่องของ Performance ได้ และสามารถปรับแก้ในเรื่องของ Security ได้ค่อนข้างดีมาก เหมาะกับ Web App ที่สำคัญในระดับ Critical
ยี่ห้อชื่อดังสำหรับ WAF มีอะไรบ้าง?
ความจริงแล้วมีหลายบริษัทที่ผลิต WAF ออกมาให้ใช้งานทั้งที่เป็น Appliance และ Cloud แต่ผมจะยกตัวอย่าง WAF ที่คนไทยส่วนใหญ่คุ้นเคย เคยเห็น หรือได้ยินชื่อเสียงกันมาบ้างนะครับ
Appliance
– Barracuda Networks WAF
– Citrix Netscaler Application Firewall
– F5 BIG-IP Advanced WAF
– Fortinet FortiWeb
– Imperva SecureSphere
Cloud
– Akamai Technologies Kona
– Alibaba Cloud
– AWS WAF
– Barracuda Networks CloudGen WAF and WAF-as-a-Service
– Cloudflare
– Fortinet FortiWeb
– F5 Silverline
– IBM Cloud Internet Services WAF
– Imperva Incapsula
– Microsoft Azure Application Gateway with WAF
– Sucuri Firewall
– VMware NSX Advanced Load Balancer
และตัวสุดท้ายจะแตกต่างจากอันอื่นหน่อยก็คือ
ModSecurity เป็น Open-source
เป็นอย่างไรกันบ้างครับสำหรับ Blog นี้ หวังว่าทุกท่านจะสามารถเลือกใช้งาน WAF ได้เหมาะสมตามจุดประสงค์ของท่านนะครับ Cloud HM มีบริการเสริมสำหรับท่านที่ใช้งาน Enterprise Cloud สามารถติดต่อให้ Cloud HM ติดตั้ง WAF ที่เหมาะสมกับการใช้งานของท่านได้ สอบถามรายละเอียด หรือติดต่อเพิ่มเติมได้ที่นี่นะครับ
ขอบคุณครับ
— Cloud HM