- Proyek keamanan perangkat keras MIT mereproduksi serangan side-channel berbantuan machine learning yang dimungkinkan di peramban web, dan mengungkap jebakan bahwa akurasi model yang tinggi tidak membuktikan penyebab yang sebenarnya
- Riset fingerprinting situs web sebelumnya menganggap kontensi cache CPU sebagai penyebabnya, tetapi pendekatan yang menghapus akses cache dan hanya menaikkan penghitung sederhana justru menghasilkan akurasi yang lebih tinggi di berbagai lingkungan
- Tim peneliti menyingkirkan hipotesis penskalaan frekuensi CPU, kontensi inti CPU, dan hipotesis cache secara bertahap, lalu dengan instrumentasi eBPF mengonfirmasi bahwa lebih dari 99% jeda yang berhenti selama 100ns atau lebih adalah pemrosesan interupsi
- Hanya dari sinyal interupsi sistem saja, aktivitas pemuatan situs web tetap terungkap, dan pada Chrome/Linux akurasi untuk mengidentifikasi situs korban di antara 100 situs web mencapai 96.6%
- Untuk merancang pertahanan, analisis yang memverifikasi mekanisme nyata side-channel perlu didahulukan daripada sekadar fakta bahwa model berhasil menebak
Latar belakang dimulainya riset
- Pada 2020, di kelas Secure Hardware Design di MIT, dimulai proyek untuk mereproduksi serangan fingerprinting situs web berdasarkan pengalaman dalam pengembangan web dan machine learning
- Mengjia Yan melihat ada sesuatu yang terasa tidak cocok dalam riset fingerprinting situs web terbaru yang menyerang kelemahan perangkat keras dengan machine learning, lalu mengusulkan reproduksinya
- Proyek ini kemudian berlanjut menjadi makalah There’s Always a Bigger Fish: A Clarifying Analysis of a Machine-Learning-Assisted Side-Channel Attack
- Makalah ini meraih peringkat 1 Intel 2024 Hardware Security Academic Award dan masuk dalam IEEE Micro Top Picks 2023
- Riset ini membahas tiga sumbu: serangan peramban, kebocoran interupsi sistem, dan kesalahan interpretasi machine learning
Side-channel dan fingerprinting situs web
- Isolasi proses memisahkan memori dan sumber daya aplikasi, tetapi pada komputer nyata sumber daya seperti kartu jaringan, GPU, dan CPU tetap dibagi bersama
- Sumber daya bersama dapat secara tidak sengaja membocorkan informasi tentang aktivitas pengguna
- Jika seseorang yang memakai router Wi‑Fi yang sama menonton video berukuran besar, waktu unduh pengguna lain bisa melambat
- Perubahan konsumsi daya atau pancaran elektromagnetik juga bisa menjadi side-channel untuk memperkirakan kunci enkripsi atau aktivitas pengguna
- Fingerprinting situs web adalah serangan ketika situs web penyerang di satu tab mencoba mengidentifikasi situs korban yang terbuka di tab lain
- Riset sebelumnya oleh Shusterman et al. menunjukkan serangan yang menggunakan cache CPU untuk menebak situs yang terbuka di antara 100 kandidat situs web
- Penyerang membuat array sebesar cache CPU dan mengisinya dengan angka 1
- Saat situs korban dimuat, waktu akses array diukur setiap 2ms
- Total 7.500 nilai pengukuran dikumpulkan selama 15 detik
- Karena tiap situs web cenderung mengulang pola serupa pada skrip, gambar, stylesheet, dan rendering, jejak pengukuran dapat dipakai seperti sidik jari
- Dengan mengumpulkan masing-masing 100 jejak dari 100 situs web, dibuat dataset berlabel total 10.000 data untuk melatih model machine learning
- Mereka memperoleh akurasi hingga 91.4% di berbagai peramban dan sistem operasi
Serangan penghitung tanpa cache
- Pada reproduksi awal, klasifikasi 4 situs web mudah dilakukan, dan dengan pengklasifikasi Random Forest sederhana didapat akurasi 98%
- Saat eksperimen diperluas ke 10 situs web, akurasinya awalnya 75%, tetapi kemudian meningkat hingga klasifikasi 10, 50, dan 100 situs web
- Perubahan yang menentukan adalah menghapus akses array cache dan membuat penyerang mengulang
value++secepat mungkin- Dengan menyimpan nilai penghitung pada interval tertentu, terbentuk jejak yang menunjukkan seberapa banyak komputer sempat mengeksekusi selama periode tersebut
- Aktivitas lain seperti mengubah ukuran jendela peramban atau membuka tab baru juga tercermin pada jejak penghitung
- Dalam makalah, nilai disimpan setiap 5ms untuk mendapatkan lebih banyak informasi dalam waktu yang tetap
- Model yang dilatih dengan jejak penghitung menunjukkan akurasi identifikasi situs web yang lebih tinggi daripada jejak latensi cache sebelumnya
- Hasil ini menimbulkan keraguan apakah serangan sebelumnya benar-benar memanfaatkan kontensi cache, dan mendorong analisis untuk mencari penyebabnya
Jarak antara akurasi model dan analisis penyebab
- Dalam serangan side-channel berbantuan machine learning, fakta bahwa model secara stabil memprediksi aktivitas pengguna hanya menunjukkan adanya sinyal
- Akurasi tinggi tidak membuktikan dari side-channel mana sinyal itu berasal
- Walaupun model Shusterman et al. menebak situs korban dengan akurasi 91.4%, itu bukan berarti model tersebut menangkap kontensi cache CPU
- Yang dicari model adalah korelasi, bukan penjelasan atas penyebab sinyalnya
- Analisis penyebab yang keliru bisa menyesatkan perancangan pertahanan
- Peneliti merancang pertahanan untuk membuat komputer lebih aman berdasarkan makalah serangan
- Jika penyebab serangan dipahami secara salah, waktu dan upaya bisa terbuang sia-sia
Verifikasi hipotesis: frekuensi, inti, dan interupsi
- Tim peneliti membandingkan serangan berbasis cache lama dan serangan berbasis penghitung baru di berbagai lingkungan
- Dalam tugas identifikasi 100 situs web, serangan berbasis penghitung memberikan akurasi lebih tinggi di hampir semua konfigurasi eksperimen
- Di Safari pada macOS, serangan cache mencapai 72.6%, sedangkan serangan penghitung mencapai 96.6%
- Pada konfigurasi dasar, jawaban yang benar di antara 100 situs web dapat diidentifikasi dengan akurasi 95.2%
-
Hipotesis penskalaan frekuensi CPU
- CPU modern menaikkan atau menurunkan frekuensi sesuai beban kerja untuk menghemat energi
- Muncul hipotesis bahwa perubahan frekuensi CPU saat situs korban dimuat dapat mengubah nilai penghitung
- Setelah menonaktifkan penskalaan frekuensi di BIOS, data baru dikumpulkan dan model dilatih
- Akurasi hanya turun 1 poin persentase, dari 95.2% menjadi 94.2%, sehingga perubahan nilai penghitung sulit dijelaskan oleh perubahan frekuensi CPU
-
Hipotesis kontensi inti CPU
- Jika tab penyerang dan korban berjalan pada inti CPU yang sama, pemuatan tab korban bisa mengurangi waktu eksekusi penghitung milik penyerang
- Dengan
tasksetdi Linux, tab penyerang dan korban dipatok agar berjalan pada inti yang berbeda - Bahkan saat penskalaan frekuensi CPU dimatikan, akurasi tetap 94.0%
- Kontensi inti CPU juga sulit dianggap sebagai penyebab utama
-
Hipotesis interupsi sistem
- Hipotesis berikutnya adalah bahwa interupsi sistem merupakan sinyal pada serangan berbasis penghitung
- Sistem operasi menggunakan interupsi untuk berkomunikasi dengan perangkat keras seperti keyboard, mouse, layar, dan kartu jaringan
- Saat interupsi tiba di inti CPU, program yang sedang berjalan di inti itu langsung berhenti dan handler interupsi dieksekusi
- Selama situs korban dimuat, berbagai perangkat seperti jaringan dan grafis memicu interupsi, dan jika diproses pada inti yang sama dengan penyerang, nilai penghitung penyerang bisa menurun
- Di Linux, pemrosesan interupsi dapat diperiksa dengan
cat /proc/interrupts
Interupsi yang dapat dipindahkan dan yang tidak dapat dipindahkan
- Linux dapat merutekan sebagian interupsi yang dapat dipindahkan ke inti tertentu
- Interupsi dengan ID numerik termasuk dalam kategori ini
- Sering kali berasal dari perangkat keras eksternal seperti keyboard atau kartu jaringan
- Banyak interupsi yang tidak dapat dipindahkan tidak bisa diisolasi ke inti tertentu
- Interupsi dengan ID tiga huruf termasuk dalam kategori ini
- Karena dipakai untuk menyinkronkan aktivitas antar inti CPU, interupsi ini harus diproses di semua inti
- Dalam lingkungan eksperimen, jenis ini mencakup sebagian besar aktivitas interupsi
- Dengan
irqbalance, interupsi yang dapat dipindahkan dikirim ke inti 1, lalu dengantasksetpenyerang dan korban dijalankan pada inti 2 dan 3 - Saat frekuensi CPU juga dipatok tetap, akurasi turun hampir 6 poin persentase, sehingga hipotesis interupsi menjadi lebih kuat
Penyebab sebenarnya yang dikonfirmasi dengan eBPF
- Karena eksperimen untuk sepenuhnya mengisolasi bahkan interupsi yang tidak dapat dipindahkan tidak mungkin dilakukan dalam struktur sistem operasi, eksekusi diinstrumentasi dengan eBPF
- Melalui eBPF, dua jenis waktu dicatat
- Saat program penyerang mulai dan berhenti
- Saat handler interupsi mulai dan berhenti
- Karena frekuensi CPU dipatok tetap, jika penyerang tidak terganggu maka seharusnya ia mengeksekusi jumlah instruksi yang hampir sama dalam waktu yang tetap
- Dengan kode eBPF yang ditulis Jonathan Behrens, interval berhentinya penyerang dibandingkan dengan interval pemrosesan interupsi
- Terkonfirmasi bahwa lebih dari 99% interval penghentian eksekusi penyerang yang berlangsung 100ns atau lebih adalah waktu pemrosesan interupsi
- Inti CPU milik penyerang pada dasarnya hanya melakukan salah satu dari dua hal: menjalankan kode penghitung atau memproses interupsi, dan muncul pola bahwa saat waktu pemrosesan interupsi berkurang nilai penghitung naik, sedangkan saat bertambah nilainya turun
Dua hasil utama makalah
- Hasil pertama adalah bahwa interupsi sistem membocorkan aktivitas pengguna
- Sifat keamanan interupsi sistem belum pernah diteliti dalam literatur sebelumnya
- Tim peneliti untuk pertama kalinya menganalisis side-channel berbasis interupsi sistem
- Hasil kedua adalah bahwa serangan side-channel berbantuan machine learning harus dianalisis dengan hati-hati
- Model machine learning dapat membangun serangan yang kuat bahkan tanpa memahami side-channel tersebut
- Tanpa menginstrumentasi sistem operasi, tidak mungkin menyimpulkan side-channel apa yang digunakan
- Pertahanan terhadap serangan berbasis cache sebelumnya dilakukan dengan cara terus-menerus mengusir cache CPU untuk menambahkan noise
- Pertahanan yang menghasilkan banyak interupsi, misalnya dengan mengirim permintaan jaringan ke alamat IP lokal, bekerja lebih baik terhadap serangan berbasis cache maupun berbasis penghitung
- Perbandingan ini memperkuat bukti bahwa serangan Shusterman et al. terutama memanfaatkan sinyal interupsi, bukan cache
Eksperimen tambahan dan kemungkinan pertahanan
- Makalah juga memuat hasil tambahan
- Mengusulkan cara untuk sepenuhnya meredam serangan dengan memodifikasi clock peramban yang disediakan ke JavaScript
- Melakukan eksperimen yang mengisolasi penyerang dan korban ke mesin virtual terpisah
- Menganalisis frekuensi dan waktu pemrosesan beberapa interupsi yang tidak dapat dipindahkan
- Peramban menyulitkan serangan berbasis timing presisi tinggi dengan mengurangi presisi clock yang diberikan ke JavaScript
- Chrome membulatkan ke satuan 0.1ms dan menambahkan noise acak
- Firefox dan Safari membulatkan ke satuan 1ms
- Tor Browser membulatkan ke satuan 100ms, sehingga menurunkan akurasi serangan dari 96.6% di Chrome menjadi 49.8%
- Pengurangan presisi clock memiliki trade-off
- Game engine berbasis peramban memerlukan timer presisi tinggi untuk rendering dan animasi
- Bagi sebagian besar pengguna Tor Browser, sulit memainkan kebanyakan game, tetapi bagi pengguna yang memprioritaskan keamanan, ini mungkin bukan masalah
Pertanyaan riset yang masih tersisa
- Interupsi sistem berkaitan dengan mekanisme perangkat keras yang tertanam jauh di komputer modern, seperti Spectre dan Meltdown
- Pertahanan yang mengisolasi interupsi yang tidak dapat dipindahkan dari penyerang saat ini belum bisa diimplementasikan, dan tidak jelas bagaimana komputer harus didesain ulang agar hal itu memungkinkan
- Hubungan antara aktivitas situs web dan interupsi juga belum cukup dipahami
- weather.com memicu banyak rescheduling interrupt, tetapi nytimes.com dan amazon.com tidak
- Belum dianalisis bagaimana gambar tambahan, iklan, dan skrip memengaruhi jejak penghitung
- Serangan ini bisa menjadi lebih kuat
- Makalah ini lebih dekat ke “makalah analisis” daripada “makalah serangan”
- Akurasi 96.6% yang diperoleh di Chrome/Linux mungkin bukan batas atas, melainkan batas bawah
- Masih ada kemungkinan penerapan ke tugas seperti klasifikasi 1.000 situs web, apakah seseorang sedang menonton film, apakah memakai VPN, atau seberapa sering memeriksa Robinhood, dengan model yang lebih baik atau metodologi lain
- Pertahanan berbasis peramban juga perlu diimplementasikan di peramban nyata dan ditinjau apakah praktis bagi pengguna umum
Dampak riset pada jalur pribadi
- Sebelum proyek ini, melanjutkan ke sekolah pascasarjana bukan pilihan yang dipertimbangkan secara serius, dan setelah pengalaman magang riset deep learning di NVIDIA, rencananya lebih condong ke bekerja di perusahaan teknologi besar atau startup AI
- Setelah proyek ini, muncul pengalaman bahwa riset bisa menyenangkan dan indah
- Setelah lulus dari MIT, ia melanjutkan program MEng ilmu komputer selama satu tahun lagi, lalu menerima Rhodes scholarship dan belajar selama dua tahun di University of Oxford
- Tahun berikutnya, ia dijadwalkan memulai PhD ilmu komputer selama enam tahun di MIT
1 komentar
Komentar Hacker News
Tulisan yang bagus, dan riset di baliknya juga rapi
Menurut saya kontribusi makalah ini sebenarnya tidak banyak berkaitan dengan machine learning, melainkan pada ditemukannya side-channel baru yang memanfaatkan interrupt
Di sini machine learning lebih berperan untuk menarik lebih banyak pembaca, dan sepertinya tidak akan jauh berbeda kalau disebut “statistik”
Saya teringat dulu pembimbing saya pernah berkata, “Begitu kamu tahu makalahmu sebenarnya tentang apa, tulis ulang dan buang bagian-bagian yang dulu kamu kira sebagai topiknya”
Menurut saya judul makalah ini semestinya berfokus pada side-channel baru, bukan cerita tentang machine learning. Tapi itu hanya keberatan kecil; ini pekerjaan yang hebat
Alasan temuan tentang kesalahpahaman machine learning ini sangat penting adalah karena ia mempertanyakan cukup banyak riset arsitektur komputer yang ada
Dulu, untuk melakukan serangan seperti ini, orang harus memahami secara mendalam side-channel yang dieksploitasi, tetapi model machine learning, dalam kasus ini LSTM, memungkinkan akurasi yang jauh lebih tinggi daripada sekadar “statistik”, sehingga menjadi lebih mudah membuat serangan kuat yang mengeksploitasi side-channel yang belum dipahami dengan baik
Saat ini ada cukup banyak serangan berbantuan machine learning yang dibuat dengan cara seperti ini, dan satu makalah Shusterman dkk. saja sudah dikutip hampir 200 kali, angka yang sangat besar untuk makalah arsitektur komputer
Tujuan memublikasikan riset semacam ini adalah untuk memahami sistem dengan lebih baik agar dapat membuat pertahanan yang lebih kuat, dan biaya dari salah paham lalu menyesatkan komunitas itu besar
Poin ini tetap benar sekalipun penyebab serangan sebelumnya akhirnya terbukti adalah cache, tetapi karena dalam prosesnya ditemukan side-channel baru, pesannya menjadi jauh lebih jelas. Sepertinya bagian ini bisa lebih ditekankan dalam tulisan blog tersebut
Dalam praktiknya, saat tenggelam dalam lautan data, akal sehat seperti ini bisa hilang di tengah banjir korelasi, tetapi desain eksperimen yang baik dan peer review seharusnya menyaring kesimpulan dan interpretasi yang lemah
Dalam hal itu, studi replikasi ini berhasil melakukannya dengan sangat baik
Tulisan yang luar biasa. Saya tidak menyangka serangan side-channel bisa dijelaskan semudah ini
Rasanya seperti membaca misteri pembunuhan: sejak awal kita tahu siapa penjahatnya, tetapi kita mengikuti pencarian “bagaimana caranya”
Saya masukkan ke bookmark
Namun karena respons ini saya jadi membacanya, dan ternyata memang sangat bagus
Bagian yang berbunyi “Tahun depan saya akan kembali ke MIT untuk memulai program PhD ilmu komputer 6 tahun. Saya tidak bisa lebih antusias lagi!” terasa mengejutkan
Menarik bahwa semuanya bermula dari ide beruntung sang penulis untuk mencoba sesuatu secara acak seperti memakai counter, alih-alih serangan pengusiran cache yang jauh lebih canggih dari serangan side-channel asli, dan itu berhasil berkat konsep-konsep yang saat itu belum ia ketahui
Mungkin orang seperti saya, yang mungkin hanya satu dari ribuan, tidak punya keberuntungan seperti itu, jadi saya cepat mengurungkan niat bertahan di akademia dan masuk industri untuk membangun karier biasa
Saya memulai Honours Degree ilmu komputer ala Australia yang mirip master, dan sekitar 2010, jauh sebelum demam AI saat ini, saya ingin menulis makalah kecerdasan buatan berdasarkan kasus terapan yang saya pelajari di mata kuliah AI reguler
Berangkat dari cara winery menggunakan AI untuk meningkatkan kualitas dan produksi wine, saya ingin menerapkannya ke aplikasi yang lebih “umum”, tetapi pembimbing yang ditugaskan sama sekali tidak berminat membantu, dan tanpa dukungan lain sulit untuk melanjutkan
Apalagi saat itu ada tawaran kerja penuh waktu dengan gaji cukup baik, dan kalaupun saya melanjutkan, mungkin hasilnya tidak akan banyak
Seperti kata penulis, semuanya berjalan karena pembimbing dan bantuan dari sekitar; kalau sendirian, dibutuhkan dorongan dan bakat yang luar biasa besar, dan sepertinya saya kekurangan keduanya
Saat mengambil program doktor pertama saya di Jepang, selama 3 tahun profesor dan orang-orang di sekitar saya hanya mengkritik apa pun yang saya usulkan tanpa ide yang dapat dijalankan
Profesor di lab sebelah menyukai riset saya, tetapi saya baru mengetahuinya terlalu terlambat untuk pindah lab
Sekarang saya berada di tempat yang memungkinkan saya bekerja dengan separuh orang di seluruh negeri yang bisa benar-benar memahami dan peduli pada proyek saya yang lain, yaitu total 2 orang, dan proyek itu sudah membaik berkat data mereka
Direkturnya juga memandang saya baik, sehingga meski saya bukan anggota resmi, saya diikutsertakan dalam kegiatan lab
Dengan lingkungan seperti ini, saya bisa berhasil. Menemukan lingkungan dan orang yang cocok memang sulit tetapi menentukan, dan tanpa itu, bahkan pekerjaan yang sangat bagus pun bisa sia-sia
Tulisannya bagus
Sedikit sekali nitpick terkait halaman: gaya garis pemisah berupa titik-titik besar yang berderet terlihat seperti indikator posisi pada carousel gambar, sehingga membingungkan
Tulisannya luar biasa, penjelasannya sangat mudah diikuti, dan demo interaktifnya juga benar-benar keren
Saya juga suka karena penulis menceritakan latar belakang bagaimana ia mulai mengerjakan hal seperti ini
Sangat menarik dan dijelaskan dengan baik. Kalau risetnya sudah terbit 2 tahun lalu, para pengumpul data yang berkepentingan kemungkinan sudah mempertimbangkannya
Lupakan hacker. Ini adalah exploit untuk perusahaan dan pemerintah
Bisakah situs web yang mengutamakan privasi mendistribusikan paket yang memicu interrupt secara acak? Bisakah ekstensi browser melakukan itu untuk semua situs?
Countermeasure kami yang memicu interrupt secara acak diimplementasikan sebagai ekstensi browser, dan kode sumbernya ada di sini: https://github.com/jackcook/bigger-fish
Namun saya sulit merekomendasikannya untuk penggunaan sehari-hari. Dalam pengujian, seingat saya waktu muat halaman melambat sekitar 10%
Beberapa memang cukup berubah ketika penggunaan komputer tinggi, tetapi sepertinya Safari mungkin sudah memiliki sebagian mitigasi
Meski begitu, makalahnya benar-benar keren