Kerentanan dalam cryptsetup yang memungkinkan Anda menonaktifkan enkripsi di partisi LUKS2

Kerentanan (CVE-2021-4122) telah diidentifikasi dalam paket Cryptsetup, yang digunakan untuk mengenkripsi partisi disk di Linux, yang memungkinkan enkripsi dinonaktifkan pada partisi dalam format LUKS2 (Linux Unified Key Setup) dengan mengubah metadata. Untuk mengeksploitasi kerentanan, penyerang harus memiliki akses fisik ke media terenkripsi, mis. Metode ini masuk akal terutama untuk menyerang perangkat penyimpanan eksternal terenkripsi, seperti Flash drive, yang dapat diakses oleh penyerang tetapi tidak mengetahui kata sandi untuk mendekripsi data.

Serangan ini hanya berlaku untuk format LUKS2 dan dikaitkan dengan manipulasi metadata yang bertanggung jawab untuk mengaktifkan ekstensi "enkripsi ulang online", yang memungkinkan, jika perlu mengubah kunci akses, untuk memulai proses enkripsi ulang data dengan cepat tanpa berhenti bekerja dengan partisi. Karena proses dekripsi dan enkripsi dengan kunci baru membutuhkan banyak waktu, “enkripsi ulang online” memungkinkan untuk tidak mengganggu pekerjaan dengan partisi dan melakukan enkripsi ulang di latar belakang, secara bertahap mengenkripsi ulang data dari satu kunci ke kunci lainnya. . Dimungkinkan juga untuk memilih kunci target kosong, yang memungkinkan Anda mengubah bagian tersebut menjadi bentuk yang didekripsi.

Penyerang dapat membuat perubahan pada metadata LUKS2 yang mensimulasikan pembatalan operasi dekripsi sebagai akibat dari kegagalan dan mencapai dekripsi bagian partisi setelah aktivasi dan penggunaan drive yang dimodifikasi oleh pemiliknya. Dalam hal ini, pengguna yang telah menghubungkan drive yang dimodifikasi dan membuka kuncinya dengan kata sandi yang benar tidak menerima peringatan apa pun tentang proses memulihkan operasi enkripsi ulang yang terputus dan hanya dapat mengetahui kemajuan operasi ini menggunakan “luks Dump” memerintah. Jumlah data yang dapat didekripsi oleh penyerang bergantung pada ukuran header LUKS2, namun pada ukuran default (16 MiB) dapat melebihi 3 GB.

Masalahnya disebabkan oleh fakta bahwa meskipun enkripsi ulang memerlukan perhitungan dan verifikasi hash dari kunci baru dan lama, hash tidak diperlukan untuk memulai dekripsi jika keadaan baru menyiratkan tidak adanya kunci teks biasa untuk enkripsi. Selain itu, metadata LUKS2, yang menentukan algoritma enkripsi, tidak dilindungi dari modifikasi jika jatuh ke tangan penyerang. Untuk memblokir kerentanan, pengembang menambahkan perlindungan tambahan untuk metadata ke LUKS2, yang sekarang hash tambahannya diperiksa, dihitung berdasarkan kunci yang diketahui dan konten metadata, yaitu. penyerang tidak dapat lagi secara diam-diam mengubah metadata tanpa mengetahui kata sandi dekripsi.

Skenario serangan yang umum mengharuskan penyerang untuk mendapatkan drive tersebut beberapa kali. Pertama, penyerang yang tidak mengetahui kata sandi akses membuat perubahan pada area metadata, memicu dekripsi sebagian data saat drive diaktifkan lagi. Drive tersebut kemudian dikembalikan ke tempatnya dan penyerang menunggu hingga pengguna menghubungkannya dengan memasukkan kata sandi. Saat perangkat diaktifkan oleh pengguna, proses enkripsi ulang latar belakang dimulai, di mana sebagian data terenkripsi diganti dengan data yang didekripsi. Selanjutnya, jika penyerang berhasil mendapatkan kembali perangkat tersebut, beberapa data di drive akan didekripsi.

Masalahnya diidentifikasi oleh pengelola proyek cryptsetup dan diperbaiki dalam pembaruan cryptsetup 2.4.3 dan 2.3.7. Status pembaruan yang dihasilkan untuk memperbaiki masalah distribusi dapat dilacak di halaman berikut: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch. Kerentanan hanya muncul sejak rilis cryptsetup 2.2.0, yang memperkenalkan dukungan untuk operasi “enkripsi ulang online”. Sebagai solusi perlindungan, peluncuran dengan opsi “--disable-luks2-reencryption” dapat digunakan.

Sumber: opennet.ru

Tambah komentar