TONTOU: Serangan Spectre v2 baru terhadap AMD dan Intel

Poin kunci:
  • TONTOU memanfaatkan jeda waktu antara pembersihan buffer prediksi dan penggunaannya.
  • Penyerang menggunakan "Injeksi Interupsi" untuk mengalihkan aliran kernel dan mencemari mekanisme prediksi.
  •  Hal ini memengaruhi arsitektur AMD Zen 1 hingga 4 dan beberapa generasi prosesor Intel.
  • Patch mitigasi tersebut telah dimasukkan ke dalam pembaruan kernel Linux terbaru (5 Agustus).

Serangan TONTOU

Mungkinkah kecepatan prosesor Anda justru yang membahayakan keamanan Anda? Untuk memahami bagaimana prosesor mencapai kecepatannya , kita harus mempertimbangkan bahwa prosesor bekerja dengan "memprediksi masa depan"... Bukan, prosesor bukanlah alat ajaib atau memiliki bola kristal kecil...

Cara kerja prosesor adalah, alih-alih menunggu untuk melihat jalur mana yang akan diambil program, chip memprediksi rute yang kemungkinan besar akan dilalui dan mengantisipasinya. Jika prediksinya salah, pekerjaan tersebut dibuang, tetapi jejaknya tetap tersimpan di memori. Di sinilah Spectre berperan , salah satu kerentanan paling signifikan yang ditemukan dalam beberapa tahun terakhir. Sejak penemuannya, penyerang telah mempelajari cara membaca jejak ini, menciptakan varian yang semakin canggih; TONTOU adalah salah satu kerentanan baru tersebut.

Para peneliti MIT telah menemukan TONTOU (Time-of-Neutralization to Time-of-Use), sebuah teknik baru yang canggih untuk mengeksploitasi kerentanan Spectre v2 , yang memungkinkan memori kernel dibaca dari ruang pengguna.

Meskipun para produsen dan pengembang telah merancang berbagai mekanisme perlindungan terhadap serangan prediktif selama bertahun-tahun, para penyerang berhasil menemukan jalur baru, dan studi CSAIL terbaru ini menunjukkan bagaimana cara melewati perlindungan tersebut.

Para peneliti menemukan bahwa ada jeda waktu yang tak terhindarkan antara saat buffer dibersihkan dan saat prediksi digunakan, dan dalam jeda kecil inilah kode (kadang-kadang hanya beberapa instruksi) disuntikkan melalui interupsi sistem, sehingga memungkinkan untuk mengkontaminasi kembali perangkat keras dan mengekstrak data penting.

Terkait Serangan: Gangguan dan Pelanggaran di Safe-RET

AMD memiliki pertahanan terhadap kerentanan SRSO (Speculative Return Stack Overflow) yang disebut Saferet, yang membersihkan mesin prediksi tepat sebelum setiap penggunaan. Hal ini meninggalkan celah kerentanan yang dapat dieksploitasi dalam beberapa puluh nanodetik. Untuk menyerang celah sekecil itu, para peneliti mengembangkan teknik yang mereka sebut Interrupt Injection.

Prosesor terus-menerus menghentikan tugasnya untuk menangani interupsi, dan program umum dapat mengkonfigurasi timer ini . Dengan mempertimbangkan hal ini, para peneliti secara tepat menyesuaikan timer dan, menggunakan teknik untuk memperlambat CPU, menyebabkan prosesor terinterupsi tepat pada saat yang salah . Selama interupsi ini, penyerang dapat memaksa sejumlah besar panggilan untuk dieksekusi, sehingga menyebabkan tumpukan alamat meluap. Ketika eksekusi yang salah berakhir, prosesor membuang proses tersebut, tetapi data yang diakses tetap berada di cache bersama , dari mana data tersebut dapat diekstrak dengan menganalisis waktu akses.

Ekstraksi dan Pengujian Kata Sandi pada Sistem Nyata

Untuk menunjukkan tingkat keparahan TONTOU, tim tersebut membuat eksploitasi yang berfungsi pada sistem AMD yang menjalankan kernel Linux terbaru. Hambatan pertama adalah melewati pertahanan yang mengacak posisi sistem operasi dalam memori, yang berhasil mereka lakukan dalam sepuluh percobaan, dengan waktu sekitar sembilan menit per percobaan.

Selanjutnya, mereka mendemonstrasikan serangan lokal sebagai pengguna tanpa hak istimewa untuk menentukan hash kata sandi root, berhasil mengekstrak data dengan kecepatan 5.47 byte per detik dengan akurasi 91.97%. Dalam 50% pengujian (yang rata-rata berlangsung selama 18 menit), mereka berhasil mendeteksi dan mengekstrak isi file kata sandi. Meskipun kecepatan ini lambat, kecepatan ini lebih dari cukup untuk membahayakan server secara kritis.

Dampak pada Intel, AMD, dan patch mitigasi

Tim tersebut menguji empat generasi prosesor Intel dan AMD, dan berhasil menemukan kegagalan prediksi pada kedua arsitektur tersebut. Meskipun teknik ini terbukti efektif pada keluarga AMD Zen 1 hingga 4 , pada chip Intel serangan tersebut berhasil melewati dua perlindungan berbeda , meskipun perilaku yang tidak konsisten diamati antara generasi Intel yang berbeda, menunjukkan bahwa pertahanan nominal diimplementasikan secara berbeda pada perangkat keras.

Sebagai solusi, para peneliti menyarankan untuk membersihkan mekanisme prediksi untuk kedua kalinya setelah interupsi selesai. Meskipun langkah ini tampaknya layak untuk AMD, hal ini bisa menjadi kontraproduktif bagi Intel, karena serangan tersebut bergantung pada interupsi yang meninggalkan keadaan konsisten dan dapat membuat serangan lebih andal.

Para peneliti memberi tahu AMD dan Intel pada awal Februari dan pengelola kernel Linux pada bulan Maret. Akibatnya, pemblokiran kode untuk mengurangi kerentanan tersebut diintegrasikan ke dalam kernel Linux pada tanggal 5 Agustus.

Terakhir, jika Anda tertarik untuk mempelajari lebih lanjut, Anda dapat menemukan detailnya di tautan berikut.


Tambahkan sebagai sumber pilihan di Google