คงพูดไม่ผิดนักหากจะบอกว่าในรอบ 10 ปีที่ผ่านว็ว็บไซด์คือสิ่งหนึ่งที่ทำให้มนุษย์เรานั้นใช้ชีวิตได้อย่างสะดวกสบายมากขึ้นที่สุดสิ่งหนึ่ง เพราะไม่ว่าเราจะต้องการทำอะไรเว็บไซต์ก็สามารถที่จะตอบโจทย์เราไปได้เสียทุกอย่างเช่น หากเราต้องการไปยังสถานที่หนึ่งแต่ไม่เคยไปมาก่อนและไม่มีคนรู้จักเคยไปมาก่อน เราก็สามารถไปสถานที่นั้นได้ด้วยตนเองโดยใช้เว็บไซต์ท่องเที่ยวหรือเว็บไซต์อย่าง Google Map เพื่อค้นหาเส้นทางไปยังเป้าหมายดังกล่าว หรือหากเราต้องการนัดเพื่อนฝูงไปกินข้าวด้วยกันก็ไม่จำเป็นต้องโทรศัพท์หากันอีกต่อไป เราสามารถนัดเพื่อนๆผ่าน Social Network ต่างๆได้เลย เป็นต้น ซึ่งบ่งบอกถึงการที่เว็บไซต์เข้ามามีบทบาทในชีวิตประจำวันของคนเรามากขึ้นนั่นเอง
เมื่อชีวิตขึ้นไปอยู่ใน www
เว็บไซต์มีการวิวัฒนาการณ์อย่างต่อเนื่องในรอบ 10 ปีที่ผ่านมา จากแต่ก่อนในเว็บ1.0 (Web1.0) ที่จะมีแค่ไว้ใช้เพื่อนำข้อมูลที่ต้องการมาใส่ไว้ในเว็บเพจให้คนอื่นดูและไม่มีการตอบโต้กับผู้ใช้งานแต่อย่างใด ก้าวข้าวสู่โลกการใช้งานที่หลากหลายมากขึ้นในรูปแบบของเว็บ2.0 (Web2.0) เช่น การจ่ายเงินค่าน้ำค่าไฟผ่านเว็บไซต์ การประชุมงานออนไลน์ผ่านเว็บ รวมไปถึงการสั่งซื้อสิ่งของเครื่องใช้ต่างๆผ่านเว็บก็ทำได้เช่นกัน และเพราะการเข้าถึงได้ง่ายและการใช้งานที่ทำให้ชีวิตสะดวกสบายมากขึ้นนี่เองที่ทำให้ผู้คนส่วนใหญ่หันมาใช้งานเว็บไซต์เพื่อทำกิจวัตรประจำวันมากขึ้น แต่เหรียญนั้นมี 2 ด้าน ยิ่งมีคนใช้ประโยชน์จากเว็บมากขึ้นเท่าใด ก็ยิ่งมีผู้ไม่ประสงค์ดีต้องการหาผลประโยชน์จากคนที่ใช้เว็บมากขึ้นเท่านั้น ซึ่งกลุ่มผู้ไม่ประสงค์ดีเหล่านั้นก็คือ Hacker นั่นเอง
การโจมตีเว็บไซต์ต่างๆของ Hacker มักจะทำไปเพื่อการขโมยข้อมูลต่างๆของผู้ใช้งานในเว็บไซต์นั้นๆ หรือไม่ก็เพื่อให้เว็บไซต์นั้นๆไม่สามารถให้บริการได้เป็นต้น ซึ่งโดยปกติแล้วผู้ใช้ทั่วไปมักจะใช้ username และ password เดียวกันกับทุกเว็บไซต์ที่ได้สมัครไว้ไม่ว่าจะเว็บไซด์นั้นจะเก็บข้อมูลที่สำคัญหรือไม่สำคัญของผู้ใช้ก็ตาม ทำให้ Hacker อาจจะนำ username และ password จากการโจมตีเว็บไซต์ที่เก็บข้อมูลไม่สำคัญอะไรนักของผู้ใช้งาน ไปใช้หาข้อมูลบัตรเครดิตหรือข้อมูลทางการเงินที่สำคัญของผู้ใช้งานในเว็บไซต์อื่นก็เป็นได้ และการที่จะมาบังคับให้ผู้ใช้ทั่วไปสมัครเว็บไซต์ต่างๆโดยใช้ username และ password ไม่ซ้ำกันเลยก็คงเป็นไปได้ยาก ดังนั้นสิ่งที่สำคัญในการป้องกันเพื่อไม่ให้เกิดเหตุดังกล่าวได้ก็คือการป้องกันหรือตรวจจับการโจมตีเว็บไซต์แทนนั่นเอง
อุปกรณ์การป้องกันเว็บไซต์
เทคโนโลยีการป้องกันในปัจจุบันไม่ว่าจะเป็น Firewall, Intrusion Detection System/Intrusion Prevention System (IDS/IPS) ก็ไม่สามารถป้องกันเหตุที่เกิดจากทางเว็บไซต์ได้ เพราะการที่เราส่งข้อมูลเว็บไซต์ใดๆก็แล้วแต่ ก็เหมือนกับการที่เราส่งจดหมายไปยังเว็บไซต์นั้นโดย Firewall จะมีหน้าที่แค่ว่าเราส่งจดหมายนั้นไปได้ถูกที่ถูกทางมั้ย และ IDS/IPS ก็จะดูแค่ว่าลักษณะการเขียนจดหมายเพียงเท่านั้น ซึ่งเทคโนโลยีดังกล่าวไม่สามารถรับรู้ได้เลยว่าในจดหมายนั้นมีข้อความหรือสิ่งใดที่ประสงค์ร้ายต่อผู้รับหรือไม่ หรือถ้าฉลาดหน่อยเป็น Next Generation Firewall (NGFW) ซึ่งเป็นตัวที่ผนวกทั้ง Firewall + IDS/IPS และ Antivirus เข้าด้วยกัน ทำให้มันกลายเป็นว่าสามารถเหยียบไปทำงานที่ Layer 7 หรือก็คือสามารถแกะอ่านจดหมายได้ แต่ก็หาได้แต่เฉพาะเป็น Pattern ที่ถูกประกาศว่าเป็นการโจมตี (Signature) เท่านั้น แต่นอกเหนือจากนั้นก็จะไม่ทราบอะไรเช่นกัน ยกตัวอย่างเช่น NGFW สามารถรู้ได้ว่า
1 |
1' or 1=1 -- |
เป็น SQL Injection Attack แต่พอเขียนเป็น
1 |
dump' or 'aaaaa'='aaaaa' -- |
ตัว NGFW ก็จะไม่รู้ว่าเป็น Attack เป็นต้น
จึงได้มีการพัฒนา Web Application Firewall (WAF) ขึ้นมาเพื่อตรวจสอบข้อมูลข้างในจดหมายดังกล่าว (Layer 7 – HTTP Protocol Only) เปรียบเหมือนกับการที่เมื่อจดหมายถูกส่งมาถึงกล่องจดหมายหน้าบ้านแล้ว WAF ก็จะทำหน้าที่ต่อโดยการเปิดจดหมายนั้นเพื่อตรวจสอบข้อมูลภายใน เมื่อ WAF เห็นแล้วว่าข้อความภายในนั้นไม่มีจุดประสงค์ร้ายต่อผู้รับ(เว็บไซต์) ก็จะส่งจดหมายนั้นต่อไปยังผู้รับอีกทีหนึ่ง และอีกทั้งเรายังสามารถระบุหรือบอกกับ WAF ได้อีกด้วยว่าผู้รับสามารถอ่านจดหมายได้มากขนาดไหนในช่วงเวลาหนึ่ง (Limit Rate) เมื่อจดหมายเยอะถึงที่ได้ตั้งไว้ WAF ก็จะทำการถือไว้ให้ก่อนหรือไม่ก็สามารถทิ้งจดหมายที่เกินเข้ามาขึ้นอยู่กับการบอก WAF ไว้ ทำให้ผู้รับสามารถอ่านจดหมายหรือทำงานได้อย่างต่อเนื่องอีกด้วย
การที่มี WAF เข้ามาขวางหรือรับการใช้งานจากใครก็ไม่รู้ให้กับเว็บไซต์แทน ทำให้เว็บไซต์สามารถทำงานได้อย่างสะดวกมากขึ้นและลดความกังวลของผู้ดูแลได้อย่างมาก เพราะจริงๆแล้วบริษัทส่วนใหญ่มักจะมีทีมที่ดูแลการเขียนเว็บไซต์และทีมที่ดูแลเซอร์เวอร์ของเว็บไซต์ทำหน้าที่แยกจากกัน หรือบางครั้งทีมที่พัฒนาเว็บไซด์ดังกล่าวก็อาจจะเป็นบุคคลภายนอก (Outsource) ที่ถูกจ้างเข้ามาเพื่อพัฒนาเว็บไซด์นั้นๆ และเมื่อหมดสัญญาแล้วทางทีมผู้ดูแลเซอร์เวอร์ก็ต้องจัดการและดูแลเว็บไซต์ดังกล่าวต่อไปด้วยตัวเอง ซึ่งเมื่อเกิดเหตุการณ์โจมตีขึ้น ผู้ที่ต้องรับผิดชอบและแก้ไขเว็บไซต์กลับกลายเป็นผู้ดูแลระบบซึ่งไม่ได้มีความสามารถทางด้านโปรแกรมมิ่งเว็บไซต์มากนัก ทำให้การป้องกันหรือแก้ไขเป็นไปได้อย่างยากลำบากหรือบางครั้งอาจจะไม่สามารถแก้ไขได้เลยทีเดียว และสิ่งที่เสียไปจะไม่ใช่แค่ข้อมูลของผู้ใช้งานภายในเว็บไซต์เท่านั้น แต่จะรวมถึงการเสียชื่อเสียงที่ผู้ใช้งานไม่กล้าที่เข้ามาใช้งานเว็บไซต์ทำให้การใช้งานดังกล่าวลดลง และบางทีก็ยังต้องเสียค่าจ้างบุคคลภายนอกเพื่อให้เข้ามาแก้ไขซอร์ดโค้ด(Source code)ที่มีช่องโหว่ของการโจมตีดังกล่าวอีกด้วย
*** หมายเหตุ แต่ WAF ก็ไม่สามารถป้องกันการโจมตีของ Eternal Blue (MS17-010) ได้เช่นกัน เพราะมันไม่ใข่ HTTP Protocol นั่นเอง ต้องหวังพึ่งให้ NGFW ในการป้องกันหรือทำ Virtual Patching ให้แทนครับ
บทสรุป
เหนือสิ่งอื่นใด, การที่ WAF นั้นจะทำงานกรองหรือป้องกันการโจมตีของ Hacker ได้มากขนาดไหนก็ขึ้นอยู่กับการปรับแต่งให้เข้ากับสภาพแวดล้อมนั้นๆด้วยเช่นกัน เพราะ Environment ของแต่ละที่นั้นแตกต่างกัน Rule ที่ใช้ได้บางที่อาจจะใช้ไม่ได้กับอีกที่ได้เช่นกัน (การเกิด False Positivie จำนวนมากก็จะเกิดขึ้นตามมา) รวมถึงประสิทธิภาพของผู้ทำการปรับแต่งนั้นๆควรจะมีความสามารถหรือคิดถึงการโจมตีในรูปแบบต่างๆอย่างที่ Hacker ทำหรือคิดได้ เพื่อให้สามารถไล่ทัน Hacker ดังที่มีคำกล่าวไว้ว่า “รู้เขา รู้เรา รบร้อยครั้ง ชนะร้อยครั้ง” นั่นเอง