Menjalankan shred
pada file di memori tidak ada gunanya. Data dari file juga kemungkinan ada di memori aplikasi, di cache, dll. Memori milik suatu proses yang tidak dihapus saat proses mati:Linux, seperti kebanyakan kernel, menghapus memori sebelum memberikannya ke suatu proses, bukan saat dirilis, karena lebih cepat.
Tentu saja, tidak ada jaminan bahwa file tersebut bisa diperoleh kembali. Tapi tidak ada jaminan bahwa itu juga tidak bisa. Jika model penyerang Anda adalah penyerang dapat melihat konten RAM Anda, ada banyak hal yang perlu Anda perhatikan. Paling tidak Anda perlu menghapus halaman RAM segera setelah dirilis oleh proses. Anda dapat menerapkan tambalan Grsecurity ke kernel Linux, setidaknya PAX_MEMORY_SANITIZE
pilihan. Dan Anda perlu berhati-hati tentang proses apa yang sedang berjalan dan mungkin menyimpan informasi rahasia. Dan perlu diingat bahwa kernel juga menyimpan informasi rahasia, seperti status RNG dan kunci enkripsi disk. Tambalan TRESOR ke kernel Linux melindungi kunci enkripsi disk selama operasi normal, tetapi ini bukan pertahanan yang sempurna dan saya tidak mengetahui tambalan serupa untuk keadaan RNG.
Bahaya yang Anda coba mitigasi adalah jurnal sistem file, yaitu shred
tidak efektif pada sistem file yang memiliki jurnal (misalnya ext3, ext4, reiserfs).
Dengan asumsi Anda tidak menggunakan unionfs apa pun untuk kegigihan (ternyata Anda bisa melakukannya di Tails meskipun saya tidak pernah mencobanya), semuanya disimpan dalam tmpfs
.
Dokumentasi linux di tmpfs
tidak merinci apakah melakukan penjurnalan. Namun, tmpfs
didasarkan pada ramfs
, sistem file yang sama yang digunakan di initramfs
, dan sistem file itu tidak memiliki jurnal. Oleh karena itu (kurang lebih) aman untuk mengasumsikan bahwa tmpfs
tidak memiliki jurnal juga.
Pada sistem file tanpa jurnal shred
akan melakukan penimpaan file, membuatnya sulit untuk dipulihkan dengan alat analitik (hampir tidak mungkin untuk memulihkan dari dump RAM). Karena semuanya terjadi di halaman memori, dan inode dari tmpfs
cukup arahkan ke halaman memori, menggunakan shred
jauh lebih baik karena dapat menulis ke halaman memori ini.
Peringatan
Di atas pasti bekerja dengan cara ini di Tails, dan di Knoppix. Ini kemungkinan akan bekerja dengan cara yang sama di hampir semua distro Linux di LiveCD, termasuk Kali Linux namun ada peringatan .
Ini berfungsi untuk file! Memori juga akan berisi memori aplikasi, lihat jawaban Gilles tentang memori aplikasi. Serius, lihat jawaban itu, ini membuka poin penting.
Juga distro berbasis Ubuntu Linux (yang mungkin menyertakan atau tidak menyertakan Kali Linux* karena pendahulunya, Backtrack, berbasis Ubuntu) akan me-mount swap apa pun yang ditemukannya pada mesin yang di-boot, yang mungkin meninggalkan vektor serangan yang jauh lebih buruk! Data tetap di perangkat itu sendiri!
Peringatan lain dengan Kali Linux, adalah ia hadir dengan metasploit
dan mem-boot postgres
database untuk digunakan dengan metasploit
. Postgres memiliki penjurnalannya sendiri (yang berbasis file bukan berbasis sistem file), yang mungkin ingin Anda hancurkan juga (yaitu menghancurkan file postgres tidak hanya menghapus data melalui psql
).
* Kali tidak berbasis Ubuntu, ini berbasis Debian, namun saya tidak yakin apakah Kali menghapus semua skrip konfigurasinya sejak disebut Backtrack dan berbasis Ubuntu