Google แสดงให้เห็นถึงการใช้ประโยชน์จากช่องโหว่ของ Spectre โดยใช้ JavaScript ในเบราว์เซอร์

Google เปิดตัว หลายวันก่อน ต้นแบบการใช้ประโยชน์ต่างๆ ที่แสดงให้เห็นถึงความเป็นไปได้ในการใช้ประโยชน์จากช่องโหว่ ของคลาส Spectre เมื่อเรียกใช้โค้ด JavaScript ในเบราว์เซอร์ โดยไม่ต้องใช้วิธีการรักษาความปลอดภัยที่เพิ่มไว้ข้างต้น

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

ต้นแบบที่นำเสนอได้รับการออกแบบมาเพื่อ ระบบโจมตีด้วย โปรเซสเซอร์ Intel Core i7-6500U ในสภาพแวดล้อม Linux และ Chrome 88 แม้ว่าสิ่งนี้จะไม่รวมถึงการเปลี่ยนแปลงที่สามารถทำได้เพื่อใช้ประโยชน์ในสภาพแวดล้อมอื่น ๆ

วิธีการดำเนินการไม่เฉพาะเจาะจง โปรเซสเซอร์ Intel: หลังจากการปรับตัวที่เหมาะสม การใช้ประโยชน์ได้รับการยืนยันว่าทำงานบนระบบที่มีซีพียูของบุคคลที่สามรวมถึง Apple M1 ที่ใช้สถาปัตยกรรม ARM หลังจากปรับแต่งเล็กน้อยการใช้ประโยชน์ยังทำงานบนระบบปฏิบัติการอื่นและเบราว์เซอร์อื่น ๆ ที่ใช้เครื่องมือ Chromium

ในสภาพแวดล้อมที่ใช้โปรเซสเซอร์มาตรฐาน Chrome 88 และ Intel Skylake เราประสบความสำเร็จในการรั่วไหลของข้อมูลจากกระบวนการที่รับผิดชอบในการแสดงผลเนื้อหาเว็บในแท็บ Chrome ปัจจุบัน (กระบวนการแสดงผล) ที่ความเร็ว 1 กิโลไบต์ต่อวินาที นอกจากนี้ยังมีการพัฒนาต้นแบบทางเลือกเช่นการใช้ประโยชน์ที่ช่วยให้เสถียรภาพลดลงสามารถเพิ่มอัตราการรั่วไหลเป็น 8kB / s เมื่อใช้ตัวจับเวลา performance.now () ที่มีความแม่นยำ 5 ไมโครวินาที (0.005 มิลลิวินาที ). นอกจากนี้ยังมีการเตรียมตัวแปรที่ดำเนินการด้วยความแม่นยำในการจับเวลาหนึ่งมิลลิวินาทีซึ่งสามารถใช้เพื่อจัดระเบียบการเข้าถึงหน่วยความจำของกระบวนการอื่นในอัตราประมาณ 60 ไบต์ต่อวินาที

รหัสสาธิตที่เผยแพร่ประกอบด้วยสามส่วน:

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

เทคนิคการหาประโยชน์ที่นำเสนอ กำจัดตัวจับเวลาที่มีความแม่นยำสูง พร้อมใช้งานผ่าน performance.now () API และไม่มีการสนับสนุนประเภท SharedArrayBuffer ซึ่งช่วยให้คุณสร้างอาร์เรย์ในหน่วยความจำแบบแบ่งใช้

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

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

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

Google ได้เผยแพร่ต้นแบบของการโจมตีเพื่อแสดงความเป็นไปได้ของการโจมตี โดยใช้ช่องโหว่ระดับ Spectre และสนับสนุนให้นักพัฒนาเว็บใช้เทคนิคที่ลดความเสี่ยงจากการโจมตีดังกล่าว

ในขณะเดียวกัน Google เชื่อว่าหากไม่มีการปรับปรุงต้นแบบที่นำเสนออย่างมีนัยสำคัญจะเป็นไปไม่ได้ที่จะสร้างช่องโหว่สากลที่พร้อมสำหรับการสาธิตเท่านั้น แต่ยังนำไปใช้อย่างแพร่หลาย

Fuente: https://security.googleblog.com


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา