พบช่องโหว่ CPU ทำให้ Hacker เข้าถึงหน่วยความจำทำให้ข้อมูลรั่วไหลได้

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

ข้อบกพร่องนี้มีรูปแบบทางเทคนิคอยู่ 3 แบบ อ้างอิงจากหมายเลขช่องโหว่ 3 หมายเลข โดย 2 หมายเลขนั้นนักวิจัยได้ทำการตั้งชื่อว่า “อสุรกาย (Spectre)” และอีกหมายเลขหนึ่งตั้งชื่อว่า “หลอมละลาย (Meltdown)” ซึ่งทั้ง 3 แบบนี้อาจส่งผลกระทบ ดังนี้

  1. การเพิ่มสิทธิพิเศษ
  2. การรั่วไหลของข้อมูลจากหน่วยหน่วยความจำสำคัญ
  3. การแก้ไขเพื่อทำให้ประสิทธิภาพการทำงานลดลง

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

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

รูปแบบที่ 1 : ยิงไปยังสาขาย่อย (CVE-2017-5715, อสุรกาย)

ช่องโหว่นี้เกิดจากการเปลี่ยนแปลงของ CPU ในการคาดเดาคำสั่งล่วงหน้า ซึ่งทาง Intel ได้กล่าวว่า “การคาดเดาคำสั่งล่วงหน้าทำให้ระบบประมวลผลทำงานนานขึ้น ก่อนที่จะดำเนินไปตามเส้นทางที่ถูกต้อง ซึ่งเรื่องนี้เป็นที่รู้กันดี” ช่องโหว่นี้เป็นการแทรกแซงการคาดเดาคำสั่งล่วงหน้า ซึ่งการทำงานของ kernel อาจได้รับการโจมตีจาก Hacker ทำให้มีสิทธิ์เข้าถึงข้อมูลเชิงลึกได้

รูปแบบที่ 2 : สิทธิในการตรวจสอบการเข้าถึง(CVE-2017-5753, อสุรกาย)

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

รูปแบบที่ 3 : ขโมยการโหลดข้อมูลแคช (CVE-2017-5754, การหลอมละลาย)

ช่องโหว่นี้เกิดจาก CPU ต้องการอ่านหน่วยความ kernel ใน userspace โดยไม่มีผลกระทบ หรือทำให้ระบบเข้าใจผิดของโค้ดที่รันในพื้นที่ kenel รายละเอียดทั้งหมดของรูปแบบทั้ง 3 นี้ เขียนโดยผู้เชี่ยวชาญด้านวิศวคอมพิวเตอร์ และนักวิเคราะห์มัลแวร์ Anders Fogh เดือนกรกฏาคม 2560

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

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

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

การประเมินความเสี่ยง และการดำเนินการทำได้โดย เริ่มจากการพิจารณาถึงการแข้ไขปัญหาในระดับสูง ได้แก่ อุปกรณ์ของ multi-tenant เช่น

  1. Xaas-ระบบคลาวด์, เครื่องเสมือน และการบริการจากภายนอก
  2. อุปกรณ์ต่างๆ
  3. Supply Chain ที่มีการอัพเดทอัตโนมัติ
  4. เซิร์ฟเวอร์แอพพลิเคชั่นที่สามารถรันแอพพลิเคชั่นเมื่อมีการอัพโหลดไฟล์ หรือการ JumpHost
  5. ชุดอุปกรณ์ในการพัฒนาแอพพลิเคชั่น
  6. อุปกรณ์ของผู้ใช้ทุกประเภท

การแก้ไขปัญหาระดับปานกลาง ได้แก่ อุปกรณ์ single-tenant ซึ่งอาจรวมถึงภารกิจที่ไม่สำคัญของอุปกรณ์ multi-tenant เช่น

  1. Internal Clouds ที่ไม่ได้เชื่อมต่อกับภายนอก
  2. ผู้ใช้ที่ได้รับการยกเว้น, ผู้ใช้ที่สามารถเข้าถึงข้อมูลได้ส่วนตัว หรือเข้าถึงข้อมูลลับได้, นักพัฒนา
  3. โครงสร้างพื้นฐานที่จำกัดการเข้าถึง เช่น ฐานข้อมูล, เซิร์ฟเวอร์แอพพลิเคชั่น ที่ไม่สามารถอัพโหลดไฟล์ได้

การแก้ไขปัญหาระดับต่ำได้แก่ ภารกิจที่ไม่สำคัญ, อุปกรณ์ single-tenant เช่น

  1. การใช้งานร่วมกันที่จำกัดการเข้าถึง
  2. เครือข่ายและอุปกรณ์รักษาความปลอดภัย
  3. อุปกรณ์ที่ติดตั้งภายใน

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

เพื่อแก้ไขช่องโหว่ของ CPU นี้ ทีมรักษาความปลอดภัยจะต้องทำการตรวจสอบแหล่งข้อมูลของผู้ผลิตอุปกรณ์ และแอพพลิเคชั่น เพื่อทำการขอรับแพทช์อัพเดท จากนั้นควรทำการทดสอบแพทช์ของ microcode ไม่ว่าจะเป็น แพทช์ระบบปฏิบัติการสำหรับ Host และ Guest

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

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

ที่มา : Security Intelligence