สำหรับผู้ดูแลระบบ หรือเว็บมาสเตอร์อาจจะเคยเจอปัญหาเว็บไซต์ถูกแฮกมาบ้างไม่มากก็น้อย หนึ่งในหลายๆ คำถามที่มักจะเจอเลยก็คือระบบของเรามีการป้องกันเอาไว้แล้วแต่ก็ยังดูเหมือนไม่เพียงพอ ไม่ว่าจะเป็นการติดตั้งไฟร์วอลล์ การติดตั้งระบบ Intrusion Prevention System หรือ IPS เอาไว้แล้ว แล้วทำไมเรายังโดนแฮกได้อยู่ บทความนี้จะมาอธิบายเรื่องเหล่านี้และแนวทางการป้องกันที่เหมาะสมในการป้องกัน
รูปแบบการตั้งเว็บไซต์ของบริษัทแบบใดถึงเหมาะสม
ในปัจจุบัน หากหน่วยงานหรือองค์กรของเราจะมีเว็บไซต์เองก็จะมีทางเลือกในการทำเว็บไซต์ดังนี้
- ใช้บริการผ่านทางผู้ให้บริการฝากเว็บไซต์ หรือ Web Hosting ซึ่งจะมีค่าบริการไม่สูงมากนัก เป็นการใช้บริการผ่านทางการแชร์เครื่องกับผู้ใช้บริการรายอื่นๆ บนเครื่องเดียวกัน อาจจะเปรียบเทียบได้กับการใช้บริการเมล์โดยสารที่มีการแชร์กันหลายๆ คน ทำให้ค่าบริการถูก
- ใช้บริการผ่านทางผู้ให้บริการคลาวด์คอมพิวติ้ง (ในที่นี้หมายถึงการใช้งานคลาวด์แบบ “Infrastructure as a Service” หรือ IaaS และแบบ “Platform as a Service” หรือ PaaS) จะมีค่าใช้จ่ายสูงกว่าแบบแรก เนื่องจากเครื่องดังกล่าวจะมีการกำหนดทรัพยากร (Resource) การใช้งานของเครื่องเอาไว้ให้เราเพียงคนเดียว เปรียบเทียบได้กับการใช้บริการรถแท็กซี่ ที่มีการเช่าระยะการใช้งานเพียงคนเดียวในช่วงเวลาใดเวลาหนึ่ง
- ติดตั้งเว็บเซิร์ฟเวอร์และระบบทั้งหมดเอง จะมีค่าใช้จ่ายสูงที่สุด เนื่องจากต้องลงทุนทั้งเครื่องเซิร์ฟเวอร์ ระบบเครือข่าย รวมไปถึงระบบรักษาความปลอดภัยทั้งหมดเอง ซึ่งในบางครั้งอาจจะใช้งานผ่านทางบริการ Colocation เพื่อเป็นการลดภาระด้านการจัดการศูนย์ข้อมูลไปได้บางส่วน เปรียบเทียบได้กับการซื้อรถยนต์เป็นของตนเอง
โดยทางบริษัท Gartner ได้อธิบายรูปแบบการใช้งานแบบต่างๆ เอาไว้อย่างละเอียดดังรูปด้านล่าง
จะเห็นว่าการใช้งานในรูปแบบต่างๆ นั้น ไม่ว่าจะเป็นแบบคลาวด์ (On-Cloud) หรือแบบติตตั้งใช้งานเองภายในทั้งหมด (On-Premises) จะเป็นการแบ่งหน้าที่ความรับผิดชอบออกจากกัน (เรียกว่า Share responsibility) โดยส่วนของผู้ให้บริการจะเป็นสีดำ ส่วนผู้ใช้บริการจะเป็นสีฟ้านั่นเอง โดยจากรูปด้านบนจะเกี่ยวข้องกับส่วนของความปลอดภัยเนื่องจากการถูกแฮกเว็บไซต์นั้น มักจะถูกโจมตีในระดับ “Application” ซึ่งเป็นหน้าที่ของเว็บมาสเตอร์ (Web Master) หรือผู้ดูแลเว็บไซต์ แต่ถ้าถูกโจมตีหรือแฮกมาจากส่วนอื่นๆ ก็ต้องลงรายละเอียดว่าการถูกโจมตีนั้นอยู่ในความรับผิดชอบของใครระหว่าวผู้ให้บริการหรือผู้ใช้บริการนั่นเอง
ข้อจำกัดของอูปกรณ์ไฟร์วอลล์และอุปกรณ์ด้านเครือข่ายในการป้องกัน
หากเราจะตั้งเว็บไซต์ เราจำเป็นต้องเปิดพอร์ท TCP/80 (HTTP) และ TCP/443 (HTTPs) เพื่อรองรับการเชื่อมต่อจากอินเทอร์เน็ต หากเราไม่เปิดพอร์ทดังกล่าวผู้ใช้งานก็ไม่สามารถเข้าถึงเว็บไซต์ของเราได้ และในปัจจุบันก็มีการผลักดันมาตรฐานการเช้าถึงเว็บไซต์จะต้องเป็นการเชื่อมต่อที่เข้ารหัส (HTTPs) เพื่อป้องกันการดักจับข้อมูลระหว่างการส่ง (Data in transit) ดังนั้น หากเขียนเป็นรูปแบบการเชื่อมต่อจะได้ดังรูป
จากรูปด้านบนเป็นการแสดงรายละเอียดการสร้างกฎสำหรับไฟร์วอลล์เพื่อให้ให้ภายนอกสามารถเข้าใช้งานเว็บเซิร์ฟเวอร์ได้ ซึ่งเราจำเป็นต้องเปิดการใช้งานพอร์ท TCP/80 (HTTP) และ TCP/443 (HTTPs) ให้เชื่อมต่อเข้ามาที่เว็บเซิร์ฟเวอร์ของเรา หากเราพิจารณาเฉพาะทราฟฟิกของ HTTPs นั้น จะพบว่ามีการเข้ารหัสจากเครื่องไคลเอนต์มายังเครื่องเว็บเซิร์ฟเวอร์ดังรูปด้านล่าง ดังนั้นอุปกรณ์รักษาความปลอดภัยที่ตรวจสอบในระดับเครือข่ายจะไม่สามารถป้องกันได้ เพราะทราฟฟิกมีการเข้ารหัสเอาไว้ หรือในอีกนัยหนึ่งทราฟฟิกที่เป็นการใช้งานแบบปรกติและทราฟฟิกการโจมตีของแฮกเกอร์ก็จะมีการเข้ารหัสเอาไว้เช่นกันจึงเป็นสาเหตุที่อุปกรณ์ป้องกันอย่างเช่น Intrusion Prevention System หรือ IPS ไม่สามารถป้องกันได้
ในกรณีที่ต้องการให้อุปกรณ์ IPS สามารถป้องกันได้ขำเป็นต้องมีการแกะรหัสทราฟฟิกดังกล่าวก่อน ซึ่งโดยมากอาจจะทำที่ไฟร์วอลล์ (หากรองรับฟีเจอร์ดังกล่าว) หรืออุปกรณ์ที่ทำหน้าที่เป็น Load Balancer ก่อนเพื่อให้สามารถตรวจสอบทราฟฟิกดังกล่าวได้ดังรูปด้านล่าง
ซึ่งจะเห็นได้ว่าการจะป้องกันทราฟฟิกของเว็บให้ปลอดภัยจะมีขั้นตอนที่ซับซ้อน และต้องอาศัยการทำงานในหลายอุปกรณ์เข้าด้วยกัน เนื่องจากมาตรฐานการใช้งานเว็บที่มีการเข้ารหัสในปัจจุบันนั่นเอง
การโจมตีเว็บไซต์มีอธิบายรูปแบบการโจมตี หรือองค์กรกลางหรือไม่?
สำหรับรูปแบบการแฮกเว็บไซต์นั้น จะมีองค์กรกลางที่ไม่แสวงหาผลกำไรทำหน้าที่เผยแพร่ให้ความรู้ รวมไปถึงการจัดอันดับรูปแบบการโจมตีที่แฮกเกอร์ใช้ในการเจาะเว็บไซต์ต่างๆ เอาไว้ โดยองค์กรดังกล่าวชื่อว่า “Open Worldwide Application Security Project” หรือเรียกสั้นๆ ว่า “OWASP” นั่นเอง
ซึ่งหนึ่งในโครงการที่มีชื่อเสียงของ OWASP ก็คือโครงการ “OWASP Top 10” ที่เป็นโครงการที่จัดอันดับ 10 อันดับแรกในการแฮกเว็บไซต์ ซึ่งผู้พัฒนาเว็บไซต์ ผู้ดูแลระบบ รวมไปถึงผู้ผลิตโซลูชันด้านความปลอดภัย (Security Vendor) ใช้ในการอ้างอิงการแฮกเว็บนั่นเอง สำหรับโครงการ OWASP Top 10 ในปัจจุบัน (ณ. เวลาที่เขียนเดือนกันยายน ปี 2024) จะเป็น OWASP Top 10 ปี 2021 โดยสามารถอ่านรายละเอียดได้จาก https://owasp.org/Top10/ ซึงจะมีคำอธิบายเอาไว้
จากรูปด้านบนเป็นการแสดง OWASP Top 10 ในปี 2021 ซึ่งมีการเปลี่ยนแปลงอันดับจากปี 2017 มาพอสมควร ในที่นี้จะขอยกตัวอย่าง A03:2021-Injection ซึ่งเป็นช่องทางที่แฮกเกอร์นิยมใช้งานกันมาก เนื่องจากเป็นการโจมตีที่สามารถทำได้ง่าย ซึ่งสามารถแสดงได้ดังรูปด้านล่าง
จากรูปด้านบน จะเป็นตัวอย่างของหน้าเว็บแบบหนึ่งที่รองรับการล็อกอิน โดยมีช่องให้กรอก Username และ Password ซึ่งส่งต่อโดยใช้ตัวแปร UserID และ password ตามลำดับ โดยเมื่อรับข้อมูลมาแล้ว ผู้พัฒนาเว็บไซต์ก็จะนำค่ามาแทนที่ในคำสั่ง SQL ดังนี้
SELECT * FROM Users WHERE UserID =
and password =
หากเป็นผู้ใช้งานทั่วไปก็จะกรอกค่า Username และ Password ลงไป ทำให้ SQL ไปตรวจสอบฐานข้อมูลและแสดงผลต่อไป แต่ถ้าหากแฮกเกอร์กรอกข้อมูลที่ผิดปรกติ เช่น กรอก Username เป็น “OR 1=1 -– และไม่กรอก Password ดังรูปด้านบน ก็จะทำให้คำสั่ง SQL นั้น แสดงผลออกมาทั้งหมด เนื่องจาก UserID เป็นค่าใดๆ และ OR กับ 1=1 ซึ่งได้ผลเป็นจริง ส่งผล SQL คำสั่งนั้นเป็นการแสดงผลข้อมูลออกมาทั้งหมดนั่นเอง ซึ่งปัญหาที่เกิดขึ้นนั้นเกิดจากที่ผู้พัฒนาเว็บไซต์ไม่ได้มีการตรวจสอบการส่งข้อมูลจากผู้ใช้งานให้ดีเพียงพอ (หรือเราเรียกกันว่า Input Validation) ทำให้แฮกเกอร์สามารถแทรกคำสั่ง SQL เข้ามาได้ เราจึงเรียกการโจมตีลักษณะนี้ว่า “SQL Injection” นั่นเอง
Web Application Firewall หรือ WAF เป็นเครื่องมือที่ใช้ในการรับมือกับเว็บแฮกเกอร์
จากตัวอย่างการโจมตีก่อนหน้านี้จะพบว่าการโจมตีดังกล่าวเป็นการรูปแบบการโจมตีแบบหนึ่ง ซึ่งอุปกรณ์ที่สามารถช่วยป้องกันปัญหาดังกล่าวจะมีชื่อว่า Web Application Firewall หรือ WAF นั่นเอง โดยการทำงานของ WAF จะเป็นการป้องกันที่ระดับแอปพลิเคชัน โดยอุปกรณ์ดังกล่าวจะต้องมีความสามารถที่สามารถเข้าใจการโจมตีลักษณะต่างๆ ที่อ้างอิงจาก OWASP Top 10 ได้นั่นเอง ซึ่งการทำงานของ WAF นั่นจะคั่นการทำงานระหว่างเครื่องไคลเอนต์และเครื่องเว็บเซิร์ฟเวอร์ โดยจะวางเอาไว้หน้าหรือหลังไฟร์วอลล์ก็ขึ้นอยู่กับฟีเจอร์ และความสามารถของอุปกรณ์ดังกล่าว
หลักการทำงานของ WAF คือการตรวจสอบและกรองข้อมูลที่เข้ามาและออกไปจากเว็บแอปพลิเคชัน โดยจะบล็อกทราฟฟิกที่น่าสงสัยหรือเป็นภัยคุกคาม WAF สามารถทำงานได้ทั้งในรูปแบบของซอฟต์แวร์, อุปกรณ์ฮาร์ดแวร์ หรือบริการบนคลาวด์ขึ้นอยู่กับการออกแบบ โดยสามารถสรุปการติดตั้งและฟีเจอร์คร่าวๆ เอาไว้ดังรูป
ซึ่งการใช้งานระหว่าง On-Cloud Web Application Firewall (เรียกย่อๆ ว่า Cloud WAF) กับ On-premise WAF นั้น สามารถแสดงได้ดังตาราง
รูปแบบการใช้งาน |
ข้อดี |
ข้อเสีย |
On-Cloud WAF |
- ใช้งานได้ง่าย สามารถเปิดการใช้งานได้ทันที
- ส่วนมากมักมีฟีเจอร์ป้องกันการโจมตีแบบ DDoS
|
- ค่าบริการเป็นรายเดือน ในบางผู้ให้บริการมีการคิดปริมาณทราฟฟิกที่ใช้งานด้วย (Data Transfer)
|
On-Premises WAF |
- ไม่มีการคิดค่าใช้จ่ายด้านปริมาณทราฟฟิก
- ข้อมูลอยู่ภายในองค์กรทั้งหมด เหมาะสำหรับบริการที่ต้องการความปลอดภัยที่สูงกว่าปรกติ เช่น การให้บริการธุรกรรมทางการเงินบางประเภท เป็นต้น
|
- ค่าใช้จ่ายเริ่มต้นค่อนข้างสูง (หลักหลายแสนบาทขึ้นไป ไม่รวมค่าต่อ Subscription ในปีถัดไป)
- ต้องมีฮาร์ดแวร์ (ในกรณีใช้งานแบบ Virtual Machine หรือ VM) หรือพื้นที่การติดตั้งอุปกรณ์ฮาร์ดแวร์ (ในกรณีใช้งานแบบ Appliance)
|
ระบบ WAF กับระบบ IPS แตกต่างกันอย่างไร?
สำหรับผู้ดูแลระบบบางคนอาจจะเคยเห็นฟีเจอร์ WAF บนอุปกรณ์ IPS ซึ่งอาจจะมีความสับสนว่าสามารถใช้งาน IPS ทดแทน WAF ได้หรือไม่ เนื่องจาก WAF เป็นอุปกรณ์เฉพาะทางที่ออกแบบมาสำหรับการป้องกันเว็บเซิร์ฟเวอร์โดยเฉพาะ ซึ่งสามารถสรุปข้อแตกต่างระหว่าง WAF และ IPS ได้เป็นข้อมูลดังตาราง
รูปแบบการใช้งาน |
Web Application Firewall (WAF) |
Intrusion Prevention System (IPS) |
วัตถุประสงค์ |
ปกป้องเว็บแอปพลิเคชันจากการโจมตีที่มุ่งเป้าไปที่ช่องโหว่ของแอปพลิเคชัน เช่น SQL Injection, Cross-Site Scripting (XSS) และอื่นๆ |
ป้องกันเครือข่ายจากการโจมตีที่มุ่งเป้าไปที่ช่องโหว่ของระบบเครือข่าย เช่น การโจมตีแบบ DDoS, การโจมตีแบบ Brute Force และอื่นๆ |
การทำงาน |
ตรวจสอบและกรอง HTTP/HTTPS traffic ที่เข้ามาและออกไปจากเว็บแอปพลิเคชัน |
ตรวจสอบและวิเคราะห์ทราฟฟิกทั้งหมดในเครือข่าย และสามารถบล็อกหรือป้องกันการโจมตีได้ทันที |
การใช้งาน |
เหมาะสำหรับการปกป้องเว็บแอปพลิเคชันโดยเฉพาะ |
เหมาะสำหรับการปกป้องเครือข่ายทั้งหมด ไม่ใช่แค่เว็บแอปพลิเคชัน |
โดย WAF บางยี่ห้อจะมีฟีเจอร์ Machine Learning เพื่อใช้ในการเรียนรู้การทำงานของเว็บไซต์ว่ามีการรับส่งข้อมูลเป็นอย่างไร เมื่อเรียนรู้ข้อมูลในระดับหนึ่งแล้วก็จะสามารถช่วยป้องกันเว็บไซต์ได้ ซึ่งฟีเจอร์ดังกล่าวจะเป็นจุดที่แตกต่างระหว่าง WAF และ IPS อีกจุดหนึ่ง
เมื่อไหร่เราควรจะพิจารณาใช้งานระบบ WAF กับเว็บไซต์ของเรา?
สำหรับการใช้งาน WAF นั้น ขึ้นอยู่กับความสำคัญของเว็บไซต์เป็นหลัก โดยหลักการการลงทุนด้าน WAF จะเป็นการลงทุนที่สูงเนื่องจากเป็นอุปกรณ์เฉพาะทาง ซึ่งคงต้องพิจารณาว่าเว็บไซต์ที่เราให้บริการนั้นมีความสำคัญเป็นอย่างไร หากเว็บไซต์ล่มไปหรือไม่สามารถใช้งานได้ส่งผลกระทบต่อธุรกิจหรือไม่ ผมขอยกตัวอย่างง่ายๆ เช่น หากเว็บไซต์ของเราเป็นเว็บไซต์ที่ใช้ประชาสัมพันธ์บริษัท แสดงรายละเอียดสินค้าที่เราผลิต แต่ไม่มีช่องทางการจำหน่ายออนไลน์แต่อย่างใด ปัจจุบันใช้งานบนระบบเว็บโฮสติ้งก็อาจจะไม่เหมาะที่จะใช้งานระบบ WAF เนื่องจากมีค่าใช้จ่ายที่สูงเกินไป หรือถ้ามีช่องทางการจำหน่ายออนไลน์แต่ขายสินค้าผ่านทาง Lazada หรือ Shopee ก็อาจจะไม่จำเป็นที่ต้องใช้งาน WAF เหมือนกัน เนื่องจากการขายผ่านช่องทางเหล่านั้นทางผู้ให้บริการมักจะมีระบบป้องกัน WAF อยู่แล้วนั่นเอง แต่ถ้าเว็บไซต์ของเราให้บริการข้อมูลทางการเงิน มีระบบสมัครสมาชิก รวมไปถึงการชำระค่าบริการผ่านทางออนไลน์ ก็อาจจะพิจารณาใช้งาน WAF ได้ แต่อาจจะต้องลงรายละเอียดว่าการใช้งานแบบใดเหมาะสม ไม่ว่าจะเป็นแบบ On-Cloud หรือแบบ On-Premises นั่นเอง
โดยการติดตั้ง WAF นั้น ควรจะต้องมีการประเมินความเสี่ยงของเว็บไซต์ของเราก่อน โดยอาจจะจ้างผู้เชี่ยวชาญภายนอกเพื่อทดสอบระบบ (Penetrate Testing หรือ Pen-test) ทั้งก่อนและหลังการติดตั้งอุปกรณ์ WAF เพื่อวัดผลว่าอุปกรณ์ดังกล่าวสามารถทำงานได้อย่างมีประสิทธิภาพหรือไม่ และนอกเหลือจากการใช้งานอุปกรณ์ WAF แล้ว การแก้ไขเว็บให้ปลอดภัยจากช่องโหว่ก็เป็นสิ่งที่ควรกระทำ เนื่องจากปัญหาทั้งหมดมักจะเกิดมาจากการพัฒนาเว็บไซต์ที่ไม่มีความปลอดภัยเพียงพอนั่นเอง
อ้างอิง: