Apa yang terjadi ketika saya menggunakan 'dd' untuk menimpa disk tempat Ubuntu berjalan?

9

Apa yang akan terjadi jika saya menggunakan

sudo dd if=/dev/zero of=/dev/sda

dari instalasi Ubuntu dari mana /dev/sda ?


Saya mencobanya di VM, dan tampaknya sudah menghapus disk dengan benar. Apakah ini akan terjadi setiap saat? Apakah ini cara aman untuk "menghapus" instalasi Ubuntu dan semua data?

Pertanyaan saya agak terinspirasi oleh:

  1. Bagaimana cara mencopot pemasangan Ubuntu dari komputer?
  2. Bagaimana 'rm -rf /' dapat menghapus semua file di sistem? .
JonasCz - Pasang kembali Monica
sumber
2
Tidak tidak Tidak. Ide buruk. Jangan mengandalkan ini jika Anda ingin menghapus data Anda dengan aman.
André Borie

Jawaban:

16

Sebenarnya, sistem file masih di-mount, dan beberapa penulisan buffer artinya mereka masih dalam RAM menunggu untuk ditulis ke disk. Katakanlah dddengan benar menimpa segalanya, dan tepat di belakangnya buffer semakin memerah dan beberapa data yang berpotensi sensitif ditulis kembali ke disk. Jadi tidak, ini bukan cara yang aman untuk menghapus disk.

Anda dapat menghindari masalah ini dengan terlebih dahulu melakukan remounting dalam mode read-only pada sistem file root dan semua sistem file lain yang ada di disk (atau unmount sepenuhnya, tetapi Anda tidak akan dapat dengan sistem file root), dan kemudian, tidak ada lebih banyak menulis harus diizinkan pada sistem berkas sama sekali (jadi tidak perlu buffer untuk disiram) sehingga perintah Anda harus aman sekarang, meskipun itu masih ide yang buruk jika panik karena butuh waktu lama.

Jika Anda ingin memiliki semacam fitur hapus panik, saya sarankan untuk mengenkripsi disk Anda dengan LUKS (installer Ubuntu dapat melakukannya) dan kemudian mengikuti jawaban saya di Security Stack Exchange . Ini melibatkan penghapusan cryptheader yang hanya berukuran 2MB dan butuh waktu kurang dari satu detik untuk menimpa. Kemudian restart sistem dan kunci enkripsi disk akan hilang dari memori, tanpa ada cara untuk mengembalikannya karena cryptheader itu sendiri sudah hilang juga.

André Borie
sumber
10

Saya mengorbankan VM menggunakan penggunaan yang sedikit lebih maju dari ddpinjaman dan sedikit dimodifikasi dari halaman Arch Wiki .

Pertama instal meter kemajuan yang bagus:

sudo apt-get install pv

Dan kemudian jalankan 'ditingkatkan' ddperintah

sudo openssl enc -aes-256-ctr -pass pass:"$(dd if=/dev/urandom bs=128 count=1 2>/dev/null \
| base64)" -nosalt </dev/zero \
| pv -bartpes "$(sudo blockdev --getsize64 /dev/sda)" \
| sudo dd bs=64K of=/dev/sda

Ini akan meninggalkan disk yang diisi dengan ciphertext AES. Penghapusan disk yang lengkap dan aman? Mungkin lebih baik daripada ddcontoh Anda sendiri tetapi tidak ada yang sepenuhnya aman atau dijamin ...

masukkan deskripsi gambar di sini

Dan Anda berutang satu VM kepada saya :)

Referensi:

andrew.46
sumber
Bisakah Anda memberikan contoh tentang bagaimana sintaksis jika seseorang lebih suka mengisi disk dengan nol (jika = / dev / nol) menggunakan dddan pvtolong?
Stormlord
1
@ Stormlord Anda cukup menyalurkan melalui pv(penampil pipa), jadidd if=/dev/zero | pv | dd of=/dev/sdX
someonewithpc
2
Anda tidak perlu mengorbankan VM - buat saja snapshot sebelumnya, dan pulihkan setelah selesai :-)
JonasCz - Reinstate Monica
Jadi, bahkan jika ada beberapa penulisan di belakang, hasil totalnya sangat kompleks. Tanpa "sampah", jika tidak maka akan mudah untuk hexdump disk untuk menemukan nilai-nilai tidak nol.
mckenzm
6

