Kebocoran data melalui bus ring CPU Intel

Sebuah tim peneliti dari Universitas Illinois telah mengembangkan teknik serangan saluran samping baru yang memanipulasi kebocoran informasi melalui Ring Interconnect pada prosesor Intel. Serangan ini memungkinkan Anda menyorot informasi penggunaan memori di aplikasi lain dan melacak informasi waktu penekanan tombol. Para peneliti menerbitkan alat untuk melakukan pengukuran terkait dan beberapa eksploitasi prototipe.

Tiga eksploitasi telah diusulkan yang memungkinkan:

  • Pulihkan setiap bit kunci enkripsi saat menggunakan implementasi RSA dan EdDSA yang rentan terhadap serangan saluran samping (jika penundaan komputasi bergantung pada data yang diproses). Misalnya, kebocoran bit individu dengan informasi tentang vektor inisialisasi (nonce) EdDSA sudah cukup untuk menggunakan serangan untuk memulihkan seluruh kunci pribadi secara berurutan. Serangan ini sulit diterapkan dalam praktiknya dan dapat dilakukan dengan banyak syarat. Misalnya, operasi yang berhasil ditampilkan ketika SMT (HyperThreading) dinonaktifkan dan cache LLC disegmentasi di antara inti CPU.
  • Tentukan parameter tentang penundaan antara penekanan tombol. Penundaan bergantung pada posisi tombol dan memungkinkan, melalui analisis statistik, untuk membuat ulang data yang dimasukkan dari keyboard dengan probabilitas tertentu (misalnya, kebanyakan orang biasanya mengetik “s” setelah “a” jauh lebih cepat daripada “g” setelahnya "S").
  • Atur saluran komunikasi tersembunyi untuk mentransfer data antar proses dengan kecepatan sekitar 4 megabit per detik, yang tidak menggunakan memori bersama, cache prosesor, dan sumber daya khusus inti CPU serta struktur prosesor. Perlu dicatat bahwa metode yang diusulkan untuk membuat saluran rahasia sangat sulit untuk diblokir dengan metode perlindungan yang ada terhadap serangan saluran samping.

Eksploitasi tidak memerlukan hak istimewa yang lebih tinggi dan dapat digunakan oleh pengguna biasa yang tidak memiliki hak istimewa. Perlu dicatat bahwa serangan tersebut berpotensi diadaptasi untuk mengatur kebocoran data antar mesin virtual, namun masalah ini berada di luar cakupan penelitian dan pengujian sistem virtualisasi tidak dilakukan. Kode yang diusulkan telah diuji pada CPU Intel i7-9700 di Ubuntu 16.04. Secara umum, metode serangan ini telah diuji pada prosesor desktop dari keluarga Intel Coffee Lake dan Skylake, dan juga berpotensi diterapkan pada prosesor server Xeon dari keluarga Broadwell.

Teknologi Ring Interconnect muncul dalam prosesor berdasarkan mikroarsitektur Sandy Bridge dan terdiri dari beberapa bus melingkar yang digunakan untuk menghubungkan inti komputasi dan grafis, jembatan server, dan cache. Inti dari metode serangan ini adalah, karena keterbatasan bandwidth ring bus, operasi memori dalam satu proses menunda akses ke memori proses lain. Dengan mengidentifikasi detail implementasi melalui rekayasa balik, penyerang dapat menghasilkan beban yang menyebabkan penundaan akses memori pada proses lain dan menggunakan penundaan ini sebagai saluran sampingan untuk memperoleh informasi.

Serangan terhadap bus CPU internal terhambat oleh kurangnya informasi tentang arsitektur dan metode pengoperasian bus, serta tingkat kebisingan yang tinggi, sehingga sulit untuk mengisolasi data yang berguna. Prinsip pengoperasian bus dapat dipahami melalui rekayasa balik protokol yang digunakan saat mentransmisikan data melalui bus. Model klasifikasi data berdasarkan metode pembelajaran mesin digunakan untuk memisahkan informasi berguna dari kebisingan. Model yang diusulkan memungkinkan untuk mengatur pemantauan penundaan selama perhitungan dalam proses tertentu, dalam kondisi ketika beberapa proses secara bersamaan mengakses memori dan sebagian data dikembalikan dari cache prosesor.

Selain itu, kami dapat mencatat identifikasi jejak penggunaan eksploitasi untuk varian pertama dari kerentanan Spectre (CVE-2017-5753) selama serangan pada sistem Linux. Eksploitasi ini menggunakan kebocoran informasi saluran samping untuk menemukan superblock di memori, menentukan inode file /etc/shadow, dan menghitung alamat halaman memori untuk mengambil file dari cache disk.

Sumber: opennet.ru

Tambah komentar