พวกเขาพัฒนาชุดของการโจมตีการกู้คืนแคชของ CPU ในเว็บเบราว์เซอร์โดยไม่ต้องใช้ JavaScript

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

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

การวัดโดยใช้เซิร์ฟเวอร์ DNS ภายนอกหรือ WebSocket เนื่องจากการใช้ระบบการจำแนกตามการเรียนรู้ของเครื่องเพียงพอที่จะทำนายค่าด้วยความแม่นยำ 98% ในสถานการณ์ที่เหมาะสมที่สุด (โดยเฉลี่ย 80-90%) วิธีการโจมตีได้รับการทดสอบบนแพลตฟอร์มฮาร์ดแวร์ต่างๆ (Intel, AMD Ryzen, Apple M1, Samsung Exynos) และได้รับการพิสูจน์แล้วว่าใช้งานได้หลากหลาย

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

สำหรับเซิร์ฟเวอร์ DNS ที่โฮสต์บนเครือข่ายอีเธอร์เน็ตเดียวกันความแม่นยำของตัวจับเวลาจะอยู่ที่ประมาณ 2 มิลลิวินาทีซึ่งเพียงพอที่จะทำการโจมตีช่องสัญญาณด้านข้าง (สำหรับการเปรียบเทียบ: ความแม่นยำของตัวจับเวลา JavaScript มาตรฐานในเบราว์เซอร์ Tor มี ลดลงเหลือ 100ms) สำหรับการโจมตีไม่จำเป็นต้องมีการควบคุมเซิร์ฟเวอร์ DNSเนื่องจากเวลาดำเนินการของการดำเนินการถูกเลือกเพื่อให้เวลาตอบสนองของ DNS ทำหน้าที่เป็นสัญญาณของการตรวจสอบความสมบูรณ์ก่อนกำหนด (ขึ้นอยู่กับว่าตัวจัดการข้อผิดพลาดถูกทริกเกอร์ก่อนหน้านี้หรือในภายหลัง) สรุปได้ว่าการดำเนินการตรวจสอบด้วยแคชเสร็จสมบูรณ์) ...

การโจมตีแบบ "สตริงและถุงเท้า" ครั้งที่สองได้รับการออกแบบมาเพื่อหลีกเลี่ยงเทคนิคการรักษาความปลอดภัย ซึ่ง จำกัด การใช้อาร์เรย์ JavaScript ระดับต่ำ แทนที่จะใช้อาร์เรย์ String และ Sock จะใช้การดำเนินการกับสตริงที่มีขนาดใหญ่มากซึ่งจะมีการเลือกขนาดเพื่อให้ตัวแปรครอบคลุมแคช LLC ทั้งหมด (แคชระดับบนสุด)

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

การโจมตี "CSS PP0" เวอร์ชันที่สามผ่าน HTML และ CSS และสามารถทำงานในเบราว์เซอร์ที่ปิดใช้งาน JavaScript. วิธีนี้ดูเหมือน "String and Sock" แต่ไม่ผูกมัดกับ JavaScript การโจมตีจะสร้างชุดตัวเลือก CSS ที่ค้นหาโดยมาสก์. บรรทัดดั้งเดิมที่ยอดเยี่ยมที่เติมแคช ถูกกำหนดโดยการสร้างแท็ก div ด้วยชื่อชั้นที่ใหญ่มากและn ซึ่งภายในมีชุดของ div อื่น ๆ ที่มีตัวระบุของตัวเอง

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


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

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

*

*

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