Blacksmith - serangan baru pada memori DRAM dan cip DDR4

Satu pasukan penyelidik dari ETH Zurich, Vrije Universiteit Amsterdam dan Qualcomm telah menerbitkan kaedah serangan RowHammer baharu yang boleh mengubah kandungan bit individu memori akses rawak dinamik (DRAM). Serangan itu diberi nama kod Blacksmith dan dikenal pasti sebagai CVE-2021-42114. Banyak cip DDR4 yang dilengkapi dengan perlindungan terhadap kaedah kelas RowHammer yang diketahui sebelum ini terdedah kepada masalah ini. Alat untuk menguji kelemahan sistem anda diterbitkan di GitHub.

Ingat bahawa serangan kelas RowHammer membolehkan anda memutarbelitkan kandungan bit memori individu dengan membaca data secara kitaran daripada sel memori jiran. Memandangkan memori DRAM ialah tatasusunan sel dua dimensi, setiap satu terdiri daripada kapasitor dan transistor, melakukan bacaan berterusan bagi kawasan memori yang sama mengakibatkan turun naik voltan dan anomali yang menyebabkan kehilangan kecil cas dalam sel jiran. Jika keamatan bacaan adalah tinggi, maka sel jiran mungkin kehilangan jumlah cas yang cukup besar dan kitaran penjanaan semula seterusnya tidak akan mempunyai masa untuk memulihkan keadaan asalnya, yang akan membawa kepada perubahan dalam nilai data yang disimpan dalam sel. .

Untuk melindungi daripada RowHammer, pengeluar cip mencadangkan mekanisme TRR (Target Row Refresh), yang melindungi daripada kerosakan sel dalam baris bersebelahan, tetapi memandangkan perlindungan itu berdasarkan prinsip "keselamatan melalui ketidakjelasan," ia tidak menyelesaikan masalah di akar, tetapi dilindungi hanya daripada kes khas yang diketahui, yang menjadikannya mudah untuk mencari cara untuk memintas perlindungan. Sebagai contoh, pada bulan Mei, Google mencadangkan kaedah Half-Double, yang tidak terjejas oleh perlindungan TRR, kerana serangan itu menjejaskan sel yang tidak bersebelahan langsung dengan sasaran.

Kaedah baharu Blacksmith menawarkan cara berbeza untuk memintas perlindungan TRR, berdasarkan akses tidak seragam kepada dua atau lebih rentetan penceroboh pada frekuensi berbeza untuk menyebabkan kebocoran cas. Untuk menentukan corak capaian memori yang membawa kepada kebocoran pengecasan, fuzzer khas telah dibangunkan yang secara automatik memilih parameter serangan untuk cip tertentu, mengubah susunan, keamatan dan sistematik akses sel.

Pendekatan sedemikian, yang tidak dikaitkan dengan mempengaruhi sel yang sama, menjadikan kaedah perlindungan TRR semasa tidak berkesan, yang dalam satu bentuk atau yang lain bermuara untuk mengira bilangan panggilan berulang ke sel dan, apabila nilai tertentu dicapai, memulakan pengecasan semula sel jiran. Dalam Blacksmith, corak capaian tersebar merentasi beberapa sel serentak dari sisi sasaran yang berbeza, yang memungkinkan untuk mencapai kebocoran cas tanpa mencapai nilai ambang.

Kaedah ini ternyata jauh lebih berkesan daripada kaedah yang dicadangkan sebelum ini untuk memintas TRR - para penyelidik berjaya mencapai herotan bit dalam semua 40 cip memori DDR4 berbeza yang dibeli baru-baru ini yang dibuat oleh Samsung, Micron, SK Hynix dan pengilang yang tidak diketahui (pengilangnya adalah tidak dinyatakan pada 4 cip). Sebagai perbandingan, kaedah TRRespass yang sebelum ini dicadangkan oleh penyelidik yang sama berkesan untuk hanya 13 daripada 42 cip yang diuji pada masa itu.

Secara umum, kaedah Blacksmith dijangka digunakan untuk 94% daripada semua cip DRAM di pasaran, tetapi penyelidik mengatakan beberapa cip lebih terdedah dan lebih mudah untuk diserang daripada yang lain. Penggunaan kod pembetulan ralat (ECC) dalam cip dan menggandakan kadar penyegaran memori tidak memberikan perlindungan lengkap, tetapi menyukarkan operasi. Perlu diperhatikan bahawa masalah itu tidak boleh disekat dalam cip yang telah dikeluarkan dan memerlukan pelaksanaan perlindungan baharu di peringkat perkakasan, jadi serangan itu akan kekal relevan selama bertahun-tahun.

Contoh praktikal termasuk kaedah untuk menggunakan Blacksmith untuk menukar kandungan entri dalam jadual halaman memori (PTE, entri jadual halaman) untuk mendapatkan keistimewaan kernel, merosakkan kunci awam RSA-2048 yang disimpan dalam ingatan dalam OpenSSH (anda boleh memasukkan kunci awam ke dalam mesin maya orang lain untuk memadankan kunci peribadi penyerang untuk menyambung ke VM mangsa) dan memintas pemeriksaan kelayakan dengan mengubah suai memori proses sudo untuk mendapatkan keistimewaan root. Bergantung pada cip, ia mengambil masa dari 3 saat hingga beberapa jam masa serangan untuk menukar satu bit sasaran.

Selain itu, kami boleh perhatikan penerbitan rangka kerja LiteX Row Hammer Tester terbuka untuk menguji kaedah perlindungan memori terhadap serangan kelas RowHammer, yang dibangunkan oleh Antmicro untuk Google. Rangka kerja ini berdasarkan penggunaan FPGA untuk mengawal sepenuhnya arahan yang dihantar terus ke cip DRAM untuk menghapuskan pengaruh pengawal memori. Toolkit dalam Python ditawarkan untuk interaksi dengan FPGA. Gerbang berasaskan FPGA termasuk modul untuk pemindahan data paket (mentakrifkan corak akses memori), Pelaksana Muatan, pengawal berasaskan LiteDRAM (memproses semua logik yang diperlukan untuk DRAM, termasuk pengaktifan baris dan pengemaskinian memori) dan CPU VexRiscv. Perkembangan projek itu diedarkan di bawah lesen Apache 2.0. Pelbagai platform FPGA disokong, termasuk Lattice ECP5, Xilinx Series 6, 7, UltraScale dan UltraScale+.

Sumber: opennet.ru

Tambah komen