ความหมาย Zero-day (0day)
หมายถึงช่องโหว่ด้านความปลอดภัยในซอฟต์แวร์หรือฮาร์ดแวร์ที่ผู้ผลิตยังไม่ทราบมาก่อน และยังไม่มีการออกแพตช์หรือวิธีแก้ไขรองรับช่องโหว่นั้น
ดังนั้นผู้พัฒนามีเวลาศูนย์วันในการเตรียมแพตช์แก้ไขหลังจากช่องโหว่ถูกเปิดเผย (จึงเรียกว่า “ซีโร่เดย์”) ส่วน Zero-Day Exploit หมายถึงวิธีการโจมตีหรือโค้ดที่ผู้ไม่หวังดีใช้เพื่อเจาะระบบผ่านช่องโหว่ดังกล่าวก่อนที่จะมีการแก้ไขหรือแพตช์ออกมา กล่าวอีกนัยหนึ่ง คือการใช้ประโยชน์จากช่องโหว่ที่ยังไม่มีใครรู้จักและยังไม่ได้รับการอุดช่องโหว่นั้นเพื่อจู่โจมเป้าหมาย
ลักษณะสำคัญของ Zero-Day Exploit คือเป็นภัยคุกคามที่ร้ายแรงเนื่องจากไม่มีวิธีป้องกันที่เฉพาะเจาะจงในขณะโจมตี ผู้ใช้งานระบบอาจตกเป็นเป้าหมายได้แม้จะอัปเดตซอฟต์แวร์เป็นรุ่นล่าสุดแล้วก็ตาม และโปรแกรมป้องกันไวรัสหรือระบบความปลอดภัยทั่วไปที่อาศัยลายเซ็นของมัลแวร์มักไม่สามารถตรวจจับการโจมตีชนิดนี้ได้ในทันทีการโจมตีแบบซีโร่เดย์จึงอาจแฝงอยู่ในระบบเป็นเวลานานโดยไม่ถูกตรวจพบ เนื่องจากไม่ได้ทิ้งร่องรอยที่ตรงกับภัยที่รู้จักมาก่อน
Zero-Day Exploit มักเกี่ยวข้องกับกลุ่มแฮ็กเกอร์ระดับสูงหรือภัยคุกคามขั้นสูงแบบต่อเนื่อง (APT) ซึ่งรวมถึงหน่วยงานรัฐหรือองค์กรข่าวกรองที่มีทรัพยากรสูง เนื่องจากต้นทุนในการค้นหาหรือซื้อช่องโหว่ใหม่เหล่านี้มีราคาสูงมาก ทั้งยังต้องใช้ทักษะในการพัฒนาเครื่องมือโจมตีช่องโหว่เหล่านั้นด้วย
งานวิจัยของ RAND Corporation เคยระบุว่าผู้โจมตีที่มีความตั้งใจจริงสามารถหาซื้อช่องโหว่วันศูนย์ได้ในราคาที่เข้าถึงได้เสมอสำหรับเป้าหมายแทบทุกประเภท
แม้กระนั้น ในโลกความเป็นจริงการโจมตีไซเบอร์ส่วนใหญ่ยังคงอาศัยช่องโหว่ที่เป็นที่รู้จักและมีแพตช์แล้วมากกว่าที่จะใช้ช่องโหว่ซีโร่เดย์ (เนื่องจากช่องโหว่ซีโร่เดย์มีจำกัดและมีค่าใช้จ่ายสูง)
ประเภทของ Zero Day Exploit
ช่องโหว่ที่ถูกใช้ใน Zero-Day Exploit มีหลายรูปแบบ สามารถจำแนกตามลักษณะทางเทคนิคของช่องโหว่หรือผลที่เกิดจากการโจมตีได้ ดังนี้:
- ช่องโหว่หน่วยความจำ (Memory Corruption) – เป็นช่องโหว่ที่เกิดจากจุดบกพร่องในการจัดการหน่วยความจำของโปรแกรม เช่น บัฟเฟอร์ล้น (Buffer Overflow), การใช้งานหน่วยความจำหลังคืนค่า (Use-After-Free), การอ่าน/เขียนนอกขอบเขต (Out-of-Bounds) หรือการล้นแบบจำนวนเต็ม (Integer Overflow) เป็นต้น ช่องโหว่กลุ่มนี้พบว่าถูกใช้ในเหตุการณ์โจมตีซีโร่เดย์บ่อยที่สุด ในปี 2021 มีการรายงานช่องโหว่ซีโร่เดย์จำนวน 58 รายการ และกว่า 67% เป็นช่องโหว่จากบั๊กหน่วยความจำประเภทต่าง ๆ ดังกล่าว ช่องโหว่หน่วยความจำมักนำไปสู่อันตรายร้ายแรง เช่น การรันโค้ดที่ไม่ได้รับอนุญาตบนระบบเป้าหมาย (Remote Code Execution)
- ช่องโหว่ด้านตรรกะหรือการออกแบบ (Logic/Design Flaw) – เป็นข้อบกพร่องในตรรกะการทำงานของโปรแกรมหรือการออกแบบระบบที่อาจไม่เกี่ยวกับหน่วยความจำ แต่เปิดช่องให้ผู้โจมตีดำเนินการในสิ่งที่ควรจะทำไม่ได้ ตัวอย่างเช่น ช่องโหว่ CVE-2021-38000 ใน Google Chrome ซึ่งเป็นข้อผิดพลาดด้านตรรกะที่อนุญาตให้มีการเรียกใช้งาน URL ภายนอกผ่าน Chrome โดยไม่ต้องได้รับการกระทำจากผู้ใช้ (zero-click) ผลคือผู้โจมตีสามารถบังคับให้เบราว์เซอร์เปิดลิงก์ไปยังแอปอื่น (เช่น Samsung Browser) โดยที่เหยื่อไม่รู้ตัว googleprojectzero.github.io ช่องโหว่ลักษณะนี้อาจถูกใช้เพื่อข้ามขั้นตอนการยืนยันตัวตน หรือหลีกเลี่ยงกลไกความปลอดภัยบางอย่างของระบบ (เช่น ตรวจสอบไม่ถูกต้อง, ละเมิดเงื่อนไขก่อนหน้า) ทำให้ผู้โจมตีได้สิทธิหรือเข้าถึงทรัพยากรที่ไม่ควรเข้าถึง
- ช่องโหว่ยกระดับสิทธิ (Privilege Escalation) – ช่องโหว่ที่เปิดโอกาสให้ผู้โจมตีเพิ่มสิทธิ์ในการเข้าถึงระบบสูงขึ้นกว่าที่ควร ตัวอย่างเช่น ช่องโหว่ในเคอร์เนลของระบบปฏิบัติการที่อนุญาตให้โค้ดที่รันในสิทธิ์ผู้ใช้ทั่วไป (user) สามารถยกระดับเป็นผู้ดูแลระบบ (admin/root) ได้ ช่องโหว่ประเภทนี้มักพบในลักษณะ Zero-Day เมื่อผู้โจมตีเจาะเข้าระบบด้วยวิธีหนึ่งได้แล้ว ก็จะใช้ช่องโหว่ยกระดับสิทธิเพื่อควบคุมระบบอย่างสมบูรณ์ นอกจากนี้ ช่องโหว่ยกระดับสิทธิยังรวมถึงช่องโหว่หลบหนีจาก Sandbox หรือ VM (sandbox escape) ซึ่งทำให้มัลแวร์ที่ถูกจำกัดอยู่ในสภาพแวดล้อมเสมือน หลุดออกมาทำงานบนโฮสต์จริงได้ เป็นต้น
นอกเหนือจากประเภทหลัก ๆ ข้างต้น ช่องโหว่ซีโร่เดย์อาจอยู่ในรูปแบบอื่นด้วย เช่น ช่องโหว่การตรวจกำหนดสิทธิ์ (Authentication/Authorization Flaw), ช่องโหว่การตรวจสอบข้อมูลนำเข้า (Input Validation Flaw) ตลอดจนช่องโหว่เฉพาะทางในแอปพลิเคชันเว็บ (เช่น SQL Injection, Cross-Site Scripting) ที่ยังไม่ถูกค้นพบ แต่โดยแก่นแท้แล้ว หากช่องโหว่นั้นไม่ถูกเปิดเผยและไม่มีแพตช์ ช่องโหว่ใด ๆ ก็สามารถนับเป็น Zero-Day ได้หากถูกนำมาใช้โจมตี
พบกันต่อไป
Nontawatt. S