Jawaban singkat: itu akan melakukan kira-kira apa yang Anda inginkan dan kemudian tidak ada yang berhasil. Menggunakan ddAnda beroperasi pada tingkat di bawah sistem file yang berarti bahwa kendala apa pun yang akan berlaku tidak lagi relevan (ini tidak berarti bahwa kernel tidak dapat mencegah Anda melakukan ini - tetapi tidak). Beberapa konten dari sistem file sudah ada dalam memori, misalnya kernel dan ddprogram itu sendiri, dan beberapa akan ada dalam cache. Ada kemungkinan bahwa jika sistem berada dalam mode multi-pengguna, beberapa file dapat ditulis kembali saat ddsedang berlangsung, dengan asumsi bahwa mereka benar-benar telah berubah, dan jika Anda berada di bawah tekanan memori beberapa halaman dari sana juga mungkin akan terhapus (mereka harus dienkripsi sehingga tidak dapat digunakan setelah reboot).

Sebagian besar perintah yang akan Anda keluarkan setelah ini - termasuk reboot- tidak akan ada di cache dan tidak akan berfungsi. Jadi jika Anda berada dalam mode pengguna tunggal, itu akan sangat baik, jika Anda berada dalam mode multi-pengguna itu akan menghapus sebagian besar data. Idealnya Anda harus melakukannya dengan mem-boot dari media lain (bahkan mungkin berhenti pada initrd) sehingga Anda dapat yakin dari mana semua penulisan itu berasal.

Jika Anda ingin penghapusan yang aman, ini tidak akan berhasil karena masih ada beberapa jejak data asli yang tersisa jika Anda hanya nol. Biasanya Anda ingin hingga tiga penulisan acak, yang berarti menyalin dari /dev/urandombukannya /dev/zero- lebih lambat tapi lebih aman. Beberapa mungkin menyarankan agar Anda menggunakan /dev/randomyang merupakan perangkat untuk data acak "murni" - tidak ada pseudo-acak - tetapi untuk tujuan ini kesempatan seseorang yang mengelola untuk memecahkan benih PRNG dan berhasil menutupi data pada dasarnya dapat diabaikan.

Jika Anda benar - benar paranoid, Anda harus membuang perangkat penyimpanan ke dalam tungku sehingga dapat mendemagnetisasi / mengeluarkan.

Jim Driscoll
sumber
1
Apakah Anda ingat tantangan dd? Ini bertahun-tahun yang lalu, tetapi mereka menawarkan hadiah kepada perusahaan mana pun yang dapat memulihkan data dari hard drive yang telah di-nolkan satu kali. Mereka tidak punya peminat.
Casey
1
"Tiga kali" adalah omong kosong. Data acak 1 kali tentu saja tidak dapat dipulihkan. Bahkan nol akan sangat mahal untuk dipulihkan (lihat komentar @ Casey). Mungkin jika bayarannya $ 1 miliar atau lebih, mereka akan menerima ...
R .. GitHub BERHENTI MEMBANTU ICE
Tergantung pada anggaran Anda, dan teknologi disk. Jika piring, Anda mungkin bisa mendapatkan data. Bahkan dengan teknologi magnetik "vertikal". Semakin volatile memori, semakin aman Anda.
mckenzm
4

Ini akan seperti yang terjadi pada VM Anda menghapus disk dan membuat sistem Anda tidak dapat digunakan.

Namun jika Anda memiliki semacam 'penghapusan panik' dalam pikiran ddmungkin tidak cukup cepat untuk itu dan saya tidak yakin apakah ada perintah atau program yang lebih cepat menyediakannya dalam kasus itu.

Videonauth
sumber
1

Seharusnya bekerja, proses yang berjalan diadakan di Ram dan tidak perlu disk. Saya akan menggunakan sistem live yang berjalan dari cd atau usb. Bahkan ada dban, linux live khusus untuk penghapusan disk.

Menimpa disk Anda dengan nol adalah menyimpan, tetapi jika Anda cukup paranoid atau memiliki aturan hukum, Anda dapat menimpa dengan data acak beberapa kali.

Berhati-hatilah saat menggunakan ssd overwriting tidak menjamin penghapusan semua data karena leveling keausan.

Jika Anda menggunakan enkripsi disk lengkap (luks) Anda tidak perlu menghapus disk lengkap, menghapus tajuk luks sudah cukup.

Burger Uwe
sumber