2 poin oleh GN⁺ 2025-01-29 | 1 komentar | Bagikan ke WhatsApp

SLAP: serangan spekulasi data (data Speculation attacks via Load Address Prediction)

  • Serangan SLAP adalah serangan eksekusi spekulatif baru yang terjadi pada CPU Apple Silicon M2/A15.
  • Melalui load address predictor (LAP), CPU memprediksi alamat memori berikutnya berdasarkan pola akses memori untuk meningkatkan kinerja.
  • Jika prediksi salah, CPU memproses secara spekulatif data yang seharusnya tidak boleh diakses, sehingga menimbulkan risiko keamanan.
  • Sebagai contoh nyata, ditunjukkan serangan pada browser web Safari yang memungkinkan penyerang jarak jauh memulihkan isi email dan perilaku penelusuran.

FLOP: prediksi keluaran load yang salah (False Load Output Predictions)

  • Serangan FLOP adalah serangan eksekusi spekulatif lain pada CPU Apple M3/A17 yang terjadi karena prediksi dependensi data.
  • Melalui load value predictor (LVP), CPU memprediksi nilai data yang akan dikembalikan oleh subsistem memori untuk meningkatkan kinerja.
  • Jika prediksi salah, hal ini dapat membuka permukaan serangan yang memungkinkan rahasia yang tersimpan di memori bocor dengan melewati pemeriksaan penting dalam logika program untuk keamanan memori.
  • Ditunjukkan serangan pada browser web Safari dan Chrome yang dapat memulihkan riwayat lokasi, acara kalender, informasi kartu kredit, dan lainnya.

Demo

  • Kebocoran data kotak masuk Proton Mail: melatih LVP pada CPU M3 dengan kode JavaScript di dalam WebKit untuk membawa isi kotak masuk ke ruang alamat.
  • Membaca The Great Gatsby: demonstrasi proof-of-concept untuk memulihkan string rahasia menggunakan LAP pada CPU Apple M2.
  • Membaca Harry Potter: demonstrasi proof-of-concept yang menggunakan LVP pada CPU Apple M3 untuk memprediksi indeks array yang salah dan mereferensikan karakter dalam string.

Tim peneliti

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

FAQ SLAP dan FLOP

Is my Apple device affected?

  • Laptop Mac: semua model yang dirilis sejak 2022 (MacBook Air, MacBook Pro)
  • Desktop Mac: semua model yang dirilis sejak 2023 (Mac Mini, iMac, Mac Studio, Mac Pro)
  • iPad: semua model iPad Pro, Air, Mini yang dirilis sejak September 2021
    • Pro generasi ke-6 dan ke-7, Air generasi ke-6, Mini generasi ke-6
  • iPhone: semua model yang dirilis sejak September 2021
    • Semua model iPhone 13, 14, 15, 16 dan SE generasi ke-3

Why are the SLAP and FLOP attacks significant?

  • Mekanisme perlindungan: umumnya browser web melindungi agar dua halaman web yang terbuka tetap terisolasi satu sama lain, sehingga satu halaman tidak bisa membaca konten halaman lain
  • Kerentanan: SLAP dan FLOP menonaktifkan perlindungan ini, sehingga halaman penyerang dapat membaca data sensitif dari halaman target
    • Data yang terekspos: riwayat lokasi, informasi kartu kredit, dan lain-lain

How can I defend against SLAP and FLOP?

  • FLOP memiliki langkah mitigasi, tetapi ini memerlukan patch dari vendor perangkat lunak dan tidak bisa diselesaikan langsung oleh pengguna
  • Apple menyatakan akan memperbaiki masalah ini dalam pembaruan keamanan mendatang, sehingga penting untuk mengaktifkan pembaruan otomatis dan menjaga OS serta aplikasi tetap terbaru

What about other processor vendors?

  • Pada produk Intel, AMD, Qualcomm, Ampere, dan lainnya, belum ditemukan tanda-tanda SLAP atau FLOP

What about other web browsers?

  • Browser lain seperti Firefox tidak diuji

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

  • SLAP dan FLOP adalah serangan berbasis mikroarsitektur, sehingga tidak meninggalkan jejak pada log sistem

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

  • Hingga saat ini belum ada bukti bahwa SLAP atau FLOP digunakan secara nyata

When did you notify Apple?

  • SLAP: dilaporkan ke Apple pada 24 Mei 2024
  • FLOP: dilaporkan ke Apple pada 3 September 2024

Pertanyaan teknis

Apa itu side channel?

  • Serangan yang mengeksploitasi kelemahan dalam implementasi perangkat keras komputer
    • Memanfaatkan kebocoran informasi yang timbul dari perilaku perangkat keras, bukan bug perangkat lunak
  • Jalur kebocoran data
    • Fenomena fisik seperti suara, gelombang elektromagnetik, emisi panas, dan sebagainya
    • Kontensi pada sumber daya bersama CPU (core, cache, buffer internal, dan lain-lain)
  • Paparan informasi akibat kontensi CPU
    • Menyimpulkan pola perilaku target melalui variabel tidak langsung seperti pengukuran waktu dan konsumsi daya

