Terkadang, ada kebutuhan untuk menghapus file dalam sistem file, dan memastikan bahwa file tersebut benar-benar hilang. File yang berisi kata sandi sensitif, misalnya, harus dihapus dari disk secara menyeluruh.
Mengeluarkan sederhana rm
pada sistem file biasa menghapus inode ("pointer") ke file, tetapi tidak menghapus konten file dalam disk fisik - ini dibiarkan di sana sampai ditimpa ketika filesystem membutuhkan ruang kosong.
Pada banyak sistem file, program yang rusak memungkinkan penghapusan yang aman. Namun, pada sistem file CoW seperti btrfs, pendekatan ini tidak berguna . Masalahnya diperburuk oleh fakta bahwa file tersebut mungkin ada pada snapshot volume.
Apakah ada cara untuk menghapus file dengan aman pada sistem file btrfs? Apakah cukup untuk menghapus semua petunjuk (pada semua volume) dan mengisi ruang kosong dengan nol ?
sumber
Jawaban:
Penghapusan aman adalah proposisi yang sulit pada sistem file apa pun. Kecuali jika filesystemnya sangat aneh dan menjamin bahwa tidak ada salinan lain dari file tersebut, Anda perlu membersihkan semua ruang kosong pada perangkat. Walaupun Anda lebih cenderung menemukan banyak bit file pada sistem file copy-on-write, bahkan lebih banyak sistem file "statis" tidak memiliki jaminan ini dalam praktiknya, karena banyak file dapat diedit, sehingga ada bit dari versi sebelumnya File tergeletak di sekitar.
Perhatikan bahwa menghapus dengan nol sama baiknya dengan menghapus dengan byte acak, dan Anda tidak perlu beberapa lintasan. Menghapus dengan nol meninggalkan data residual yang dapat dipulihkan sebagian dalam kondisi lab dengan teknologi hard disk 1980-an; ini tidak berlaku lagi hari ini. Lihat Mengapa menulis angka nol (atau data acak) pada hard drive beberapa kali lebih baik daripada hanya melakukannya sekali?
Anda dapat menyingkirkan data rahasia cleartext dengan mengenkripsi semua yang ada di disk. Atur volume ecryptfs di atas sistem file itu dan pindahkan semua file (rahasia) Anda ke sana. Kemudian timpa semua ruang yang tidak digunakan pada sistem file. Anda dapat menghapus sebagian besar dengan mengisi sistem file dengan
cat /dev/zero >zero
. Mungkin masih ada beberapa informasi yang tersisa di blok yang tidak lengkap (blok yang berisi potongan file terakhir, diikuti oleh beberapa sampah - yang bisa jadi sisa dari file rahasia). Untuk memastikan bahwa tidak ada blok yang tidak lengkap, pindahkan semua yang ada di sistem file ke ecryptfs (file ecryptfs menggunakan seluruh blok, setidaknya pada pengaturan tipikal di mana blok adalah 4kB). Pastikan untuk menerapkan ini pada semua volume dan untuk menghapus semua snapshot yang berisi data rahasia plaintext.Mungkin masih ada beberapa informasi yang tersisa di jurnal. Saya tidak tahu cara menggosok itu.
Pada SSD, karena memblokir realokasi, mungkin ada data yang tersisa yang tidak dapat dibaca oleh perangkat lunak normal tetapi dapat dipulihkan dengan meretas firmware atau dengan akses fisik. Di sana satu-satunya jalan Anda adalah penghapusan penuh SSD.
sumber
0
ok, dan tidak tunduk pada TRIMing, katakan saja menulis semua1
? Atau apakah beberapa drive menggunakan kompresi pada semuanya?Hmmm, btrfs tampaknya mengalahkan semua metode merobek-robek yang biasa ...
nodatacow
tetapi tampaknya tidak mempengaruhi file yang sudah ada.debugfs
. Ini hanya untuk sistem file ext tetapi ada patch untuk itu yang mungkin berfungsi. Anda dapat menggunakannya untuk mengetahui alamat blok yang terkena dampak dan kemudian menimpa mereka langsung di / dev / sdXY. Tapi itu sangat berbahaya dan mungkin tidak berfungsi (terutama jika ada lebih banyak snapshot file)Upaya terbersih (untuk data yang benar-benar sangat sensitif) adalah dengan:
Ini mungkin bukan pendekatan termurah tetapi mengingat biaya penyimpanan yang rendah saat ini dan masalah yang Anda miliki dengan opsi lain itu mungkin sebenarnya yang termurah (dalam hal jam kerja).
sumber
nodatacow
menetapkan status defaultC
bendera untuk file yang baru dibuat . Tentunya salah satu bisa sajachattr +C ~/.browser/logins.sqlite
dan kemudianshred
itu?Ada
shred(1)
untuk Unix / Linux (harus ada dalam paket distribusi Anda). Itulah yang direkomendasikan EFF .sumber