VA Scan และ Pentest สำคัญอย่างไร แล้วควรเลือกอะไรดี

22 กันยายน 2022

กิตติกร ประเสริฐศักดิ์
กิตติกร ประเสริฐศักดิ์ผู้ก่อตั้ง BorntoDev ที่เล็งเห็นถึงความสำคัญของการพัฒนาเทคโนโลยี โดยเน้นการถ่ายทอดที่เข้าใจง่ายจนมีผู้เรียนมากกว่า 2 แสนท่านทั่วประเทศ ด้วยประสบการณ์และความหลงไหลในการพัฒนาโปรแกรมมากกว่า 10 ปี

โลกที่หมุนเร็วขึ้น ทุกอย่างในชีวิตล้วนต้องพึ่งพาเทคโนโลยีต่าง ๆ ประเด็นเรื่องของ “ความปลอดภัยในระบบเทคโนโลยี” ก็เป็นเรื่องที่สำคัญแบบหลีกเลี่ยงไม่ได้ ดังนั้นแล้วในฐานะคนไอที การที่เราต้องพัฒนาระบบ หรือ สร้างสรรค์สิ่งต่าง ๆ การตรวจสอบหรือเข้าใจว่าช่องโหว่ของระบบที่เราพัฒนาขึ้นนั้นก็มีความสำคัญมากไม่แพ้กัน

ซึ่งคำถามต่อมาสำหรับใครหลาย ๆ คนพออ่านมาถึงตรงนี้ก็คือ “แล้วเราจะรู้ได้อย่างไร ว่าระบบเรามีช่องโหว่อะไรบ้างนะ ?” สำหรับวันนี้เราจะแนะนำให้รู้จักกับ  Vulnerability Assessment และ Penetration Test ไปพร้อมกันครับ

เริ่มต้นจาก Vulnerability Assessment

โดยคำ ๆ นี้เป็นคำที่เรียกวิธีการตรวจสอบ ค้นหาช่องโหว่ต่าง ๆ ด้านความปลอดภัยอย่างเป็นระบบ หลายครั้งเราจะเรียกสั้น ๆ ว่า (VA) ซึ่งผลลัพธ์ที่ได้จะ

ทำให้เราสามารถประเมิน วิเคราะห์ได้ว่าระบบของเรานั้นจะถูกโจมตีผ่านช่องทางใด ในรูปแบบใดได้บ้าง

การวิเคราะห์รูปแบบ Vulnerability Assessment นั้นจะดำเนินการสแกนตรวจสอบตั้งแต่การทำงานของ System, Server, ระบบ Network ต่าง ๆ, ระบบ หรือ อุปกรณ์รักษาความปลอดภัย จนไปถึง แอปพลิเคชันต่าง ๆ ที่สร้างขึ้น หรือ ที่ใช้งานว่ามีช่องโหว่อะไรนั่นเอง

สำหรับการตรวจสอบความปลอดภัยรูปแบบ VA Scan เพื่อค้นหาช่องโหว่นั้นจะช่วยให้เรารู้ และ ตอบคำถามกับตัวเองได้ว่า

“Configuration / Setting / การให้สิทธิ์ใดของ Software ที่เราใช้ เราตั้งค่าไว้ หรือ เราทำอยู่มีความเสี่ยง ช่องโหว่ด้านความปลอดภัยบ้าง ?”

“ทำให้เราทราบช่องโหว่ต่าง ๆ ที่อยู่ภายใน App / Web App ที่เราพัฒนาขึ้นว่ามีช่องโหว่พวก SQL Injection, Cross Site Scripting อะไรเหล่านี้ หรือ จนถึงมีช่องโหว่ต่าง ๆ ตาม List รายการซอฟต์แวร์ที่ไม่ปลอดภัย หรือเรียกว่าCommon Weakness Enumeration (CWE) หรือไม่ ?”