Apa itu serangan speculative execution?

  • Speculative execution: teknik optimisasi di mana CPU memprediksi alur kontrol dan mengeksekusi instruksi lebih dulu
    • Jika prediksi salah, status dikembalikan, tetapi jejak halus seperti pada cache tetap tertinggal
  • Serangan Spectre
    • Mendorong eksekusi prediktif ke alur yang salah
    • Jika instruksi yang menggunakan data sensitif dijalankan selama eksekusi prediktif, nilai data dapat bocor secara tidak langsung
  • Ekspansi pada SLAP dan FLOP
    • CPU Apple memprediksi bukan hanya alur kontrol, tetapi juga alur data
    • FLOP memicu eksekusi instruksi berdasarkan nilai data yang salah

Cara kerja SLAP

  1. Analisis Load Address Prediction (LAP)
    • Jika pola alamat memori tertentu dipelajari, LAP memprediksi alamat berikutnya dan mengeksekusi operasi data
    • Berbeda dengan prefetching perangkat keras, instruksi dijalankan menggunakan data yang diprediksi
  2. Eksploitasi kerentanan Safari
    • Berdasarkan masalah isolasi Safari yang ditemukan oleh iLeakage, peneliti memaksa halaman web yang berbeda diproses dalam proses yang sama
    • Halaman web penyerang mengakses data string dari halaman web target

Cara kerja FLOP

  1. Analisis Load Value Prediction (LVP)
    • Jika nilai data yang sama berulang kali dikembalikan, LVP memprediksi hasilnya
    • Instruksi dijalankan menggunakan nilai memori yang salah
  2. Serangan terhadap Safari dan Chrome
    • Safari: memprediksi informasi tipe dari struktur data JavaScript dan menjalankan instruksi dengan struktur data yang salah
    • Chrome: saat memanggil fungsi WebAssembly, argumen yang salah menyebabkan kesalahan pembacaan memori

Perbedaan antara SLAP dan FLOP

  • SLAP: menggunakan Load Address Predictor (LAP) untuk mengeksploitasi kedekatan alokasi string
  • FLOP: menggunakan Load Value Predictor (LVP) untuk melewati pemeriksaan integritas data
  • LAP vs LVP
    • LAP: memprediksi alamat memori berikutnya
    • LVP: memprediksi pengembalian nilai memori berikutnya
    • LAP memerlukan proses pelatihan yang panjang, tetapi memungkinkan prediksi pola

Apa itu JavaScript dan WebAssembly?

  • JavaScript: bahasa untuk memperbarui konten web secara dinamis
  • WebAssembly: bahasa untuk aplikasi web berkinerja tinggi, yang terintegrasi dengan JavaScript
  • Dampak serangan
    • Kedua bahasa berjalan otomatis di browser, sehingga serangan bisa terjadi tanpa perlu mengunduh kode berbahaya

Alasan memilih Safari dan Chrome sebagai target serangan

  • Safari:
    • Tidak memiliki site isolation, sehingga halaman web dari domain berbeda dapat berjalan dalam proses yang sama
    • Memperluas permukaan serangan berbasis LAP dan LVP
  • Chrome:
    • Meskipun site isolation diterapkan, dalam beberapa kasus subdomain dari situs yang sama diproses dalam satu proses
    • Serangan LAP dan LVP tetap dimungkinkan

Dukungan riset

  • Riset ini didukung oleh AFOSR, Alfred P Sloan Research Fellowship, ARC Discovery Project, DARPA, DFG, Qualcomm, Cisco, dan Zama.

1 komentar

 
GN⁺ 2025-01-29
Komentar Hacker News
  • Demo SLAP menunjukkan dengan baik bagaimana pertahanan berlapis dapat menentukan kelayakan eksploitasi sebuah kerentanan. Kerentanan di Safari terjadi karena saat memanggil window.open, jendela baru tidak diisolasi sebagai proses terpisah

  • Bagian rekayasa balik keberadaan LVP di M3 menarik. Pada load 8 byte, LVP hanya aktif ketika nilai load adalah 0. Ini bisa jadi merupakan langkah mitigasi untuk keamanan memori

  • Serangan Spectre dan Meltdown serta paper terkait layak dibaca bagi yang baru pertama kali melihatnya

  • Di Safari, prinsip amplifikasi cache berbasis gerbang NOT digunakan untuk membedakan cache hit dan miss. Bahkan di lingkungan web pun cache hit dan miss bisa dibedakan

  • Ini menunjukkan bahwa site isolation di Chrome bukan mitigasi yang sempurna. Ada corner case di mana dua subdomain dari situs yang sama dapat digabungkan ke dalam satu proses

  • Budaya pemasaran untuk pengumuman kerentanan perangkat keras terasa aneh. Mengapa tidak cukup melaporkan kerentanannya dan menerbitkan paper, lalu malah membuat domain kustom, logo, FAQ, dan sebagainya

  • Tahun lalu saya bertemu Profesor Daniel Genkin di kelas Intro to Cyber Security. Ia mengatakan sedang meneliti serangan spekulatif terhadap CPU Apple. Ini membuat saya memahami bahwa keamanan hampir tidak pernah benar-benar terjamin

  • Saya cenderung menonaktifkan js secara default di situs yang tidak tepercaya. Itu pada dasarnya adalah program milik orang lain yang kita jalankan di mesin kita

  • Apple baru-baru ini merilis pembaruan versi minor untuk macOS dan iOS yang mencakup perbaikan keamanan. Saya penasaran apakah ada yang sudah memeriksa apakah kerentanan ini telah diperbaiki

  • RUB tampaknya telah menjadi pusat global untuk riset keamanan serangan tingkat lanjut. Saya penasaran apakah 10 tahun lalu saya saja yang tidak memperhatikannya, atau ini memang fenomena baru