Meltdown/Spectre: รู้จัก ตรวจสอบและป้องกันช่องโหว่

สรุปย่อ
นักวิจัยด้านความปลอดภัย Jann Horn จาก Google Project Zero และคณะวิจัยร่วมจากมหาวิทยาลัยและบริษัทด้านความปลอดภัยได้ประกาศการค้นพบช่องโหว่ใหม่ที่มีความร้ายแรงสูง โดยมีที่มาจากกระบวนการทำงานที่อยู่ในหน่วยประมวลผลกลาง (CPU) ซึ่งส่งผลกระทบต่อคอมพิวเตอร์เกือบทุกเครื่องที่มีการใช้ซีพียูในรุ่นที่มีช่องโหว่ รวมไปถึง คอมพิวเตอร์ส่วนบุคคล, อุปกรณ์พกพาและระบบคลาวด์

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

สำหรับช่องโหว่ Meltdown (CVE-2017-5754 หรือ Variant 3) นั้น มีที่มาในเบื้องต้นจากกระบวนการทำงานหนึ่งของซีพียูที่เรียกว่า speculative execution ซึ่งเป็น "การทำงานล่วงหน้า" ในชุดคำสั่งใดๆ ไปก่อนจนกว่าจะมีการพิสูจน์จากเงื่อนไขที่ควบคุมชุดคำสั่งนั้นๆ ว่าเงื่อนไขถูกต้องจริง โดยมีพฤติกรรมในการนำข้อมูลเข้าและออกจากจากหน่วยความจำอย่างไม่มีการควบคุมและข้ามผ่านกระบวนการใดๆ ที่คอยควบคุมการเข้าถึงข้อมูลอยู่

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

ในส่วนของช่องโหว่ Spectre นั้น ตัวช่องโหว่เองก็มีการใช้ประโยชน์จาก speculative execution แต่ด้วยลักษณะที่ต่างออกไป 2 ลักษณะ

ลักษณะที่ 1 (Variant 1): ฟีเจอร์ speculative execution จะถูกใช้ในลักษณะที่คล้ายกับ Meltdown แต่มีเป้าหมายอยู่เพียงในระดับโปรเซส ซึ่งทำให้เกิดการเข้าถึงข้อมูลเกินขอบเขตที่ได้รับอนุญาตให้เข้าถึงได้
ลักษณะที่ 2 (Variant 2): ด้วยการทำงานของฟีเจอร์ speculative execution ผู้โจมตีสามารถบังคับให้เกิด "การทำงานหน้าล่วงหน้า" ในโค้ดของโปรเซสใดๆ ที่มีการทำงานอยู่ในหน่วยซีพียูเดียวกัน แล้วใช้วิธีการใน Variant 1 เพื่อเข้าถึงข้อมูลของโปรเซสอื่นๆ ที่กำลังประมวลผลอยู่ได้

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

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

ในขณะนี้ไม่มีการตรวจพบการใช้ช่องโหว่ดังกล่าวในการโจมตีจริง
อุปกรณ์/ระบบที่ได้รับผลกระทบ
อุปกรณ์และระบบที่ได้รับผลกระทบนั้นสามารถแย่งตามช่องโหว่ได้ดังนี้

ช่องโหว่ Meltdown จะมีอยู่ในอุปกรณ์ที่ใช้ซีพียู Intel ที่ถูกผลิตตั้งแต่ปี 1995 (ยกเว้น Intel Intanium และ Intel Atom ก่อนหน้าปี 2013) รวมไปถึงซีพียู ARM ในบางรุ่น อย่างไรก็ตามในเวลานี้ยังไม่มีความแน่ชัดว่าซีพียู AMD นั้นได้รับผลกระทบจากช่องโหว่นี้หรือไม่
ช่องโหว่ Spectre จะมีอยู่ในอุปกรณ์ทุกอุปกรณ์ที่ใช้ซีพียู Intel, AMD และ ARM

ขั้นตอนแนะนำและแผนในการตอบสนองการเกิดขึ้นของช่องโหว่

ตรวจสอบผลกระทบของช่องโหว่กับอุปกรณ์ที่มีอยู่ โดยสำหรับผู้ใช้งานระบบปฏิบัติการวินโดวส์สามารถใช้โปรแกรม SpecuCheck หรือโมดูลของ powershell ชื่อ SpeculationControl เพื่อตรวจสอบการมีอยู่ของช่องโหว่ได้ และสำหรับผู้ใช้งานระบบปฏิบัติการลินุกซ์ก็สามารถใช้โปรแกรม spectre-meltdown-checker ในการตรวจสอบการมีอยู่ของช่องโหว่ได้เช่นเดียวกัน  
หากไม่แน่ใจว่าได้รับผลกระทบจากช่องโหว่หรือไม่ หรือไม่สามารถใช้โปรแกรมในการตรวจสอบการมีอยู่ของช่องโหว่ได้ ให้ทำการตรวจสอบจากประกาศของผู้ผลิตฮาร์ดแวร์และบริการตามรายการดังต่อไปนี้  
ดำเนินการแพตช์ช่องโหว่โดยพิจารณาตามความจำเป็น เนื่องจากแพตช์ของช่องโหว่อาจส่งผลต่อประสิทธิภาพการทำงานของระบบที่น้อยลงและอาจไม่ได้ช่วยป้องกันการโจมตีช่องโหว่ในทุกกรณี
ติดตามข่าวสารด้านความปลอดภัยเพื่อตรวจสอบแพตช์ในรุ่นใหม่ๆ ซึ่งอาจมีการแก้ปัญหาในเรื่องของประสิทธิภาพการทำงานและการป้องกันช่องโหว่

แหล่งอ้างอิง

Google Online Security Blog.

Read more 1 Comment