2 คะแนน โดย GN⁺ 2025-01-29 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

SLAP: การโจมตีแบบคาดเดาข้อมูล (data Speculation attacks via Load Address Prediction)

  • การโจมตี SLAP เป็นการโจมตีแบบ speculative execution รูปแบบใหม่ที่เกิดขึ้นบน CPU Apple Silicon รุ่น M2/A15
  • ใช้ Load Address Predictor (LAP) เพื่อคาดเดาที่อยู่หน่วยความจำถัดไปจากรูปแบบการเข้าถึงหน่วยความจำ เพื่อเพิ่มประสิทธิภาพ
  • หากคาดเดาผิด CPU อาจประมวลผลข้อมูลที่ไม่ควรเข้าถึงผ่านการทำ speculative execution ซึ่งก่อให้เกิดความเสี่ยงด้านความปลอดภัย
  • มีการสาธิตกรณีจริงที่ผู้โจมตีระยะไกลสามารถกู้คืนเนื้อหาอีเมลและพฤติกรรมการท่องเว็บได้จากเบราว์เซอร์ Safari

FLOP: การคาดเดาผลลัพธ์ของการโหลดที่ผิดพลาด (False Load Output Predictions)

  • การโจมตี FLOP เป็นการโจมตีแบบ speculative execution อีกรูปแบบหนึ่งบน CPU Apple M3/A17 ที่เกิดจากการคาดเดาการพึ่งพาข้อมูล
  • ใช้ Load Value Predictor (LVP) เพื่อคาดเดาค่าข้อมูลที่ระบบย่อยหน่วยความจำจะส่งกลับมา เพื่อเพิ่มประสิทธิภาพ
  • หากคาดเดาผิด อาจเปิดพื้นผิวการโจมตีที่ข้ามการตรวจสอบสำคัญในตรรกะของโปรแกรมเพื่อความปลอดภัยของหน่วยความจำ และทำให้ความลับที่เก็บอยู่ในหน่วยความจำรั่วไหลได้
  • มีการสาธิตการโจมตีที่กู้คืนประวัติตำแหน่ง เหตุการณ์ในปฏิทิน ข้อมูลบัตรเครดิต เป็นต้น จากเบราว์เซอร์ Safari และ Chrome

เดโม

  • การรั่วไหลของข้อมูลกล่องจดหมายเข้าของ Proton Mail: ฝึก LVP ของ CPU M3 ด้วยโค้ด JavaScript ภายใน WebKit เพื่อนำเนื้อหาในกล่องจดหมายเข้ามาไว้ใน address space
  • อ่าน The Great Gatsby: การสาธิต proof of concept ที่ใช้ LAP บน CPU Apple M2 เพื่อกู้คืนสตริงลับ
  • อ่าน Harry Potter: การสาธิต proof of concept ที่ใช้ LVP บน CPU Apple M3 เพื่อคาดเดา array index ที่ผิดพลาดและอ้างอิงอักขระของสตริง

คณะผู้วิจัย

  • Jason Kim, Jalen Chuang, Daniel Genkin (Georgia Institute of Technology)
  • Yuval Yarom (Ruhr University Bochum)

FAQ ของ SLAP และ FLOP

Is my Apple device affected?

  • Mac โน้ตบุ๊ก: ทุกรุ่นที่ออกตั้งแต่ปี 2022 เป็นต้นมา (MacBook Air, MacBook Pro)
  • Mac เดสก์ท็อป: ทุกรุ่นที่ออกตั้งแต่ปี 2023 เป็นต้นมา (Mac Mini, iMac, Mac Studio, Mac Pro)
  • iPad: iPad Pro, Air, Mini ทุกรุ่นที่ออกตั้งแต่เดือนกันยายน 2021 เป็นต้นมา
    • Pro รุ่นที่ 6 และ 7, Air รุ่นที่ 6, Mini รุ่นที่ 6
  • iPhone: ทุกรุ่นที่ออกตั้งแต่เดือนกันยายน 2021 เป็นต้นมา
    • iPhone 13, 14, 15, 16 ทุกรุ่น และ SE รุ่นที่ 3

Why are the SLAP and FLOP attacks significant?

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

How can I defend against SLAP and FLOP?

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

What about other processor vendors?

  • ยังไม่พบสัญญาณของ SLAP หรือ FLOP ในผลิตภัณฑ์ของ Intel, AMD, Qualcomm, Ampere เป็นต้น

What about other web browsers?

  • ยังไม่ได้ทดสอบเบราว์เซอร์อื่น เช่น Firefox

