Meltdown กับ Spectre การค้นพบช่องโหว่ขนาดใหญ่บนคอมพิวเตอร์ยุคปัจจุบัน!

Meltdown กับ Spectre การค้นพบช่องโหว่ขนาดใหญ่บนคอมพิวเตอร์ยุคปัจจุบัน!

ณ ตอนนี้ เมื่อพูดถึงเรื่องที่สะเทือนวงการเทคโนโลยีนั้น ก็คงจะหนีไม่พ้นการพบช่องโหว่ขนาดใหญ่บนซีพียู ที่ทำให้ระบบความปลอดภัยของคอมพิวเตอร์ในยุคปัจจุบันนั้นต้องสั่นคลอน! เมื่อทีมนักวิจัย Project Zero จาก Google ทำการวิจัยและวิเคราะห์ความปลอดภัยของระบบคอมพิวเตอร์ ได้ค้นพบช่องโหว่ด้านความปลอดภัยถึง 2 ตัว ที่ทำให้สามารถอ่านข้อมูลที่เป็นความลับต่างๆในเคอร์เนิล (Kernel) ของคอมพิวเตอร์โดยไม่ได้รับอนุญาติได้ ซึ่งในบทความนี้เราก็จะพาไปรู้จักกับบั๊กที่ว่าและความเสียหายที่อาจจะเกิดขึ้นจากบั๊กทั้งสองตัว

รู้จักกับ Meltdown และ Spectre

ขอบคุณรูปภาพจาก CC0.

เมื่อช่วงปลายปี 2016 ที่ผ่านมานั้น ทีมนักวิจัย Project Zero และทีมนักวิจัยจาก Graz University นั้น ได้รายงานการค้นพบช่องโหว่ด้านความปลอดภัยที่ชื่อว่า Meltdown (CVE-2017-5754) และ Spectre (CVE-2017-5753, CVE-2017-5715) ที่อยู่บนไมโครชิพของคอมพิวเตอร์และอุปกรณ์มือถือที่ผลิตออกมาหลังจากปี 1995 ซึ่งก็เรียกได้ว่าเกือบทุกเครื่องในยุคปัจจุบันเลยทีเดียว

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

Speculative Execution กลายเป็นจุดอ่อนของซีพียู

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

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

“จริงๆแล้ว ไม่มีข้อผิดพลาดใดๆในทฤษฎีของ Speculative Execution เลย แต่การเอาไปใช้ในทางที่ผิดต่างหาก” - Shuman Ghosemajumder, the CTO of Shape Security and a former product manager at Google

ข้อแตกต่างของ Meltdown และ Spectre

Google นั้นได้ออกมาอธิบายถึงข้อแตกต่างของบั๊กทั้งสองตัว ไว้ดังนี้

Meltdown breaks the most fundamental isolation between user applications and the operating system. This attack allows a program to access the memory, and thus also the secrets, of other programs and the operating system.

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

Spectre breaks the isolation between different applications. It allows an attacker to trick error-free programs, which follow best practices, into leaking their secrets. In fact, the safety checks of said best practices actually increase the attack surface and may make applications more susceptible to Spectre.

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

ตัวอย่างการทำงานของ Meltdown

จากในวิดีโอตัวอย่างเป็นการขโมยรหัสผ่านจากโปรแกรมอื่นๆที่อยู่ในคอมพิวเตอร์ โดย Meltdown Attack

เมื่อ patch ที่จะแก้บั๊กได้ กลับทำให้คอมพิวเตอร์ทำงานช้าลง!

ด้วยความที่บั๊กทั้งสองตัวนี้ อาศัยจุดอ่อนในขั้นการออกแบบไมโครชิพ หมายความว่าข้อบกพร่องของการออกแบบนั้นลึกไปถึงส่วนของฮาร์ดแวร์ ทำให้การเขียนซอฟต์แวร์มาแก้นั้นก็เป็นเพียงการแก้ปัญหาที่ปลายเหตุ ยิ่งไปกว่านั้นการปิดการทำงานของระบบ Speculative Execution สิ่งที่ตามมาก็คือซีพียูจะทำงานได้ช้าลง มากที่สุดถึง 17-30% เลยทีเดียว ขึ้นอยู่กับไมโครชิพที่ใช้และระบบปฏิบัติการ

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

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

จากการทดสอบความเร็วโดย Phoronix tested เกมออนไลน์อย่างเช่น Dota 2 หรือ Counter-strike พบว่าแทบไม่เห็นความแตกต่างเรื่องความเร็วเลย ทำให้แน่ใจได้ว่าถึงแม้จะอัปเดต patch แล้ว เกมในคอมพิวเตอร์ก็ไม่ได้ช้าลงมากนัก

แบบนี้เราจะทำอะไรได้บ้าง

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

สามารถอ่านเอกสารงานวิจัยอย่างละเอียดได้ที่ https://googleprojectzero.blogspot.com/

ขอบคุณข้อมูลจาก meltdownattack.com, popsci.com, bleepingcomputer.com, pcworld.com

อ่านบทความที่น่าสนใจอื่นๆได้ที่นี่

Learn More



Top