Metode serangan telah diusulkan untuk mengidentifikasi fragmen memori di server dari jarak jauh

Sekelompok peneliti dari Universitas Teknik Graz (Austria), yang sebelumnya dikenal mengembangkan serangan MDS, NetSpectre, Throwhammer dan ZombieLoad, telah menerbitkan metode serangan saluran samping baru (CVE-2021-3714) terhadap mekanisme Deduplikasi Memori , yang memungkinkan untuk menentukan keberadaan data tertentu dalam memori, mengatur kebocoran konten memori byte demi byte, atau menentukan tata letak memori untuk melewati perlindungan pengacakan berbasis alamat (ASLR). Metode baru ini berbeda dari varian serangan yang ditunjukkan sebelumnya pada mekanisme deduplikasi dengan melakukan serangan dari host eksternal dengan menggunakan kriteria perubahan waktu respons terhadap permintaan yang dikirim ke penyerang melalui protokol HTTP/1 dan HTTP/2. Kemampuan melakukan serangan telah dibuktikan untuk server berbasis Linux dan Windows.

Serangan pada mekanisme deduplikasi memori menggunakan perbedaan waktu pemrosesan operasi tulis sebagai saluran untuk membocorkan informasi dalam situasi di mana perubahan data mengarah pada kloning halaman memori yang dideduplikasi menggunakan mekanisme Copy-On-Write (COW) . Selama operasi, kernel mendeteksi halaman memori yang identik dari proses yang berbeda dan menggabungkannya, memetakan halaman memori yang identik ke dalam satu area memori fisik untuk menyimpan hanya satu salinan. Ketika salah satu proses mencoba mengubah data yang terkait dengan halaman yang dihapus duplikatnya, pengecualian (kesalahan halaman) terjadi dan, menggunakan mekanisme Copy-On-Write, salinan terpisah dari halaman memori dibuat secara otomatis, yang ditugaskan ke proses tersebut. Waktu tambahan dihabiskan untuk menyelesaikan penyalinan, yang mungkin merupakan tanda perubahan data mengganggu proses lain.

Para peneliti telah menunjukkan bahwa penundaan yang diakibatkan oleh mekanisme KK dapat ditangkap tidak hanya secara lokal, namun juga dengan menganalisis perubahan waktu penyampaian respons melalui jaringan. Beberapa metode telah diusulkan untuk menentukan isi memori dari host jarak jauh dengan menganalisis waktu eksekusi permintaan melalui protokol HTTP/1 dan HTTP/2. Untuk menyimpan templat yang dipilih, aplikasi web standar digunakan yang menyimpan informasi yang diterima dalam permintaan di memori.

Prinsip umum serangan ini adalah mengisi halaman memori di server dengan data yang berpotensi mengulangi isi halaman memori yang sudah ada di server. Penyerang kemudian menunggu waktu yang diperlukan kernel untuk menghapus duplikat dan menggabungkan halaman memori, kemudian memodifikasi data duplikat yang dikontrol dan mengevaluasi waktu respons untuk menentukan apakah serangan berhasil.

Metode serangan telah diusulkan untuk mengidentifikasi fragmen memori di server dari jarak jauh

Selama percobaan, tingkat kebocoran informasi maksimum adalah 34.41 byte per jam saat menyerang melalui jaringan global dan 302.16 byte per jam saat menyerang melalui jaringan lokal, yang lebih cepat dibandingkan metode ekstraksi data lainnya melalui saluran pihak ketiga (misalnya, dalam serangan NetSpectre, kecepatan transfer data adalah 7.5 byte pada jam satu).

Tiga opsi serangan yang berhasil telah diusulkan. Opsi pertama memungkinkan Anda menentukan data di memori server web yang menggunakan Memcached. Serangan tersebut bermuara pada memuat kumpulan data tertentu ke dalam penyimpanan Memcached, menghapus blok yang dihapus duplikatnya, menulis ulang elemen yang sama, dan menciptakan kondisi agar penyalinan COW terjadi dengan mengubah konten blok. Selama percobaan dengan Memcached, dalam 166.51 detik dimungkinkan untuk menentukan versi libc yang diinstal pada sistem yang berjalan di mesin virtual.

Opsi kedua memungkinkan untuk mengetahui konten catatan di DBMS MariaDB, saat menggunakan penyimpanan InnoDB, dengan membuat ulang konten byte demi byte. Serangan tersebut dilakukan dengan mengirimkan permintaan yang dimodifikasi secara khusus, mengakibatkan ketidakcocokan byte tunggal di halaman memori dan menganalisis waktu respons untuk menentukan bahwa tebakan tentang isi byte tersebut benar. Tingkat kebocoran tersebut rendah dan mencapai 1.5 byte per jam ketika menyerang dari jaringan lokal. Keuntungan dari metode ini adalah dapat digunakan untuk memulihkan isi memori yang tidak diketahui.

Opsi ketiga memungkinkan untuk sepenuhnya melewati mekanisme perlindungan KASLR dalam 4 menit dan memperoleh informasi tentang offset memori gambar kernel mesin virtual, dalam situasi di mana alamat offset berada di halaman memori di mana data lain tidak berubah. Serangan dilakukan dari host yang terletak 14 hop dari sistem yang diserang. Contoh kode untuk mengimplementasikan serangan yang disajikan dijanjikan akan dipublikasikan di GitHub.

Sumber: opennet.ru

Tambah komentar