นักวิจัยจากมหาวิทยาลัยเทคโนโลยีกราซ (ออสเตรีย) ได้เปิดเผยข้อมูลเกี่ยวกับวิธีการใหม่ของ โจมตีผ่าน Zombie Load 2.0 (CVE-2019-11135) ซึ่ง อนุญาตให้ดึงข้อมูลที่เป็นความลับจากกระบวนการอื่น ๆ, ระบบปฏิบัติการ, เครื่องเสมือนและวงล้อมที่ปลอดภัย (TEE, Trusted Execution Environment) ปัญหา มีผลกับโปรเซสเซอร์ Intel เท่านั้น มีการเสนอส่วนประกอบที่จะบล็อกปัญหาในการอัปเดตไมโครโค้ดเมื่อวานนี้
ปัญหานี้อยู่ในคลาสของ MDS (Microarchitectural Data Sampling) และเป็นเวอร์ชันที่ทันสมัยของการโจมตี ZombieLoad ซึ่งเปิดตัวในเดือนพฤษภาคม ซอมบี้โหลด 2.0, เช่นเดียวกับการโจมตีอื่น ๆ ของคลาส MDS ขึ้นอยู่กับการประยุกต์ใช้วิธีการวิเคราะห์ของบุคคลที่สามกับข้อมูลในโครงสร้างสถาปัตยกรรมจุลภาค (ตัวอย่างเช่นใน Line Fill Buffer และ Store บัฟเฟอร์ซึ่งข้อมูลที่ใช้ในกระบวนการจะถูกเก็บไว้ชั่วคราวเพื่อดำเนินการโหลดและจัดเก็บการดำเนินการ)
ตัวแปรใหม่นี้ โดย Zombieload อาศัยการรั่วไหลที่เกิดขึ้นเมื่อใช้กลไก TSA การยกเลิกแบบอะซิงโครนัส (TSA) ในส่วนขยาย TSX (Transactional Synchronization Extensions) ซึ่งให้วิธีการทำงานกับหน่วยความจำแบบทรานแซกชันซึ่งช่วยเพิ่มประสิทธิภาพของแอปพลิเคชันแบบมัลติเธรดเนื่องจากการยกเว้นแบบไดนามิกของการดำเนินการซิงโครไนซ์ที่ไม่จำเป็น (รองรับการทำธุรกรรมอะตอมซึ่งสามารถยอมรับหรือถูกขัดจังหวะได้)
ในกรณีที่ไฟดับการดำเนินการที่ดำเนินการกับพื้นที่การทำธุรกรรมของหน่วยความจำจะถูกย้อนกลับ การยกเลิกธุรกรรมจะทำแบบอะซิงโครนัสซึ่งจุดนั้นเธรดอื่นสามารถเข้าถึงแคชได้ซึ่งจะใช้ในพื้นที่หน่วยความจำธุรกรรมที่ถูกทิ้ง
ตั้งแต่จุดเริ่มต้นไปจนถึงการขัดจังหวะที่แท้จริง ธุรกรรมแบบอะซิงโครนัสและสถานการณ์อาจเกิดขึ้นที่ โปรเซสเซอร์ในระหว่างการดำเนินการเชิงคาดเดาของการดำเนินการ สามารถอ่านข้อมูลจากบัฟเฟอร์สถาปัตยกรรมจุลภาคภายในและถ่ายโอนข้อมูลได้ ไปสู่การดำเนินการที่เจาะจง
จากนั้นจะตรวจพบข้อขัดแย้งและการดำเนินการเก็งกำไรจะถูกละทิ้ง แต่ข้อมูลจะยังคงอยู่ในแคชและสามารถแยกออกได้โดยใช้วิธีการกู้คืนแคชผ่านช่องทางของบุคคลที่สาม
การโจมตีดังกล่าวทำให้เกิดการเปิดธุรกรรม TSX และสร้างเงื่อนไขสำหรับการหยุดชะงักแบบอะซิงโครนัส ในระหว่างที่เงื่อนไขของการรั่วไหลของเนื้อหาของบัฟเฟอร์ภายในที่เต็มไปด้วยข้อมูลจากการอ่านหน่วยความจำที่ดำเนินการในแกน CPU
การรั่วไหลจะ จำกัด อยู่ที่แกนทางกายภาพปัจจุบันของ CPU (ซึ่งรหัสของผู้โจมตีกำลังทำงานอยู่) แต่เนื่องจากบัฟเฟอร์ microarchitecture ถูกแชร์โดยเธรดที่แตกต่างกันในโหมด Hyper-Threading การดำเนินการของหน่วยความจำอาจรั่วไหลบนเธรดอื่นของ CPU
Intel บางรุ่นได้รับการเผยแพร่ที่คุณได้ทดสอบ การโจมตีของพวกเขาเป็นของโปรเซสเซอร์รุ่นที่แปดเก้าและสิบ Intel Core และ Pentium, Intel Celeron 5000, Intel Xeon E, Intel Xeon W และโปรเซสเซอร์ Intel Xeon รุ่นที่สองที่ปรับขนาดได้
รวมถึงโปรเซสเซอร์ใหม่ของ Intel ก็ใช้สถาปัตยกรรมขนาดเล็กเช่นกัน ทะเลสาบแคสเคด ยื่นในเดือนเมษายนในตอนแรกไม่ได้รับความอ่อนไหวต่อการโจมตี RIDL และ Fallout
นอกจาก Zombieload 2.0 แล้ว นักวิจัยยังพบว่าวิธีการป้องกันที่เสนอไว้ก่อนหน้านี้สามารถหลีกเลี่ยงได้ ต่อต้านการโจมตี MDS ตามการใช้คำสั่ง VERW เพื่อลบเนื้อหาของบัฟเฟอร์ microarchitecture เมื่อกลับจากเคอร์เนลไปยังพื้นที่ผู้ใช้หรือเมื่อโอนการควบคุมไปยังระบบแขก
แนวทางแก้ไขเพื่อป้องกันช่องโหว่รวมอยู่ในไฟล์ ฐานรหัสของ เคอร์เนลลินุกซ์ และรวมอยู่ในไฟล์ เวอร์ชัน 5.3.11, 4.19.84, 4.14.154, 4.9.201 และ 4.4.201 ด้วย มีการเผยแพร่การอัปเดตเคอร์เนล และไมโครโค้ด สำหรับการแจกแจงหลัก (Debian, SUSE / openSUSE, Ubuntu, RHEL, Fedora, FreeBSD) ปัญหาได้รับการระบุในเดือนเมษายนและการแก้ปัญหาได้รับการประสานงานโดย Intel กับผู้พัฒนาระบบปฏิบัติการ
วิธีที่ง่ายที่สุดในการบล็อก Zombieload 2.0 คือปิดการรองรับ TSX บน CPU โซลูชันเคอร์เนลของลินุกซ์มีตัวเลือกการรักษาความปลอดภัยหลายตัวเลือก