พบการโจมตี Zombieload รูปแบบใหม่บนโปรเซสเซอร์ Intel แล้ว

นักวิจัยจากมหาวิทยาลัยเทคนิคกราซ (ออสเตรีย) เปิดเผย ข้อมูลเกี่ยวกับวิธีการโจมตีแบบใหม่ผ่านช่องทางบุคคลที่สาม Zombie Load 2.0 (CVE-2019-11135) ซึ่งช่วยให้คุณสามารถดึงข้อมูลที่เป็นความลับจากกระบวนการอื่น ระบบปฏิบัติการ เครื่องเสมือน และเครือข่ายที่มีการป้องกัน (TEE, Trusted Execution Environment) ปัญหานี้ส่งผลต่อโปรเซสเซอร์ Intel เท่านั้น ส่วนประกอบในการปิดกั้นปัญหา เสนอ เมื่อวานนี้ อัพเดตไมโครโค้ด.

ปัญหาอยู่ในคลาส MDS (Microarchitectural Data Sampling) และเป็นเวอร์ชันที่ทันสมัย ทำให้สาธารณะ ในเดือนพฤษภาคม การโจมตี ZombieLoad ZombieLoad 2.0 เช่นเดียวกับการโจมตี MDS อื่นๆ อาศัยการประยุกต์ใช้เทคนิคการวิเคราะห์ช่องทางด้านข้างกับข้อมูลในโครงสร้างไมโครสถาปัตยกรรม (เช่น Line Fill Buffer และ Store Buffer) ซึ่งจัดเก็บข้อมูลที่ใช้ในกระบวนการชั่วคราว การดำเนินการโหลดและจัดเก็บ) .

รูปแบบการโจมตี Zombieload ใหม่ ขึ้นอยู่กับ เกี่ยวกับการรั่วไหลที่เกิดขึ้นระหว่างการทำงานของกลไกสำหรับการหยุดชะงักแบบอะซิงโครนัสของการดำเนินการ (TAA, TSX Asynchronous Abort) นำไปใช้ในส่วนขยาย TSX (Transactional Synchronization Extensions) ซึ่งมีเครื่องมือสำหรับการทำงานกับหน่วยความจำทรานแซคชันซึ่งช่วยให้เพิ่มประสิทธิภาพของ แอปพลิเคชันแบบมัลติเธรดโดยกำจัดการดำเนินการซิงโครไนซ์ที่ไม่จำเป็นแบบไดนามิก (รองรับธุรกรรมอะตอมมิกที่สามารถยอมรับหรือยกเลิกได้) หากถูกขัดจังหวะ การดำเนินการที่ทำบนขอบเขตหน่วยความจำของทรานแซคชันจะถูกย้อนกลับ

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

การโจมตีเริ่มต้นที่การเปิดธุรกรรม TSX และสร้างเงื่อนไขสำหรับการหยุดชะงักแบบอะซิงโครนัส ในระหว่างที่เกิดเงื่อนไขสำหรับการรั่วไหลของเนื้อหาของบัฟเฟอร์ภายในที่เต็มไปด้วยข้อมูลจากการดำเนินการอ่านหน่วยความจำที่ดำเนินการบนแกน CPU เดียวกัน การรั่วไหลนี้จำกัดอยู่ที่คอร์ CPU ทางกายภาพในปัจจุบัน (ซึ่งโค้ดของผู้โจมตีกำลังทำงานอยู่) แต่เนื่องจากบัฟเฟอร์สถาปัตยกรรมขนาดเล็กถูกแชร์ระหว่างเธรดต่างๆ ในโหมด Hyper-Threading จึงเป็นไปได้ที่จะทำให้การทำงานของหน่วยความจำรั่วไหลในเธรด CPU อื่นๆ ได้

จู่โจม ภายใต้ โปรเซสเซอร์ Intel Core รุ่นที่ 5000, 2.0 และ XNUMX บางรุ่น รวมถึง Intel Pentium Gold, Intel Celeron XNUMX, Intel Xeon E, Intel Xeon W และ Intel Xeon Scalable เจนเนอเรชั่นที่สอง โปรเซสเซอร์ Intel ใหม่ที่ใช้สถาปัตยกรรมไมโคร Cascade Lake ที่เปิดตัวในเดือนเมษายน ซึ่งในตอนแรกไม่ไวต่อการโจมตีของ RIDL และ Fallout ก็เสี่ยงต่อการถูกโจมตีเช่นกัน นอกจาก Zombieload XNUMX แล้ว นักวิจัยยังระบุถึงความเป็นไปได้ในการข้ามวิธีการป้องกันที่เสนอไว้ก่อนหน้านี้จากการโจมตี MDS โดยอิงตามการใช้คำสั่ง VERW เพื่อล้างเนื้อหาของบัฟเฟอร์ไมโครสถาปัตยกรรมเมื่อกลับจากเคอร์เนลไปยังพื้นที่ผู้ใช้หรือเมื่อถ่ายโอนการควบคุมไปยัง ระบบแขก

