กลุ่มนักวิจัยด้านความปลอดภัยซึ่งมีส่วนร่วมในการตรวจจับช่องโหว่ Meltdown และ Spectre แรก พัฒนารูปแบบใหม่ของการโจมตีช่องทางของบุคคลที่สาม
การโจมตีครั้งนี้ ดำเนินการตามการวิเคราะห์เนื้อหาแคชของเพจซึ่งมีข้อมูลที่ได้รับ อันเป็นผลมาจากระบบปฏิบัติการเข้าถึงดิสก์ SSD และอุปกรณ์ล็อคอื่น ๆ
ไม่เหมือนกับการโจมตีของ Spectre ช่องโหว่ใหม่ไม่ได้เกิดจากปัญหาฮาร์ดแวร์แต่เกี่ยวข้องกับการใช้งานซอฟต์แวร์ของแคชของเพจเท่านั้น และปรากฏใน Linux (CVE-2019-5489), Windows และอาจเป็นระบบปฏิบัติการอื่น ๆ อีกมากมาย
โดยการจัดการการเรียกระบบ mincore (Linux) และ QueryWorkingSetEx (Windows) เพื่อกำหนดการมีเพจหน่วยความจำในแคชของเพจระบบผู้โจมตีโลคัลที่ไม่มีสิทธิ์สามารถติดตามการเข้าถึงหน่วยความจำบางส่วนของกระบวนการอื่น ๆ
การโจมตีช่วยให้คุณสามารถติดตามการเข้าถึงในระดับบล็อก 4 กิโลไบต์พร้อมความละเอียดเวลา 2 ไมโครวินาทีบน Linux (6.7 การวัดต่อวินาที) และ 446 นาโนวินาทีบน Windows (223 การวัดต่อวินาที)
แคชของเพจรวบรวมข้อมูลที่ค่อนข้างหลากหลายรวมถึงการแตกไฟล์ปฏิบัติการไลบรารีที่ใช้ร่วมกันข้อมูลที่โหลดลงดิสก์ไฟล์มิเรอร์ในหน่วยความจำ และข้อมูลอื่น ๆ ที่โดยทั่วไปเก็บไว้ในดิสก์และใช้โดยระบบปฏิบัติการและแอพพลิเคชั่น
การโจมตีนี้เกี่ยวกับอะไร?
การโจมตี ขึ้นอยู่กับข้อเท็จจริงที่ว่ากระบวนการทั้งหมดใช้แคชของหน้าระบบทั่วไปและการมีหรือไม่มีข้อมูลในแคชนี้สามารถกำหนดได้โดยการเปลี่ยนความล่าช้าในการอ่านข้อมูล ดิสก์หรืออ้างถึงการเรียกระบบที่กล่าวถึงข้างต้น
เพจที่แคชสามารถทำมิเรอร์ในพื้นที่ของหน่วยความจำเสมือนที่ใช้โดยกระบวนการต่างๆ (ตัวอย่างเช่นไลบรารีที่แบ่งใช้เพียงสำเนาเดียวเท่านั้นที่สามารถแสดงในหน่วยความจำฟิสิคัลซึ่งเป็นมิเรอร์ในหน่วยความจำเสมือนของแอ็พพลิเคชันต่างๆ
ในกระบวนการเลื่อนข้อมูลจากแคชของเพจและเติมข้อมูลเมื่อโหลดข้อมูลทั่วไปจากดิสก์ คุณสามารถวิเคราะห์สถานะของเพจที่คล้ายกันในหน่วยความจำเสมือนของแอปพลิเคชันอื่น ๆ
การเรียกระบบ mincore และ QueryWorkingSetEx ทำให้การโจมตีง่ายขึ้นอย่างมากโดยช่วยให้คุณสามารถกำหนดได้ทันทีว่าเพจหน่วยความจำใดจากช่วงที่อยู่ที่กำหนดอยู่ในแคชของเพจ
เนื่องจากขนาดของบล็อกที่ถูกตรวจสอบ (4Kb) มีขนาดใหญ่เกินไปที่จะกำหนดเนื้อหาต่อการวนซ้ำจึงสามารถใช้การโจมตีเพื่อการส่งข้อมูลที่แอบแฝงเท่านั้น
การลดความแข็งแกร่งของการดำเนินการเข้ารหัสโดยการติดตามพฤติกรรมของอัลกอริทึมประเมินรูปแบบการเข้าถึงหน่วยความจำทั่วไปของกระบวนการที่รู้จักหรือติดตามความคืบหน้าของกระบวนการอื่น
เค้าโครงของข้อมูลในหน่วยความจำที่ผู้โจมตีรู้จัก (ตัวอย่างเช่นหากทราบเนื้อหาพื้นฐานของบัฟเฟอร์ในตอนแรกเมื่อออกจากกล่องโต้ตอบการตรวจสอบสิทธิ์คุณสามารถกำหนด Arola ตามสัญลักษณ์กรรโชกในระหว่างการแทรกแซงของผู้ใช้ของคุณ)
มีวิธีแก้ปัญหานี้หรือไม่?
ถ้า หากมีวิธีแก้ปัญหาจาก Linux อยู่แล้ว การวิจัยประเภทนี้ช่วยในการตรวจหาปัญหาก่อนที่ผู้อื่นที่มีเจตนาที่เป็นอันตรายจะใช้ประโยชน์จากปัญหาเหล่านี้
สำหรับเคอร์เนลลินุกซ์ โซลูชันนี้พร้อมใช้งานเป็นแพตช์แล้วซึ่งพร้อมใช้งานแล้ว อธิบายและ บันทึกไว้ที่นี่.
ในกรณีของ Windows 10 ปัญหาได้รับการแก้ไขในรุ่นทดสอบ (Insider Preview Build) 18305
การประยุกต์ใช้งานจริงของการโจมตีระบบท้องถิ่นที่นักวิจัยแสดงให้เห็น ได้แก่ การสร้างช่องทางการส่งข้อมูลจากสภาพแวดล้อมที่แยกตัวออกมาการสร้างองค์ประกอบอินเทอร์เฟซบนหน้าจอ (เช่นกล่องโต้ตอบการตรวจสอบสิทธิ์) ความหมายของการกดแป้นพิมพ์และการกู้คืนของ สร้างรหัสผ่านชั่วคราวโดยอัตโนมัติ)