Advertisements

บั๊กร้ายแรงในซีพียูอินเทล กระทบรุ่นเก่าและใหม่ เมื่อแก้แล้วคอมฯ จะช้าลงมากสุด 30%

เว็บไซต์ The Register รายงานถึงการค้นพบข้อผิดพลาดด้านความปลอดภัยร้ายแรงถึงระดับชิป ในซีพียูของอินเทลที่ถูกผลิตขึ้นในช่วง 10 20 ปีที่ผ่านมา (ตั้งแต่ปี 1995) ซึ่งหากแก้ไขแล้ว คอมพิวเตอร์จะช้าลง 5 ถึง 30 เปอร์เซ็นต์

แบบเข้าใจง่าย

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

ขณะนี้ฝั่งลินุกซ์ได้ออกอัพเดตสำหรับเคอร์เนลมาแล้ว ส่วนของวินโดวส์คาดว่าจะทันใน Patch Tuesday ที่กำลังจะมา (ได้ปล่อยอัพเดตให้ Windows Insider ในแบบ fast-ring ไปแล้วเมื่อเดือนพฤศจิกายนและธันวาคมที่ผ่านมา) ขณะที่ฝั่ง macOS ยังไม่มีรายละเอียดแต่ก็ได้รับผลกระทบเช่นกัน

สำหรับลินุกซ์และวินโดวส์ จากการประเมินแล้ว การอัพเดตนี้จะทำให้ซีพียูทำงานช้าลง 5-30% ขึ้นอยู่กับรุ่นของซีพียูและโปรแกรมที่ใช้งาน ทั้งนี้กำลังอยู่ระหว่างการทดสอบว่าจะกระทบกับประสิทธิภาพของซีพียูมากน้อยเท่าไร

นอกจากจะกระทบกับคอมพิวเตอร์ตามบ้านแล้ว เซิร์ฟเวอร์ต่างๆ ที่ใช้ซีพียูของอินเทลก็ได้รับผลกระทบเช่นกัน แม้กระทั่ง Amazon EC2, Microsoft Azure และ Google Compute Engine เป็นต้น

อนึ่ง ซีพียูของ AMD ไม่ได้รับผลกระทบ AMD ให้ข้อมูลว่าซีพียูของตนไม่ได้รับผลกระทบ เนื่องจากมีสถาปัตยกรรมที่ต่างกัน

รายละเอียดทางเทคนิค

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

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

การแก้ไขสามารถทำได้โดยการแยกหน่วยความจำของเคอร์เนลออกจากหน่วยความจำของโปรเซสผู้ใช้อย่างสิ้นเชิง หรือที่เรียกว่า Kernel Page Table Isolation (KPTI)

การทำ KPTI มีข้อเสียคือต้องเสียเวลาในการสลับไปมาระหว่างแอดเดรสสเปซที่แยกกัน เมื่อมีการเรียก system call และ hardware interrupt กระบวนการนี้นอกจากจะเสียเวลาสลับไปมาแล้ว โปรเซสเซอร์ยังต้องล้างข้อมูลที่แคชไว้แล้วโหลดขึ้นมาใหม่จากหน่วยความจำด้วย จึงทำให้ซีพียูทำงานช้าลง

ที่มา: The Register

Advertisements

0 Comments Join the Conversation →


แสดงความคิดเห็น