ใช่ Spectre สามารถข้ามโฮสต์ / แขกผู้เยี่ยมชม / โฮสต์และแขก / แขกผู้เข้าพักขอบเขตเพราะนี่คือข้อบกพร่องระดับ CPU ที่หมายความว่าข้อมูลที่อาจมีความสำคัญสามารถรั่วไหลออกมาในทุกสิ่งที่ทำงานบนแกน CPU
ข่าวส่วนใหญ่บนอินเทอร์เน็ตพูดถึงผู้ให้บริการคลาวด์ที่ได้รับผลกระทบที่เลวร้ายที่สุดเนื่องจากมีกลุ่มของระบบจำนวนมากที่ถูกจำลองเสมือนและอาจถูกใช้ในทางที่ผิดเพื่อรั่วไหลข้อมูลสำคัญ
ผู้ให้บริการรายใหญ่ส่วนใหญ่ควรได้รับการแก้ไขข้อบกพร่องในตอนนี้อย่างดีที่สุดเท่าที่จะทำได้ แต่นี่จะเป็นปัญหาที่อาศัยอยู่กับเราในบางเวลา
Security.SE มีคำถามและคำตอบที่ยอมรับได้เกี่ยวกับเรื่องนี้และกล่าวถึงของ VM:
ฉันกำลังใช้งานเครื่องเสมือน / ภาชนะบรรจุฉันมีความเสี่ยงเพียงใด?
ตามคำตอบของ Steffen Ullrich
- การโจมตีแบบ Meltdown ไม่ข้าม VMs เท่านั้นทำให้หน่วยความจำเคอร์เนลรั่วไหลไปยังกระบวนการโลคอล
- อสุรกายสามารถทำงานได้บน VMs
นอกจากนี้จากSteffen อีกครั้ง Meltdown และ Specter ทำงานกับคอนเทนเนอร์ได้เนื่องจากคอนเทนเนอร์อาศัยเคอร์เนลโฮสต์
VM ใช้ CPU จริงในระบบของคุณพร้อมกับคำแนะนำพิเศษบางอย่างที่ติดอยู่และสามารถเปลี่ยนเส้นทางได้ มันใช้แคชและคำแนะนำเดียวกับที่โฮสต์ทำ มันเป็นเพียงอีกชั้นหนึ่งภายใน CPU จริงในระบบของคุณ
การทำเวอร์ชวลไลเซชันนั้นทำได้เร็วเพียงเพราะใช้ฟิสิคัล CPU ที่มีค่า abstraction น้อยที่สุดเท่าที่จะเป็นไปได้และใช้ฮาร์ดแวร์ CPU เพื่อแยก สิ่งต่าง ๆ เช่น qemu สามารถทำการจำลองซึ่งปลอดภัยกว่าเพราะไม่ใช่ CPU ของฮาร์ดแวร์ แต่ช้ากว่ามากและแตกต่างจาก virtualization
จากSecurity.se บัญญัติโพสต์อีกครั้ง:
Spectre ทำงานในระดับที่แตกต่างกันและไม่อนุญาตให้เข้าถึงข้อมูลเคอร์เนลพื้นที่จากพื้นที่ผู้ใช้ ในการโจมตีครั้งนี้ผู้โจมตีใช้เทคนิคการคาดเดาเพื่อคาดการณ์คำสั่งที่ผิดพลาด โดยสรุปผู้ทำนายจะถูกบีบบังคับให้ทำนายผลลัพธ์ของสาขาที่เฉพาะเจาะจง (ถ้า -> จริง) ซึ่งส่งผลให้มีการขอการเข้าถึงหน่วยความจำนอกขอบเขตที่กระบวนการของเหยื่อจะไม่ร้องขอตามปกติ จากนั้นทางช่องด้านข้างดึงค่าของหน่วยความจำนี้ ด้วยวิธีนี้หน่วยความจำที่เป็นของกระบวนการของเหยื่อจะถูกรั่วไหลไปยังกระบวนการที่เป็นอันตราย
ดังนั้นเนื่องจาก VM ทำงานในฮาร์ดแวร์ CPU จริงและสิ่งที่ต้องทำคือเรียกใช้ลูปเฉพาะเพื่อ "ฝึกอบรม" เอ็นจินการประมวลผลแบบเก็งกำไร จากนั้นจะสามารถใช้เวลาที่แม่นยำในการดูแคชสำหรับรูปแบบเฉพาะของการเข้าถึงที่บ่งบอกถึงโฮสต์หรือกระบวนการเกสต์ (หรือ VM อื่น ๆ ) ที่ต้องการใช้ประโยชน์
ด้วยวิธีนี้หมายความว่าเครื่องจักรนั้นสามารถใช้ประโยชน์ได้ในทุกทิศทาง จากโฮสต์สู่ VM จาก VM สู่โฮสต์และจาก VM ถึง VM
ใช่มันไม่ง่ายเลยและเป็นเรื่องยากที่จะดึงออกมาเนื่องจากคอร์ VM CPU สามารถเปลี่ยนได้ตามต้องการของโฮสต์และโฮสต์สามารถจัดตารางงานในคอร์ต่าง ๆ ได้อย่างมีความสุข แต่ในระยะเวลานานพอมีข้อมูลเพียงพอ อาจมีการรั่วไหลเพื่อให้กุญแจความลับกับระบบหรือบัญชีที่สำคัญบางอย่าง ให้เวลาเพียงพอและซอฟต์แวร์บางอย่างที่ซ่อนเร้นอยู่ทุกอย่างเปิดได้
หากคุณต้องการ VM ที่ "ปลอดภัย" คุณต้องรับประกันว่าคอร์นั้นแยกจากกัน วิธีที่แท้จริงเพียงอย่างเดียวในการบล็อกการโจมตีนี้คือ "บังคับ" โฮสต์และ VM ให้ใช้คอร์บางตัวเพื่อไม่ให้ทำงานบนฮาร์ดแวร์เดียวกัน แต่จะทำให้ต้นทุนเพิ่มขึ้นอย่างมีประสิทธิภาพเนื่องจากคุณจะไม่สามารถ มี VMs จำนวนมากบนโฮสต์ที่กำหนด คุณจะไม่มีทางหนีจากการใช้ VMs มากกว่าที่คุณมี cores ซึ่งเป็นสิ่งที่ฉันคาดหวังว่าจะทำได้บนเซิร์ฟเวอร์ "low load" เนื่องจากระบบหลายระบบใช้งาน 90% ของชีวิต