Kasper, pengimbas untuk masalah pelaksanaan kod spekulatif dalam kernel Linux, kini tersedia

Satu pasukan penyelidik dari Universiti Percuma Amsterdam telah menerbitkan kit alat Kasper yang direka untuk mengenal pasti coretan kod dalam kernel Linux yang boleh digunakan untuk mengeksploitasi kelemahan kelas Spectre yang disebabkan oleh pelaksanaan kod spekulatif pada pemproses. Kod sumber untuk kit alat diedarkan di bawah lesen Apache 2.0.

Mari kita ingat bahawa untuk melakukan serangan seperti Spectre v1, yang memungkinkan untuk menentukan kandungan memori, kehadiran dalam kod istimewa urutan perintah tertentu (alat) diperlukan, yang membawa kepada pelaksanaan spekulatif arahan . Untuk tujuan pengoptimuman, pemproses mula melaksanakan alat sedemikian dalam mod spekulatif, kemudian menentukan bahawa ramalan cawangan tidak wajar dan melancarkan operasi ke keadaan asalnya, tetapi data yang diproses semasa pelaksanaan spekulatif berakhir dalam cache dan penimbal mikroarkitektur dan tersedia untuk mendapatkan semula daripada mereka menggunakan pelbagai kaedah menentukan data sisa melalui saluran pihak ketiga.

Alat yang tersedia sebelum ini untuk mengimbas alat untuk kelemahan Spectre, berdasarkan pencarian corak biasa, menunjukkan tahap positif palsu yang sangat tinggi, sementara kehilangan banyak alat sebenar (percubaan menunjukkan bahawa 99% daripada alat yang dikenal pasti oleh alat sedemikian tidak boleh digunakan untuk serangan , dan 33% daripada alat berfungsi yang boleh menyebabkan serangan tidak disedari).

Untuk meningkatkan kualiti mengenal pasti alat yang bermasalah, Kasper memodelkan kelemahan yang boleh dieksploitasi oleh penyerang pada setiap langkah menjalankan serangan kelas Spectre - masalah yang membenarkan kawalan data dimodelkan (contohnya, menggantikan data penyerang kepada struktur mikroarkitektur untuk mempengaruhi pelaksanaan spekulatif berikutnya menggunakan Serangan kelas LVI), dapatkan akses kepada maklumat sulit (contohnya, apabila melangkaui sempadan penimbal atau menggunakan memori selepas ia dibebaskan) dan membocorkan maklumat sulit (contohnya, dengan menganalisis keadaan cache pemproses atau menggunakan kaedah MDS).

Kasper, pengimbas untuk masalah pelaksanaan kod spekulatif dalam kernel Linux, kini tersedia

Apabila menguji, kernel dipautkan dengan perpustakaan masa jalan Kasper dan semakan berjalan di peringkat LLVM. Proses semakan meniru pelaksanaan kod spekulatif, dilaksanakan menggunakan mekanisme pemulihan pusat pemeriksaan, yang secara khusus melaksanakan cawangan kod yang diramalkan dengan salah, dan kemudian kembali ke keadaan asal sebelum cawangan bermula. Kasper juga cuba mensimulasikan pelbagai kelemahan perisian dan perkakasan, menganalisis kesan kesan seni bina dan seni bina mikro, dan melakukan ujian fuzz terhadap kemungkinan tindakan penyerang. Untuk menganalisis aliran pelaksanaan, port DataFlowSanitizer untuk kernel Linux digunakan, dan untuk ujian fuzzing, versi diubah suai pakej syzkaller digunakan.

Kasper, pengimbas untuk masalah pelaksanaan kod spekulatif dalam kernel Linux, kini tersedia

Imbasan kernel Linux menggunakan Kasper mengenal pasti 1379 alat yang tidak diketahui sebelum ini yang berpotensi membawa kepada kebocoran data semasa pelaksanaan arahan spekulatif. Adalah diperhatikan bahawa mungkin hanya sebahagian daripada mereka yang boleh menimbulkan masalah sebenar, tetapi untuk menunjukkan bahawa terdapat bahaya sebenar, dan bukan hanya satu teori, prototaip kerja eksploitasi telah dibangunkan untuk salah satu serpihan kod yang bermasalah, yang membawa kepada maklumat kebocoran daripada memori kernel.

Sumber: opennet.ru

Tambah komen