โครงการแลกเปลี่ยนเรียนรู้เพื่อพัฒนาศักยภาพบุคลากร
กลุ่มผู้ปฏิบัติงานเทคโนโลยีสารสนเทศ
หัวข้อ “ระบบป้องกัน Web Application (Web Application Firewall)”
โดย นายสุรเดช ไชยมงคล
นักวิชาการคอมพิวเตอร์
ศูนย์เทคโนโลยีสารสนเทศ
สรุปบทเรียน
เนื่องจากปัจจุบันการพัฒนา Application ได้ก้าวหน้าขึ้น จากรูปแบบเดิมที่เป็นการเชื่อมต่อกันแบบ Client-Server สู่การพัฒนาผ่านเว็บบราวเซอร์ หรือ HTTP(s) ซึ่งประกอบด้วย 4 องค์ประกอบหลัก คือ Database Server, Application Server, Web Server และส่วนแสดงผลข้อมูลที่ผู้ใช้ใช้งานคือ Web Application และเพื่อให้ระบบการทำงานเป็นไปอย่างมีประสิทธิภาพ จึงต้องมีองค์ประกอบเพิ่มเติม ได้แก่ Firewall, Load Balancer, Reverse Proxy Server, Cache System ทั้งนี้ในระบบยังอาจพบปัญหาที่ก่อให้เกิดการทำงานที่สมบูรณ์ ได้แก่การถูกโจมตี ดักจับข้อมูล จากผู้ไม่ประสงค์ดี หรืออาจเกิดจากความผิดพลาดเนื่องจากการตั้งค่าระบบที่ไม่ดีพอ ความผิดพลาดจากการพัฒนาซอฟต์แวร์ ที่ไม่ได้ตระหนึกถึงการทำงานที่ปลอดภัยในระบบ เป็นต้น ดังนั้นเพื่อเป็นการป้องกันปัญหาที่จะเกิดกับ Web Application จึงควรมีวิธีการป้องกัน ที่เรียกว่า WAF โดยติดตั้งเป็นเครื่องแม่ข่ายสำหรับกรองข้อมูลผ่านไปยัง WEB Application โดยกำหนดเนื้อหาในการแลกเปลี่ยนเรียนรู้ โดยงานระบบคอมพิวเตอร์และบริการ ซึ่งได้นำวิธีการใช้เครื่องมือ ZAP และ WAF มาช่วยในการสร้างความปลอดภัยให้กับการพัฒนา Web Application
การสร้างความปลอดภัยให้กับการพัฒนา Web Application นั้น ต้องทราบถึงสาเหตุการถูกโจมตี วิธีการทดสอบเพื่อหาช่องโหว่ และเครื่องมือที่จะช่วยป้องกัน Web Application ซึ่งสาเหตุการโจมตี Web Application เกิดจาก 3 สาเหตุใหญ่ๆ คือ
1) ความผิดพลาดของผู้ดูแลระบบที่ติดตั้งและตั้งค่าระบบต่างๆ ไม่ดีพอ มีช่องโหว่ ได้แก่การโจมตีผ่าน 3rd Party Misconfiguration, Parameter Tempering
2) ความผิดพลาดจากผู้เขียนซอฟต์แวร์ที่เกี่ยวข้องกับการทำงานเช่น MS IIS เป็นต้น ได้แก่การโจมตีผ่าน Known Vulnerabilities ซึ่งสามารถป้องกันได้โดยการ Update Patch เป็นประจำ
3) ความผิดพลาดจากผู้เขียน Web Application และองค์ประกอบที่เกี่ยวข้องอื่นๆ ที่ไม่ได้ตระหนักถึงการทำงานให้เกิดความปลอดภัยในระบบ ได้แก่การโจมตีผ่าน Hidden Field, Cookie Poisoning, Back Door & Debug Options, Application Buffer Overflow, Stealth Commanding
ข้อมูลที่ผ่าน Web Application นอกจาก Normal Data ที่เป็นข้อมูลสะอาดแล้ว ยังมีข้อมูลที่เสี่ยงต่อความไม่ปลอดภัยให้กับ Web Application อาทิ
1) Violations of the HTTP protocol
2) HTTP Denial of Service
3) Common Web Attacks
4) Bots, crawlers, scanners
5) Malicious files uploaded
6) Tracks Credit Card
7) Trojans horses
8) Error messages sent by the server
วิธีการทดสอบช่องโหว่ Web Application ที่พัฒนาได้ โดยแนะนำการใช้ ZAP Pentest Tools ในการทดสอบช่องโหว่ของ Web Application เช่น การเซตค่าต่างๆ ที่จะส่งผลให้เกิดช่องในการโจมตีได้ อาทิ Cookie set without HttpOnly flag, X-Content-Type-Options Header Missing, X-Frame-Options Header not set
ในการสร้างความปลอดภัยให้ Web Application ซึ่งแต่เดิมได้ใช้ Firewall เป็นอุปกรณ์หน้าด่านในการปกป้องระบบเครือข่ายอินเทอร์เน็ต แต่เพื่อให้เกิดการป้องกันในกรณีของการพัฒนาโปรแกรม เราจำเป็นต้องเพิ่มอุปกรณ์เพื่อช่วยในการป้องกันการโจมตี โดยการติดตั้งเครื่องแม่ข่ายสำหรับทำหน้าที่กรองข้อมูลก่อนผ่านไปยัง Web Application ซึ่งสามารถคัดกรองข้อมูลก่อนส่งได้ ดังนี้
1) HTTP Protection - detecting violations of the HTTP protocol and a locally defined usage policy.
2) Real-time Blacklist Lookups - utilizes 3rd Party IP Reputation
3) HTTP Denial of Service Protections - defense against HTTP Flooding and Slow HTTP DoS Attacks.
4) Common Web Attacks Protection - detecting common web application security attack.
5) Automation Detection - Detecting bots, crawlers, scanners and other surface malicious activity.
6) Integration with AV Scanning for File Uploads - detects malicious files uploaded through the web application.
7) Tracking Sensitive Data - Tracks Credit Card usage and blocks leakages.
8) Trojan Protection - Detecting access to Trojans horses.
9) Identification of Application Defects - alerts on application misconfigurations.
10) Error Detection and Hiding - Disguising error messages sent by the server.
การขอใช้งานระบบ WAF สามารถดำเนินการได้ผ่านศูนย์เทคโนโลยีสารสนเทศ มีขั้นตอนดังนี้
1) แจ้งขอเปลี่ยน DNS ให้ชี้มายัง IP ของเครื่องแม่ข่ายที่ทำหน้าที่เป็น WAF
2) ตั้งค่า Firewall เครื่องแม่ข่ายให้บริการของ Web Application ให้เฉพาะเครื่อง WAF เท่านั้นที่สามารถเข้าถึงได้
- Allow 80 Only WAF’s Server
- DENY ALL 80
ผู้ถอดบทเรียน
นางสาวณัฐกฤตา โกมลนาค
นักวิชาการคอมพิวเตอร์
ศูนย์เทคโนโลยีสารสนเทศ