Call Us Now: 0-2530-2062-4

มาทำความรู้จักกับ Web Application Firewall (WAF)

สวัสดีครับวันนี้ผมจะมาอัปเดทเจ้าเทคโนโลยีในการปกป้อง Web Application ที่ชื่อว่า Web Application Firewall ให้ฟังครับหรือที่เราเรียกกันสั้นๆว่า (WAF) ผมออกเสียงเรียกมันว่า “ว๊อฟ” ครับ เรื่องราวความเป็นมามันก็เกิดมาจากการที่เทคโนโลยีเราก้าวไกลไปเรื่อยๆ จากเดิมนั้นเราจะเห็นว่า application ในองค์กรจะใช้การเชื่อมต่อกันแบบ Client – Server แต่ปัจจุบันนี้ก็ได้กลายมาเป็น Web application กันหมดแล้วเพราะฉะนั้นมันควรจะมีระบบอะไรซักอย่างที่ทำการปกป้อง Web applicationได้จริงๆแม้จะเป็น Web application ที่เราพัฒนาขึ้นมาเองครับ

ปัญหาเดิมๆที่เราเจอในการพยายามปกป้อง Web application ก็คือ

  • การปกป้อง Web application ที่ดีที่สุดคือการ secure coding หรือการเขียนโปรแกรม ให้ได้มาตรฐานความปลอดภัยนั่นแหละครับ แต่!! …ความเป็นจริงคือ 83% ของโปรเจค Application มักจะล้าช้าครับ หรือไม่เสร็จตามเวลาที่กำหนดไว้ครับ เพราะฉะนั้น secure coding ก็จะเอาไว้ทีหลังครับขึ้นระบบ Production กันก่อน!!
  • โปรเจค Application ต่างๆจะมีการเพิ่ม module หรือมีการเปลี่ยนแปลงบ่อยก็เลยทำให้ต้องมีการมานั่ง secure coding กันอยู่เรื่อยๆครับ ยิ่งเพิ่ม module เยอะงาน secure coding ก็จะเพิ่มเป็นเงาตามตัว
  • แต่ก่อนนี้เรามักจะนำ IPS/IDS เข้ามาวางขวางไว้เพื่อจับการโจมตีต่างๆก่อนที่มันจะวิ่งมาสู่ระบบ app ของเรา ปัญหาก็คือการแจ้งเตือนผิดพลาดเยอะ (false positive) จนเราเลิกดู Report มันซะเลยครับ แล้วไอ้ที่มันเป็นแบบนี้เพราะว่า IPS/IDS ถูกออกแบบมาเพื่อป้องการการโจมตีทาง network ซะเป็นส่วนใหญ่ ถ้าจะป้องกัน Web app ก็จะต้องรู้จักการทำงานของมันจริงๆ คราวนี้ก็มีเรื่องให้คิดแล้วล่ะครับเพราะว่า Web application ที่เป็น Package ก็มีมากมายหลายยี่ห้อเช่นพวก Oracle, SAP นี่ยังไม่รวมที่เขียนเองอีกนะครับ

แล้วแบบนี้จะปกป้องระบบ Web Application ของเรากันได้ยังไง?

ในที่สุดก็มีการจัดตั้ง Open Web Application Security Project (OWASP) ขึ้นมาครับซึ่งเป็นสังคม online ที่ตั้งขึ้นมา จุดประสงค์เพื่อทำให้การป้องกัน web application มันเป็นความจริงขึ้นมาให้ได้ (ฟังดูเหมือนเป็นภารกิจอะไรซักอย่างใช่ไหมครับ?) มันจำเป็นต้องทำกันแบบนี้ครับเพราะว่าการโจมตีทาง web app นี่มันเยอะจริงๆครับ ผมว่าเพื่อนๆคงจะเคยเห็นคำจำพวกนี้

คราวนี้ลองนึกดูนะครับว่าแต่ละชนิดก็มีวิธีโจมตีได้หลายแบบอีก เพราะฉะนั้นทาง OWASP ก็เลยแนะนำว่าให้ระบบ WAF นั้นจะต้องแก้ไขข้อบกพร่องข้างต้นรวมทั้งยังป้องกันพวกการโจมตีเหล่านี้ได้ อีกด้วย

แล้วตกลง Web Application Firewall คืออะไร?