“และ ไม่ใช่แค่นั้น หากองค์กรเรามีข้อมูลสำคัญที่จะต้องปกป้อง เราจะมั่นใจอย่างไรว่าไม่เกิดปัญหาด้านความปลอดภัยในส่วนของ Database ที่เราใช้งาน ?”

โดยการทำ VA Scan ก็เป็นหนึ่งในตัวเลือกหลักที่จำเป็นอย่างมาก กรณีเราต้องการพัฒนาระบบไอทีขึ้นมา เพราะเป็นเสมือนตัวตรวจสอบภาพรวมความปลอดภัยทั้งหมด และ เป็นการ Double Check ได้ดีกับระบบที่เราพัฒนาขึ้น

ข้ามมารู้จักอีกตัวกับ Penetration Test

หรือที่ปกติเรามักจะเรียกกันว่า Pentest ตัวนี้เป็นอีกหนึ่งรูปแบบการทดสอบด้าน Security ทีไ่ด้รับความนิยมอย่างมากเช่นกัน

โดยไอเดียหลักของการทำ Pentest คือ “การจำลองสถานการณ์การโจมตีมายังระบบของเรา” ซึ่งเราสามารถสร้างรูปแบบสถานการณ์ที่หลากหลาย หรือ ประเมินความน่าจะเป็นต่าง ๆ ที่เกิดขึ้นได้

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

ซึ่งจากเป้าหมายหลักที่เราเห็น เราจะพบว่า “การประเมิน ตรวจสอบรูปแบบ Pentest นั้น เราจะเห็นความเสี่ยง ช่องโหว่ต่าง ๆ ทั้ง ช่องโหว่ที่เคยประกาศ

สาธารณะไปแล้วจากนักพัฒนา หรือ ผู้ทดสอบระบบอื่น ๆ  จนไปถึงการหาช่องโหว่ใหม่ ๆ ของระบบเราได้ด้วยเช่นกัน”

นอกจากเรื่องของช่องโหว่ด้าน Software / Hardware แล้ว หลายคนอาจจะยังไม่ทราบว่าการทำ Pentest ยังช่วยให้เราทราบช่องโหว่ในมุมมองของ Business Logic จากการทำงานต่าง ๆ ได้ด้วย

เพราะบางครั้งเรามักจะพบช่องโหว่เหล่านี้ตอนสร้างสถานการณ์ทดสอบ เช่น เมื่อเราสร้างระบบ Login เราจะสามารถกรอกรหัสผ่านผิดได้กี่ครั้ง หรือ บางเว็บไซต์ที่ไม่ได้ยืนยันตัวตนผ่านอีเมลเราจะมั่นใจได้อย่างไรว่าอีเมลนั้นเป็นของผู้ใช้งานจริง ๆ

ตลอดจนถึงบางร้านค้า หน่วยงานที่มีการใช้ระบบไอทีเข้ามาเป็นหนึ่งในบริการหลักของร้าน อาจจะพบได้ว่า “กรณีลูกค้าลืมรหัสผ่าน” แล้วไม่มี Business Logic เรื่องของความปลอดภัย พนักงานหน้าร้านอาจช่วยลูกค้าเปลี่ยนรหัสผ่านทั้ง ๆ ที่ไม่เคยได้รับการยืนยันตัวตนมาก่อน ตรงนี้ก็เป็นช่องโหว่ได้เช่นกัน

ซึ่งการใช้เพียงแค่ VA Scan อย่างเดียวเราจะไม่พบรายงานเหล่านี้ อย่างแน่นอนเพราะโดยปกติจะเป็นการค้นหา และ ตรวจสอบข้อมูล วิเคราะห์จาก Checklist แต่การประกบด้วยการตรวจสอบ Pentest เราจะพบถึงปัญหาได้แบบครอบคลุมมากยิ่งขึ้นนั่นเอง

