นักวิจัยด้านความปลอดภัยได้เผยแพร่โครงการ Project Zeroช่องโหว่ใหม่ที่เรียกว่า Specter และ Meltdown ทำให้โปรแกรมสามารถขโมยข้อมูลจากหน่วยความจำของโปรแกรมอื่น ๆ ได้ มันมีผลต่อสถาปัตยกรรม Intel, AMD และ ARM
ข้อบกพร่องนี้สามารถใช้ประโยชน์จากระยะไกลได้โดยไปที่เว็บไซต์ JavaScript รายละเอียดทางเทคนิคสามารถพบได้บนเว็บไซต์ RedHat , ทีมรักษาความปลอดภัยอูบุนตู
ข้อมูลรั่วไหลผ่านการโจมตีช่องทางด้านการดำเนินการเก็งกำไร (CVE-2017-5715, CVE-2017-5753, CVE-2017-5754 aka Spectre และ Meltdown)
พบว่าการโจมตีช่องทางด้านใหม่ส่งผลกระทบต่อโปรเซสเซอร์ส่วนใหญ่รวมถึงโปรเซสเซอร์จาก Intel, AMD และ ARM การโจมตีช่วยให้กระบวนการผู้ใช้ที่เป็นอันตรายสามารถอ่านหน่วยความจำเคอร์เนลและรหัสที่เป็นอันตรายในแขกที่มาอ่านหน่วยความจำ เพื่อแก้ไขปัญหาจำเป็นต้องมีการอัพเดตเคอร์เนล Ubuntu และไมโครโค้ดโปรเซสเซอร์ การอัปเดตเหล่านี้จะประกาศในอนาคตเกี่ยวกับความปลอดภัยของ Ubuntu เมื่อมีให้ใช้งาน
ตัวอย่างการใช้งานใน JavaScript
ในฐานะที่เป็นหลักฐานพิสูจน์แนวคิดของรหัส JavaScript ที่เขียนว่าเมื่อทำงานในเบราว์เซอร์ Google Chrome อนุญาตให้ JavaScript เพื่ออ่านหน่วยความจำส่วนตัวจากกระบวนการที่มันทำงาน
ระบบของฉันดูเหมือนจะได้รับผลกระทบจากช่องโหว่ของปีศาจ ฉันได้รวบรวมและดำเนินการพิสูจน์แนวคิดนี้ ( spectre.c
)
ข้อมูลระบบ:
$ uname -a
4.13.0-0.bpo.1-amd64 #1 SMP Debian 4.13.13-1~bpo9+1 (2017-11-22) x86_64 GNU/Linux
$ cat /proc/cpuinfo
model name : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz
$gcc --version
gcc (Debian 6.3.0-18) 6.3.0 20170516
จะลดช่องโหว่ Specter และ Meldown บนระบบ Linux ได้อย่างไร?
อ่านเพิ่มเติม: การใช้ Meltdown เพื่อขโมยรหัสผ่านในเวลาจริง
ปรับปรุง
การใช้Spectre & Meltdown Checker
หลังจากเปลี่ยนเป็น4.9.0-5
เคอร์เนลเวอร์ชันต่อไปนี้ @Carlos Pasqualini คำตอบเนื่องจากมีการอัปเดตความปลอดภัยเพื่อลด cve-2017-5754 บนเดเบียนยืด:
CVE-2017-5753 [bounds check bypass] aka 'Spectre Variant 1'
* Checking count of LFENCE opcodes in kernel: NO (only 31 opcodes found, should be >= 70)
> STATUS: VULNERABLE (heuristic to be improved when official patches become available)
CVE-2017-5715 [branch target injection] aka 'Spectre Variant 2'
* Mitigation 1
* Hardware (CPU microcode) support for mitigation: NO
* Kernel support for IBRS: NO
* IBRS enabled for Kernel space: NO
* IBRS enabled for User space: NO
* Mitigation 2
* Kernel compiled with retpoline option: NO
* Kernel compiled with a retpoline-aware compiler: NO
> STATUS: VULNERABLE (IBRS hardware + kernel support OR kernel with retpoline are needed to mitigate the vulnerability)
CVE-2017-5754 [rogue data cache load] aka 'Meltdown' aka 'Variant 3'
* Kernel supports Page Table Isolation (PTI): YES
* PTI enabled and active: YES
> STATUS: NOT VULNERABLE (PTI mitigates the vulnerability)
อัปเดต 25 ม.ค. 2018
spectre-meltdown-checker
สคริปต์เป็นแพคเกจอย่างเป็นทางการจากเดเบียนก็สามารถใช้ได้สำหรับ Debian ยืดผ่านพื้นที่เก็บข้อมูล backports บัสเตอร์และซิด
เก็งกำไร Store Bypass (SSB) - หรือที่เรียกว่า Variant 4
ระบบที่มีไมโครโพรเซสเซอร์ที่ใช้การประมวลผลแบบเก็งกำไรและการประมวลผลหน่วยความจำแบบอ่านก่อนที่จะทราบตำแหน่งของการเขียนหน่วยความจำก่อนหน้าทั้งหมดอาจอนุญาตให้เปิดเผยข้อมูลโดยไม่ได้รับอนุญาตแก่ผู้โจมตีด้วยการเข้าถึงของผู้ใช้
Rogue System Register Read (RSRE) หรือที่เรียกว่า Variant 3a
ระบบที่มีไมโครโปรเซสเซอร์ใช้การประมวลผลแบบเก็งกำไรและดำเนินการอ่านการลงทะเบียนระบบโดยไม่ได้รับอนุญาตอาจอนุญาตให้เปิดเผยพารามิเตอร์ของระบบต่อผู้โจมตีที่เข้าถึงผู้ใช้ในพื้นที่ผ่านการวิเคราะห์ช่องทางด้านข้าง
แก้ไข 27 กรกฎาคม 2018
NetSpectre: อ่านหน่วยความจำ Arbitrary ผ่านเครือข่าย
ในบทความนี้เราขอนำเสนอ NetSpectre การโจมตีครั้งใหม่บนพื้นฐานของ Spectre Variant 1 โดยไม่จำเป็นต้องมีรหัสควบคุมโดยผู้โจมตีบนอุปกรณ์เป้าหมายซึ่งส่งผลกระทบต่ออุปกรณ์หลายพันล้านรายการ เช่นเดียวกับการโจมตีจาก Spectre ในพื้นที่การโจมตีระยะไกลของเราจำเป็นต้องมีอุปกรณ์ Specter ในรหัสของเป้าหมาย เราแสดงให้เห็นว่าระบบที่มีอุปกรณ์ Spectre ที่จำเป็นในอินเตอร์เฟสเครือข่ายที่เปิดเผยหรือ API สามารถถูกโจมตีด้วยการโจมตี Specter ระยะไกลทั่วไปของเราทำให้สามารถอ่านหน่วยความจำโดยพลการบนเครือข่ายได้ ผู้โจมตีส่งคำขอที่ถูกสร้างขึ้นมาอย่างต่อเนื่องให้กับเหยื่อและทำการวัดเวลาตอบสนองเพื่อรั่วไหลของค่าลับจากหน่วยความจำของเหยื่อ