Kebocoran data melalui bas cincin CPU Intel

Satu pasukan penyelidik dari University of Illinois telah membangunkan teknik serangan saluran sisi baharu yang memanipulasi kebocoran maklumat melalui Ring Interconnect pemproses Intel. Serangan itu membolehkan anda menyerlahkan maklumat penggunaan memori dalam aplikasi lain dan menjejaki maklumat pemasaan ketukan kekunci. Para penyelidik menerbitkan alat untuk melakukan pengukuran yang berkaitan dan beberapa eksploitasi prototaip.

Tiga eksploitasi telah dicadangkan yang akan membolehkan:

  • Pulihkan bit kunci penyulitan individu apabila menggunakan pelaksanaan RSA dan EdDSA yang terdedah kepada serangan saluran sisi (jika kelewatan pengiraan bergantung pada data yang sedang diproses). Sebagai contoh, kebocoran bit individu dengan maklumat tentang vektor permulaan (bukan sekali) EdDSA sudah cukup untuk menggunakan serangan untuk memulihkan keseluruhan kunci peribadi secara berjujukan. Serangan itu sukar untuk dilaksanakan dalam amalan dan boleh dilakukan dengan sejumlah besar tempahan. Sebagai contoh, operasi yang berjaya ditunjukkan apabila SMT (HyperThreading) dilumpuhkan dan cache LLC dibahagikan antara teras CPU.
  • Tentukan parameter tentang kelewatan antara ketukan kekunci. Kelewatan bergantung pada kedudukan kekunci dan membenarkan, melalui analisis statistik, mencipta semula data yang dimasukkan daripada papan kekunci dengan kebarangkalian tertentu (contohnya, kebanyakan orang biasanya menaip "s" selepas "a" lebih cepat daripada "g" selepas β€œs”).
  • Atur saluran komunikasi tersembunyi untuk memindahkan data antara proses pada kelajuan kira-kira 4 megabit sesaat, yang tidak menggunakan memori kongsi, cache pemproses dan sumber khusus teras CPU dan struktur pemproses. Adalah diperhatikan bahawa kaedah yang dicadangkan untuk mencipta saluran rahsia adalah sangat sukar untuk disekat dengan kaedah perlindungan sedia ada terhadap serangan saluran sisi.

Eksploitasi tidak memerlukan keistimewaan yang tinggi dan boleh digunakan oleh pengguna biasa yang tidak mempunyai hak istimewa. Adalah diperhatikan bahawa serangan itu berpotensi untuk disesuaikan untuk mengatur kebocoran data antara mesin maya, tetapi isu ini berada di luar skop kajian dan ujian sistem virtualisasi tidak dijalankan. Kod yang dicadangkan telah diuji pada CPU Intel i7-9700 dalam Ubuntu 16.04. Secara umum, kaedah serangan telah diuji pada pemproses desktop daripada keluarga Intel Coffee Lake dan Skylake, dan juga berpotensi digunakan untuk pemproses pelayan Xeon daripada keluarga Broadwell.

Teknologi Ring Interconnect muncul dalam pemproses berdasarkan mikroarkitektur Sandy Bridge dan terdiri daripada beberapa bas bergelung yang digunakan untuk menyambungkan pengkomputeran dan teras grafik, jambatan pelayan dan cache. Intipati kaedah serangan ialah, disebabkan oleh had lebar jalur bas cincin, operasi memori dalam satu proses melambatkan akses kepada memori proses lain. Dengan mengenal pasti butiran pelaksanaan melalui kejuruteraan terbalik, penyerang boleh menjana beban yang menyebabkan kelewatan capaian memori dalam proses lain dan menggunakan kelewatan ini sebagai saluran sampingan untuk mendapatkan maklumat.

Serangan ke atas bas CPU dalaman dihalang oleh kekurangan maklumat tentang seni bina dan kaedah pengendalian bas, serta tahap hingar yang tinggi, yang menjadikannya sukar untuk mengasingkan data berguna. Adalah mungkin untuk memahami prinsip operasi bas melalui kejuruteraan terbalik protokol yang digunakan semasa menghantar data melalui bas. Model klasifikasi data berdasarkan kaedah pembelajaran mesin telah digunakan untuk memisahkan maklumat berguna daripada hingar. Model yang dicadangkan memungkinkan untuk mengatur pemantauan kelewatan semasa pengiraan dalam proses tertentu, dalam keadaan apabila beberapa proses secara serentak mengakses memori dan bahagian tertentu data dikembalikan daripada cache pemproses.

Selain itu, kita boleh perhatikan pengenalpastian kesan penggunaan eksploitasi untuk varian pertama kelemahan Spectre (CVE-2017-5753) semasa serangan ke atas sistem Linux. Eksploitasi menggunakan kebocoran maklumat saluran sisi untuk mencari superblock dalam ingatan, tentukan inod fail /etc/shadow, dan hitung alamat halaman memori untuk mendapatkan semula fail daripada cache cakera.

Sumber: opennet.ru

Tambah komen