สำหรับประเภทในการทดสอบแบบ Pentest นี้ก็มีตั้งแต่ Whitebox ที่ผู้ทดสอบรู้ข้อมูล การออกแบบระบบ จนถึง Source code ภายในทั้งหมด จนถึง Blackbox ที่ผู้ทดสอบทำการทดสอบในฐานะคนทั่วไปภายนอก หรือ ในฐานะผู้เจาะระบบซึ่งเป็นมุมมองที่สมจริงที่สุดเมื่อระบบถูกพัฒนา และ เผยแพร่ออกสู่ภายนอกนั่นเอง

ถ้าถามว่า เราควรเลือกแบบไหน ? และ ควรเริ่มต้นอย่างไรดี ?

คำตอบคือ “เราควรทำทั้ง 2 อย่าง ทั้ง VA Scan และ Pentest” เพราะการทำ VA Scan ทำให้เราเห็นรายการที่เป็นช่องโหว่ทั้งหมด และ มุมมองของการทำ

Pentest เราจะเห็นสถานการณ์จริงที่เกิดขึ้น รวมถึงความเสี่ยง และ ช่องโหว่อื่น ๆ ที่ VA Scan ตรวจสอบไม่ได้ด้วยข้อจำกัดของมุมมองของระบบอีกด้วย

แล้วถ้าตอนนี้เราต้องการที่จะเริ่มทำทั้ง Pentest และ VA Scan ในองค์กร หรือ ในระบบที่พัฒนาขึ้น ทางเลือกมีอยู่ 2 รูปแบบตรงไปตรงมาเลยคือ

  1. ดำเนินการจัดทำด้วยตัวเองภายในบริษัท หรือ ในทีมของเราเอง
  2. ว่าจ้างบริษัท หน่วยงานผู้เชี่ยวชาญด้าน Cybersecurity มาทำการตรวจสอบ

ซึ่งทั้งสองรูปแบบนี้ก็จะมีความแตกต่างกันออกไป กรณีที่เราดำเนินการจัดทำด้วยตัวเอง จะมีข้อดีคือเราสามารถตรวจสอบได้ตลอดเวลาจากผู้เชี่ยวชาญที่เราว่าจ้างมาภายในองค์กร แต่ก็จะมีข้อสังเกตที่ต้องรู้คือ หลายครั้งการทดสอบเรื่องของความปลอดภัย ก็จำเป็นต้องมีมุมมองที่หลากหลาย

บางครั้งการมาจากแค่ในองค์กรเดียวกันอาจทำให้มุมมองด้านความปลอดภัยไปในรูปแบบเดียวกัน และไม่ครบถ้วนกับทุกสถานการณ์ที่เกิดขึ้นจริงได้ โดยในส่วนนี้จะต้องแก้ด้วยมาตรฐานต่าง ๆ สำหรับการทดสอบความปลอดภัย

จนถึงเรื่องของต้นทุนในการดำเนินงาน เพราะการจ้างพนักงานหนึ่งคน หรือ จนไปถึงหนึ่งทีมเข้ามาในองค์กร ถ้าหากเราไม่ใช่หน่วยงานบริษัทขนาดใหญ่ มุมมองการพิจารณาเรื่องค่าตัวของนักทดสอบระบบ ก็ถือว่าเป็นต้นทุนที่องค์กรต้องคิดไว้เหมือนกัน

ส่วนการจ้างผู้เชี่ยวชาญภายนอกนั้นก็มีข้อดีในเรื่องของมุมมองในการตรวจสอบ รวมถึงรูปแบบการวิเคราะห์ หรือ รายงานที่มาจากบริษัทที่เชี่ยวชาญด้าน Cybersecurity จริง ๆ ที่จะได้มุมมองครบถ้วนมากกว่า แต่การคัดเลือกโปรไฟล์ ของทีมที่เราต้องการจ้างก็สำคัญไม่แพ้กัน ควรดูบริษัทที่มีความน่าเชื่อถือ ประกอบการพิจารณาด้วยในกรณีนี้

แต่ถ้าอยากทำเองจริง ๆ มีเครื่องมืออะไรแนะนำบ้าง ?