Can I detect if someone is using SLAP or FLOP on my device?

  • SLAP และ FLOP เป็นการโจมตีที่อาศัยไมโครสถาปัตยกรรม จึงไม่ทิ้งร่องรอยไว้ใน system log

Are any malicious actors abusing SLAP or FLOP in the wild?

  • จนถึงขณะนี้ยังไม่มีหลักฐานว่า SLAP หรือ FLOP ถูกนำไปใช้จริงในการโจมตี

When did you notify Apple?

  • SLAP: รายงานต่อ Apple เมื่อวันที่ 24 พฤษภาคม 2024
  • FLOP: รายงานต่อ Apple เมื่อวันที่ 3 กันยายน 2024

คำถามเชิงเทคนิค

Side Channel คืออะไร?

  • การโจมตีที่อาศัยช่องโหว่ในการใช้งานจริงของฮาร์ดแวร์คอมพิวเตอร์
    • ใช้ประโยชน์จากการรั่วไหลของข้อมูลที่เกิดจากพฤติกรรมของฮาร์ดแวร์ แทนที่จะเป็นบั๊กของซอฟต์แวร์
  • เส้นทางการรั่วไหลของข้อมูล
    • ปรากฏการณ์ทางกายภาพ เช่น เสียง คลื่นแม่เหล็กไฟฟ้า การคายความร้อน
    • การแย่งใช้ทรัพยากรร่วมของ CPU (คอร์ แคช บัฟเฟอร์ภายใน เป็นต้น)
  • การเปิดเผยข้อมูลจากการแข่งขันของ CPU
    • อนุมานรูปแบบพฤติกรรมของเป้าหมายผ่านตัวแปรทางอ้อม เช่น การวัดเวลา การใช้พลังงาน

การโจมตีแบบ Speculative Execution คืออะไร?

  • Speculative Execution: เทคนิคเพิ่มประสิทธิภาพที่ CPU คาดเดา control flow แล้วรันคำสั่งล่วงหน้า
    • หากคาดเดาผิด ระบบจะย้อนสถานะกลับ แต่ ยังทิ้งร่องรอยเล็ก ๆ เช่น ในแคช
  • การโจมตี Spectre
    • ชักนำให้เกิดการคาดเดาและรันตาม flow ที่ผิด
    • หากมีการรันคำสั่งที่ใช้ข้อมูลอ่อนไหวระหว่าง speculative execution ค่าของข้อมูลนั้นอาจรั่วไหลทางอ้อมได้
  • การขยายแนวคิดใน SLAP และ FLOP
    • CPU ของ Apple คาดเดาไม่เพียงแต่ control flow แต่รวมถึง data flow ด้วย
    • FLOP ทำให้เกิดการรันคำสั่งจากค่าข้อมูลที่คาดเดาผิด

วิธีการทำงานของ SLAP

  1. วิเคราะห์ Load Address Prediction (LAP)
    • หากทำให้ระบบเรียนรู้รูปแบบที่อยู่หน่วยความจำเฉพาะ LAP จะคาดเดาที่อยู่ถัดไปและรันงานกับข้อมูลนั้น
    • ต่างจากการ prefetch ของฮาร์ดแวร์ เพราะมีการ รันคำสั่งด้วยข้อมูลที่คาดเดา
  2. การใช้ประโยชน์จากช่องโหว่ใน Safari
    • อาศัยปัญหาการแยกส่วนของ Safari ที่ iLeakage ค้นพบ บังคับให้เว็บเพจต่างกันถูกประมวลผลในโปรเซสเดียวกัน
    • ทำให้เว็บเพจของผู้โจมตีเข้าถึงข้อมูลสตริงของเว็บเพจเป้าหมายได้

วิธีการทำงานของ FLOP

  1. วิเคราะห์ Load Value Prediction (LVP)
    • หากมีการส่งค่าข้อมูลเดิมกลับมาซ้ำ ๆ LVP จะคาดเดาผลลัพธ์
    • ทำให้มีการรันคำสั่งโดยใช้ค่าหน่วยความจำที่ผิด
  2. การโจมตี Safari และ Chrome
    • Safari: คาดเดาข้อมูลชนิดของ data structure ใน JavaScript แล้วรันคำสั่งกับ data structure ที่ผิด
    • Chrome: เมื่อเรียกใช้ฟังก์ชัน WebAssembly อาร์กิวเมนต์ที่ผิดทำให้เกิดข้อผิดพลาดในการอ่านหน่วยความจำ