WAF เป็นอาจจะเป็นได้ทั้ง software ที่เอามาลงไว้ใน server หรือเป็นพวกอุปกรณ์ appliance ที่หน้าตาคล้าย Firewall ไปที่เราเคยเห็นกันนี่แหละครับแต่ระบบภายในจะทำหน้าทีจับพวก HTTP Traffic ต่างๆเช่นพวกข้อมูลที่เป็น web services ที่ชอบวิ่งผ่าน port 80 กับ port 443 ส่วนข้อมูลที่อื่นๆมันก็จะไม่สนใจครับปล่อยผ่านไป แต่ความเก่งกาจของมันนั้นก็คือการที่มันถูกออกแบบมาเฉพาะเจาะจงในการป้องกัน การโจมตีที่เกิดขึ้นกับ Web Application นั่นเอง ซึ่งลำดับการทำงานของระบบจะเป็นวงจรแบบนี้ครับ

  • ประเมินระบบ : ระบบ WAF จะทำการ crawling หรือเข้าไปอ่าน web app ของเราทุกหน้า ตามที่เราได้ระบุ server ไว้ให้และจดจำไว้รวมทั้งเก็บข้อมูลพฤติกรรมการใช้งานของ user ทุกคน แล้วก็เก็บเอาไว้ทำ white-list เพื่อใช้ในการเปรียบเทียบแยกกันระหว่างการโจมตีกับการใช้งานธรรมดา และ หลังจากนั้นมันก็จะทำการประเมินความเสี่ยงของระบบ web app ของเรา ซึ่งในช่วงของการประเมินนี้ มักจะ config ระบบ WAF ให้ทำการ monitor traffic อย่างเดียวหรือยังไม่มีการ block traffic ใดๆทั้งสิ้น
  • ทำ Policy : หลังจากที่ระบบทำการประเมินมาระยะนึงแล้วก็มาถึงการทำ Policy ระบบส่วนใหญ่จะทำ Policy แบบ auto มาให้เราระดับนึงแล้วแต่จะไห้ดีก็ต้องจูนกันดีๆล่ะครับเพราะว่าหลังจากทำ Policy เสร็จเราจะเปิด active mode เพื่อให้ Firewall ทำการ block traffic ที่เป็นการโจมตีกันแล้ว ถ้าหากไม่จูนให้ดีๆมันอาจจะ block คำสั่งการใช้งานปกติได้ซึ่งจะทำให้เกิดความยุ่งยากกับชีวิตในภายหลังแน่ๆ ครับ
  • Monitor ระบบ: ทำ policy เสร็จแล้วก็จะถึงเวลาที่เรามาจัดกลุ่ม users ที่จะเข้ามาใช้งานระบบ WAF ครับ ที่ต้องจัดกลุ่มก็เพราะว่าระบบ WAF หนึ่งระบบก็จะสามารถป้องกันระบบ web app ในองค์กรตั้งแต่หนึ่งระบบ จนถึงหลายร้อยระบบคราวนี้ทีมที่จะเข้ามาเกี่ยวข้องก็อาจจะมีหลายทีมครับ เราก็จัด group user ให้เหมาะสม แล้วก็จัดการเปิด active mode ให้มัน block traffic การโจมตีต่างๆซะระหว่างนี้เราอาจจะต้องดูแลใกล้ชิดหน่อยครับ เผื่อมีอะไรผิดพลาด หลังจากนั้นเราก็ลอง monitor ระบบเพื่อดูรายละเอียดการทำงานต่างๆ
  • วัดผล & ทำรายงาน : หลังจากที่ เปิดให้ WAF ทำงานกันเต็มที่แล้วเราก็จะได้เห็นรายงานในเชิงลึก(โคด) ของการทำงานในด้านการ block traffic ที่เป็นการโจมตีหรือพวกพฤติกรรมการใช้งานของ user แปลกๆ เช่นมี user คนนึงพยายาม log-in หน้าแรกแล้วกระโดดไปหน้าทำรายการดึงข้อมูลใน database แบบนี้ก็ผิดปกติจากที่ระบบเคยเก็บพฤติกรรมเป็น white-list ไว้ และสุดท้ายก็เป็นการปรับแต่งรายงานให้ได้ข้อมูลตามที่เราต้องการ ส่วนใหญ่ระบบหลายๆยี่ห้อก็จะมี template มาไว้ให้รวมทั้งพวก Compliance ต่างๆเช่น HIPPA, PCI, และอื่นๆ ก็แล้วแต่จะเลือกกันครับ

 แล้วปกติเค้าวางมันไว้ตรงไหนของระบบ network?

จากรูปจะเห็นว่าข้อมูลจาก Internet วิ่งเข้ามาที่ Firewall ซึ่งปกติก็จะเปิด port 80 กับ port 443 ครับ ส่วนใหญ่แล้วก็จะวาง WAF ไว้ที่หน้า Data Center หรือข้างหน้า Web app ที่เราอยากจะปกป้องครับ

สรุปแล้วแล้วประโยชน์มันคืออะไร?

  •  ต้องการปกป้อง web app เนื่องจากมีการเพิ่ม-ลด module ทำ secure coding ไม่ทันขึ้น production WAF ช่วยได้แน่ๆ
  • ต้องการระบบที่มาตรวจจับกิจกรรมการใช้งาน web application ของ user ต่างๆ เพื่อใช้เป็นหลักฐานเช่นพวก Internet Banking
  • ต้องการนำมาปกป้องพวกรูปแบบการโจมตีเช่นพวก Cross-Site-Scripting, Buffer Overflow และอีกทั้งหลายแหล่ที่ได้กล่าวมา
  • ต้องการระบบเดียวที่ใช้ป้องกันได้หลาย app และหลายชนิดเช่นพวก web app ที่พัฒนาเองและพวก app packaged ต่างๆ
  • ต้องการลดต้นทุนการทำ secure coding สำหรับ server คิดว่าจ่ายเงินให้ vendor มาทำ secure code เพิ่มแล้วไม่คุ้ม

 ครับ!!! ประโยชน์ที่ยกตัวอย่างเท่าทีผมพอจะนึกออกตอนนี้ น่าจะพอทำให้เห็นภาพขึ้นบ้างไม่มากก็น้อยนะครับ ไว้ว่างๆผมจะมาเขียนเรื่องการนำไปใช้ใด้ได้ประโยชน์แบบละเอียดกว่านี้แล้ว กันนะครับ ส่วนวันนี้ผมขอตัวไปทำงานก่อนคับ บาย..

Leave a Reply

Address

BizTown LatPhrao
2521/7 LatPhrao Road, Wangthonglang, Bangkok 10310 Thailand
Phone: 0-2530-2062-4
Fax: 0-2530-2177
Website: http://www.mindterra.com
Email: info@mindterra.com

Login