จริง ๆ แล้วถ้าหากมีขั้นต่ำอย่างน้อย ๆ ที่ให้ทุกองค์กรทำคงไม่พ้นการทำ VA Scan เพราะการสแกนรูปแบบนี้ทำงานด้วยระบบ Automation ที่ให้เราตั้งค่าเริ่มต้นไว้ ระบบจะทำการค้นหาช่องโหว่ต่าง ๆ ให้เรานั่นเอง

โดยเครื่องมือนั้นมีหลายรูปแบบทั้ง Open Source Tools จนไปถึง Commercial Tools ที่มีค่าบริการ ซึ่งก็แตกต่างกันไปตามฟีเจอร์ที่ใช้งาน เช่น OpenVAS กับ Nikto2 ที่เป็น VA Tools ทำ Scanning ได้ และใช้งานได้ฟรี

จนถึงตัวอื่น ๆ ที่ได้รับความนิยมเช่นกัน เช่น Netsparker, W3AF, Arachni, OpenSCAP และ Comodo HackerProof โดยแนะนำว่าให้ดูตามฟีเจอร์ที่เหมาะสมกับการใช้งานในการตรวจสอบขององค์กรเรา

ส่วนใครที่อยากดูรายการเครื่องมือ VA Scan ทั้งหมดแบบเต็ม ๆ ทาง OWASP.org เขาก็ได้ทำลิสต์รายการให้เราเลือกพิจารณาใช้งานแบบจัดเต็ม ที่ดูได้จากเว็บนี้ได้เลย คลิก โดยการทำ VA Scan แบบนี้อาจจะทำเดือนละ 1 ครั้ง หรือ มากกว่านั้นก็ได้เช่นกัน ส่วนการทำ Pentest อาจจะทำเป็นในรูปแบบรายปี หรือ ครึ่งปี ขึ้นกับความปลอดภัยของข้อมูลที่อยู่ภายในองค์กร

กรณีศึกษา ตัวอย่างการทำ VA Scan และ Pentest

ใครที่มาถึงตรงนี้แล้วอยากนำกระบวนการเหล่านี้ไปใช้ในองค์กร ก็จะขอมาลงรายละเอียดกันสักหน่อย โดยขั้นตอนแรกจากนิยาม และรูปแบบการทำงานทั้ง VA Scan และ Pentest เราจะทราบแล้วว่า ทั้งสองกระบวนการมีขั้นตอน หรือ จุดมุ่งหมายที่แตกต่างกันในหลายมิติ

โดยเริ่มที่ VA Scan ซึ่งโดยปกติเราจะมีขั้นตอนทั้งหมด 4 ขั้นในการทำได้แก่การ Vulnerability Identification (การระบุช่องโหว่) -> Analysis (วิเคราะห์) -> Risk Assessment (ประเมินความเสี่ยง) -> Remediation (แก้ไข)

เมื่อครบทั้ง 4 ขั้นตอนแล้ว ถามว่าจบกระบวนการเลยหรือไม่ คำตอบก็คือ “ไม่”  นั่นเอง เพราะหลังจากที่เราได้ทำการตรวจสอบไปแล้ว เราจะทำการวนซ้ำการทำงานในลักษณะนี้ไปเรื่อย ๆ เพื่อให้เราแน่ใจ เรื่องของความปลอดภัย

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

ขั้นตอนต่อมาจะเป็นการวิเคราะห์วิธีการทำงานของระบบเพื่อดูวิธีการประมวลผล การตอบสนอง จนไปถึงสาเหตุต่าง ๆ ของช่องโหว่ เช่น อาจจะเกิดการที่ซอฟต์แวร์นั้น ๆ ไม่ได้ถูกอัปเดต จนไปถึง Configuration บางอย่างก็ได้เช่นกัน

เมื่อเสร็จสิ้นเราจะเข้าสู่ขั้นตอนการประเมินความเสี่ยงโดยเป็นการให้คะแนนว่าช่องโหว่ไหนอันตราย ร้ายแรง ส่งผลกระทบต่อระบบ จนไปถึง Core Business มากกว่า และ ทำการแก้ไขตามมาตรการที่ได้จัดทำไว้นั่นเอง

