Masalah dalam menghapus kunci enkripsi disk dari RAM selama migrasi Linux masuk ke mode siaga

Selama proses pemindahan toolkit cryptsetup-suspend ke NixOS, ditemukan bug pada subsistem enkripsi disk LUKS (Linux Pengaturan Kunci Terpadu), yang mana, dimulai dari kernel Linux Versi 6.9 (commit yang bermasalah), yang dirilis pada Mei 2024, menghentikan penghapusan kunci enkripsi dari RAM ketika sistem masuk ke mode siaga.

Alat cryptsetup-suspend digunakan dalam Debian Untuk mengunci partisi LUKS secara otomatis sebelum memasuki mode tidur. Diasumsikan bahwa jika laptop dicuri saat dalam mode tidur, penyerang tidak akan dapat mengakses data, karena bangun dari mode tidur akan memerlukan pemasukan kata sandi untuk memulihkan akses ke data terenkripsi. Karena bug kernel Linux Setelah mengunci partisi LUKS dengan perintah "cryptsetup luksSuspend", kunci-kunci tersebut tidak dihapus dari RAM dan tetap terlihat melalui /proc/keys, yang memungkinkan penyerang untuk mengekstraknya, misalnya, menggunakan metode "cold boot", dan menggunakannya untuk mengakses data.

Pembersihan kunci yang hilang ditemukan saat melakukan debugging kondisi race yang menyebabkan masalah sleep. Bug ini muncul setelah refactoring di kernel 6.9, yang menyebabkan kunci terikat pada thread pemanggil dan seharusnya dihapus setelah thread tersebut berakhir, tetapi malah tetap berada di memori. Untuk dimasukkan ke dalam kernel, Linux Sebuah perbaikan sederhana (patch) satu baris telah diusulkan untuk memperbaiki kesalahan tersebut.

Patch ini belum diterima ke dalam kernel karena mengandung kekurangan: patch ini hanya berfungsi untuk drive fisik, bukan perangkat loop virtual. Alih-alih memperbaiki masalah kernel, pengembang alat cryptsetup mengusulkan solusi sementara untuk menghapus kunci. Perubahan ini telah diterima dan akan disertakan dalam rilis cryptsetup 2.8.7.

Selain itu, NixOS memiliki implementasi skrip khusus untuk mengunci disk terenkripsi sebelum beralih ke mode tidur, yang menggunakan patch kernel lama, yang tidak diadopsi pada tahun 2015, yang secara paksa menghapus kunci dari memori sebelum beralih ke mode tidur.

Sumber: opennet.ru

Beli hosting yang andal untuk situs dengan perlindungan DDoS, server VPS VDS 🔥 Beli hosting website andal dengan perlindungan DDoS, server VPS VDS | ProHoster