รายงานของ Intel ระบุว่าในระบบที่มีโหลดต่างกัน ความสามารถในการดำเนินการโจมตีเป็นเรื่องยาก เนื่องจากการรั่วไหลจากโครงสร้างไมโครสถาปัตยกรรมครอบคลุมกิจกรรมทั้งหมดในระบบ และผู้โจมตีไม่สามารถมีอิทธิพลต่อแหล่งที่มาของข้อมูลที่แยกออกมาได้ เช่น สามารถรวบรวมเฉพาะข้อมูลที่เกิดขึ้นจากการรั่วไหลและพยายามระบุข้อมูลที่เป็นประโยชน์จากข้อมูลนี้ โดยไม่มีความสามารถในการสกัดกั้นข้อมูลที่เกี่ยวข้องกับที่อยู่หน่วยความจำเฉพาะโดยเจตนา อย่างไรก็ตาม นักวิจัยได้ตีพิมพ์ ใช้ประโยชน์จากต้นแบบทำงานบน Linux และ Windows และสาธิตความสามารถในการใช้การโจมตีเพื่อกำหนดแฮชรหัสผ่านของผู้ใช้รูท
บางที ดำเนินการโจมตีจากระบบเกสต์เพื่อรวบรวมข้อมูลที่ปรากฏในการทำงานของระบบเกสต์อื่น สภาพแวดล้อมของโฮสต์ ไฮเปอร์ไวเซอร์ และวงล้อม Intel SGX

แก้ไขเพื่อป้องกันช่องโหว่ รวมอยู่ด้วย ลงในโค้ดเบสเคอร์เนล Linux และรวมอยู่ในรุ่นต่างๆ 5.3.11, 4.19.84, 4.14.154, 4.9.201 และ 4.4.201. การอัปเดตเคอร์เนลและไมโครโค้ดได้รับการเผยแพร่แล้วสำหรับการแจกแจงหลัก (debian, SUSE/เปิดSUSE, อูบุนตู, RHEL, Fedora, FreeBSD). พบปัญหาในเดือนเมษายนและมีการประสานงานการแก้ไขระหว่าง Intel และผู้พัฒนาระบบปฏิบัติการ

วิธีที่ง่ายที่สุดในการบล็อก Zombieload 2.0 คือการปิดการใช้งานการสนับสนุน TSX ใน CPU การแก้ไขที่เสนอสำหรับเคอร์เนล Linux มีตัวเลือกการป้องกันหลายตัว ตัวเลือกแรกเสนอพารามิเตอร์ “tsx=on/off/auto” เพื่อควบคุมว่าจะเปิดใช้งานส่วนขยาย TSX บน CPU หรือไม่ (ค่าอัตโนมัติจะปิดใช้งาน TSX สำหรับ CPU ที่มีช่องโหว่เท่านั้น) ตัวเลือกการป้องกันที่สองเปิดใช้งานโดยพารามิเตอร์ “tsx_async_abort=off/full/full,nosmt” และขึ้นอยู่กับการล้างบัฟเฟอร์สถาปัตยกรรมขนาดเล็กระหว่างการสลับบริบท (แฟล็ก nosmt จะปิดใช้งาน SMT/Hyper-Threads เพิ่มเติม) เพื่อตรวจสอบว่าระบบเสี่ยงต่อช่องโหว่หรือไม่ sysfs จัดเตรียมพารามิเตอร์ “/sys/devices/system/cpu/vulnerabilities/tsx_async_abort”

นอกจากนี้ใน ปรับปรุง ไมโครโค้ด ถูกกำจัด อีกอันหนึ่ง จุดอ่อน (CVE-2018-12207) ในโปรเซสเซอร์ Intel ซึ่งถูกบล็อกในเวอร์ชันล่าสุดเช่นกัน ปรับปรุง เคอร์เนลลินุกซ์ ช่องโหว่ ช่วยให้ ผู้โจมตีที่ไม่มีสิทธิ์เริ่มการปฏิเสธการให้บริการ ทำให้ระบบค้างในสถานะ “ข้อผิดพลาดในการตรวจสอบเครื่อง”
โจมตีได้แก่ อาจมีความมุ่งมั่น จากระบบแขก

ที่มา: opennet.ru

เพิ่มความคิดเห็น