ส่วนการทำ Pentest เป็นอย่างไร ?

ลักษณะขั้นตอนบางส่วนของ Pentest อาจมีความคล้ายกับ VA Scan ซึ่งมีขั้นตอนหลัก ๆ คือ Planning > Scanning > Gaining Access > Maintaining Access > Analysis & WAF Configuration

พูดง่าย ๆ คือ เริ่มต้นด้วยการวางแผน ขอบเขตการทำสอบความปลอดภัยต่าง ๆ ซึ่งในส่วนนี้จะรวมถึงวิธีการ ขั้นตอนที่ใช้ในการทดสอบ และ ในฐานะองค์กรที่ต้องการทดสอบ เราอาจจะต้องเตรียมข้อมูลให้กับนักทดสอบเพื่อใช้งานเช่น ซอฟต์แวร์ รุ่นที่ใช้ จนถึง Configuration ต่าง ๆ ในระบบบางส่วน เพื่อเป็นการกำหนดขอบเขตของงาน

เมื่อวางแผนเรียบร้อยเราจะดำเนินการสแกนด้วยเครื่องมือเพื่อให้เข้าใจลักษณะในการทำงาน และ การตอบสนองของ Application ต่าง ๆ ได้ เมื่อเรียบร้อยแล้วเราจะทำการโจมตีในขั้น Gaining Access ที่สามารถใช้สารพัดเทคนิค เช่น Cross-site Scripting (xss) จนไปถึงทำ SQL Injection ในการเจาะ งัด แก้ไขสิทธิ์การเข้าถึงต่าง ๆ ภายในระบบ ซึ่งรวมถึงทำให้ระบบของเราหยุดทำงานลงนั่นเอง

เมื่อเราได้เห็นช่อง หรือ เจาะระบบเรียบร้อยก็จะทำการ Maintaining Access หรือ ทำอย่างไรก็ได้ให้เราสามารถอยู่ในระบบได้นานที่สุด เช่นเดียวกับการที่เรานั้นเป็นโจรที่พยายามงัดเข้าไปในแหล่งสมบัติต่าง ๆ ถ้าเรานั้นอยู่ในสถานที่ดังกล่าวได้นาน (และไม่ถูกจับได้)  นั่นหมายความว่า เรามีเวลาในการขโมย หรือ ทำลายข้อมูลในระบบได้มากขึ้นนั่นเอง

สุดท้ายจะเป็นการทำ Report หรือ สร้างรายงานสรุปว่ามีช่องโหว่ใดบ้างที่สำคัญ สามารถเจาะเข้าผ่านช่องทางใดได้บ้าง มีข้อมูลอะไรที่ผู้เจาะระบบสามารถเข้าถึงได้ และนักเจาะระบบสามารถอยู่ในระบบได้นานเท่าไหร่โดยที่ไม่ถูกจับได้นั่นเอง

และ สุดท้ายจริง ๆ ถ้าไม่อยากทำเอง แต่ก็อยากตรวจสอบระบบความปลอดภัยในระบบของเราด้วย ?

ทาง NT cyfence เขามีแคมเปญให้เราได้สแกนช่องโหว่ฟรี สำหรับ บริษัท หรือ หน่วยงานที่สนใจถึง 5 รายอีกด้วยนะ สามารถทัก พูดคุย สอบถามกับทีม NT cyfence ที่เชี่ยวชาญด้าน Cybersecurity โดยเฉพาะก่อนก็ได้เช่นกัน

ได้ที่ลิงก์นี้ : https://www.cyfence.com/free-va-registration

หากใครต้องการที่จะเริ่มต้นองค์กรในก้าวแรก ๆ อย่างมั่นคง ในฐานะผู้เขียนบทความต้องบอกเลยว่า “เรื่องของความปลอดภ้ยเป็นเรื่องที่เราประณีประนอมไม่ได้จริง ๆ ครับ”

บทความที่เกี่ยวข้อง