ความแตกต่างระหว่าง SLAP และ FLOP

  • SLAP: ใช้ Load Address Predictor (LAP) เพื่ออาศัยความใกล้กันของการจัดสรรสตริง
  • FLOP: ใช้ Load Value Predictor (LVP) เพื่อข้ามการตรวจสอบความถูกต้องของข้อมูล
  • LAP vs LVP
    • LAP: คาดเดาที่อยู่หน่วยความจำถัดไป
    • LVP: คาดเดาค่าหน่วยความจำถัดไปที่ถูกส่งกลับ
    • LAP ต้องใช้กระบวนการฝึกนานกว่า แต่สามารถคาดเดารูปแบบได้

JavaScript และ WebAssembly คืออะไร?

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

เหตุผลที่เลือก Safari และ Chrome เป็นเป้าหมายการโจมตี

  • Safari:
    • ไม่มี site isolation ทำให้เว็บเพจจากคนละโดเมนสามารถรันในโปรเซสเดียวกันได้
    • ขยายพื้นผิวการโจมตีที่อาศัย LAP และ LVP
  • Chrome:
    • แม้มี site isolation แล้ว แต่ในบางกรณี subdomain ของไซต์เดียวกันยังถูกจัดการในโปรเซสเดียวกัน
    • จึงยังสามารถโจมตีด้วย LAP และ LVP ได้

การสนับสนุนงานวิจัย

  • งานวิจัยนี้ได้รับการสนับสนุนจาก AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco, Zama

1 ความคิดเห็น

 
GN⁺ 2025-01-29
ความคิดเห็นจาก Hacker News
  • เดโมของ SLAP แสดงให้เห็นได้ดีว่าการป้องกันหลายชั้นสามารถกำหนดความเป็นไปได้ในการโจมตีช่องโหว่ได้อย่างไร ช่องโหว่ของ Safari เกิดขึ้นเพราะไม่สามารถแยกหน้าต่างใหม่เป็นโปรเซสอิสระได้เมื่อมีการเรียก window.open

  • ส่วนที่ทำ reverse engineer การมีอยู่ของ LVP บน M3 น่าสนใจมาก เมื่อโหลด 8 ไบต์ LVP จะทำงานเฉพาะตอนที่ค่าที่โหลดเป็น 0 เท่านั้น ซึ่งอาจเป็นมาตรการเพื่อความปลอดภัยของหน่วยความจำ

  • การโจมตี Spectre และ Meltdown รวมถึงงานวิจัยที่เกี่ยวข้อง คุ้มค่าที่จะอ่านสำหรับคนที่ยังไม่เคยเห็นมาก่อน

  • ใน Safari มีการใช้หลักการขยายสัญญาณแคชที่อิงกับ NOT gate เพื่อแยกแยะ cache hit กับ miss แม้ในสภาพแวดล้อมเว็บก็สามารถแยก cache hit และ miss ได้

  • แสดงให้เห็นว่า site isolation ของ Chrome ไม่ใช่มาตรการบรรเทาที่สมบูรณ์แบบ มี corner case ที่ซับโดเมนสองตัวของไซต์เดียวกันอาจถูกรวมเข้าเป็นโปรเซสเดียวกันได้

  • วัฒนธรรมการตลาดสำหรับการประกาศช่องโหว่ฮาร์ดแวร์ให้ความรู้สึกแปลก ทำไมถึงไม่แค่รายงานช่องโหว่และเผยแพร่งานวิจัย แต่ต้องทำโดเมนเฉพาะ โลโก้ FAQ และอื่น ๆ ด้วย

  • เมื่อปีที่แล้วฉันได้พบศาสตราจารย์ Daniel Genkin ในคลาส Intro to Cyber Security เขาบอกว่ากำลังวิจัยการโจมตีแบบ speculative ต่อ Apple CPU ทำให้เข้าใจว่าความปลอดภัยแทบไม่เคยรับประกันได้จริง

  • มีแนวโน้มที่จะปิดใช้งาน js โดยค่าเริ่มต้นบนไซต์ที่ไม่น่าเชื่อถือ เพราะนี่คือโปรแกรมของใครบางคนที่เราปล่อยให้รันบนเครื่องของเรา

  • Apple เพิ่งประกาศอัปเดตเวอร์ชันย่อยของ macOS และ iOS ที่รวมการแก้ไขด้านความปลอดภัยไว้ด้วย สงสัยว่ามีใครตรวจสอบหรือยังว่าแก้ช่องโหว่นี้แล้วหรือไม่

  • ดูเหมือนว่า RUB จะกลายเป็นศูนย์กลางระดับโลกของงานด้านความปลอดภัยเชิงรุกขั้นสูงไปแล้ว สงสัยว่าเมื่อ 10 ปีก่อนเราแค่ไม่ได้ใส่ใจ หรือว่านี่เป็นปรากฏการณ์ใหม่