Ketergantungan waktu eksekusi instruksi pada data pada CPU ARM dan Intel

Eric Biggers, salah satu pengembang sandi Adiantum dan pengelola subsistem fscrypt kernel Linux, mengusulkan serangkaian tambalan untuk memblokir masalah keamanan yang timbul dari fitur prosesor Intel yang tidak menjamin waktu eksekusi konstan untuk berbagai data yang diproses. Masalahnya muncul pada prosesor Intel yang dimulai dengan keluarga Ice Lake. Masalah serupa juga terjadi pada prosesor ARM.

Adanya ketergantungan waktu eksekusi instruksi pada data yang diproses dalam instruksi ini dianggap oleh pembuat patch sebagai kerentanan pada prosesor, karena perilaku tersebut tidak dapat menjamin keamanan operasi kriptografi yang dilakukan dalam sistem. Banyak implementasi algoritma kriptografi dirancang untuk memastikan bahwa data tidak mempengaruhi waktu eksekusi instruksi, dan pelanggaran perilaku ini dapat menyebabkan terciptanya serangan saluran samping yang memulihkan data berdasarkan analisis waktu pemrosesannya.

Berpotensi, ketergantungan data runtime juga dapat digunakan untuk meluncurkan serangan guna menentukan data kernel dari ruang pengguna. Menurut Eric Biggers, waktu eksekusi konstan tidak disediakan secara default bahkan untuk instruksi yang melakukan operasi penambahan dan XOR, serta untuk instruksi AES-NI khusus (informasi tidak dikonfirmasi oleh pengujian, menurut sumber lain, ada penundaan satu siklus selama perkalian vektor dan penghitungan bit).

Untuk menonaktifkan perilaku ini, Intel dan ARM telah mengusulkan tanda baru: PSTATE bit DIT (Data Independent Timing) untuk CPU ARM dan MSR bit DOITM (Data Operand Independent Timing Mode) untuk CPU Intel, mengembalikan perilaku lama dengan waktu eksekusi konstan. Intel dan ARM merekomendasikan untuk mengaktifkan perlindungan sesuai kebutuhan untuk kode penting, namun kenyataannya, komputasi kritis dapat terjadi di mana saja di kernel dan ruang pengguna, jadi kami mempertimbangkan untuk mengaktifkan mode DOITM dan DIT untuk seluruh kernel setiap saat.

Untuk prosesor ARM, cabang kernel Linux 6.2 telah mengadopsi patch yang mengubah perilaku kernel, namun patch ini dianggap tidak cukup karena hanya mencakup kode kernel dan tidak mengubah perilaku ruang pengguna. Untuk prosesor Intel, penyertaan proteksi masih dalam tahap review. Dampak patch terhadap performa belum diukur, namun menurut dokumentasi Intel, mengaktifkan mode DOITM akan mengurangi performa (misalnya, dengan menonaktifkan beberapa pengoptimalan, seperti pramuat khusus data) dan pada model prosesor mendatang, penurunan performa dapat meningkat .

Sumber: opennet.ru

Tambah komentar