Perisian perlindungan LVI Google menunjukkan pencapaian prestasi 14x ganda

Zola Bridges daripada Google ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ» untuk set pengkompil LLVM, tampalan dengan pelaksanaan perlindungan SESES (Speculative Execution Side Effect Suppression), yang membantu menyekat serangan ke atas mekanisme pelaksanaan spekulatif dalam CPU Intel, seperti LVI. Kaedah perlindungan dilaksanakan pada peringkat pengkompil dan berdasarkan penambahan arahan oleh pengkompil semasa menjana kod mesin LFENCE, yang dimasukkan sebelum setiap memori membaca atau menulis arahan, serta sebelum arahan cawangan pertama dalam kumpulan arahan yang menamatkan blok.

Arahan LFENCE menunggu semua bacaan memori sebelumnya untuk komit dan melumpuhkan preemption arahan berikutnya selepas LFENCE sehingga komit selesai. Penggunaan LFENCE membawa kepada penurunan yang ketara dalam prestasi, jadi perlindungan dicadangkan untuk digunakan dalam kes yang melampau untuk kod yang kritikal. Selain perlindungan penuh, tampung menawarkan tiga bendera yang membolehkan anda melumpuhkan tahap perlindungan tertentu secara terpilih untuk mengurangkan kesan negatif terhadap prestasi.

Dalam ujian yang dijalankan, penggunaan perlindungan SESES untuk pakej BoringSSL membawa kepada pengurangan bilangan operasi sesaat yang dilakukan oleh perpustakaan sebanyak 14 kali - prestasi versi perpustakaan yang dilindungi secara purata hanya 7.1% daripada versi tidak dilindungi (variasi bergantung pada ujian dari 4% hingga 23%) ).

Sebagai perbandingan, dicadangkan Sebelum ini, untuk GNU Assembler, mekanisme yang melakukan penggantian LFENCE selepas setiap operasi beban memori dan sebelum beberapa arahan cawangan menunjukkan penurunan prestasi kira-kira 5 kali (22% daripada kod tanpa perlindungan). Kaedah perlindungan juga dicadangkan ΠΈ dilaksanakan oleh jurutera Intel, tetapi keputusan ujian prestasi untuknya masih belum diterbitkan. Pada mulanya, penyelidik yang mengenal pasti serangan LVI meramalkan penurunan prestasi 2 hingga 19 kali ganda apabila menggunakan perlindungan penuh.

Sumber: opennet.ru

Tambah komen