Membela pelayan jahat, bagaimana menangani penghapusan partisi / boot


11

Saat menggunakan enkripsi disk penuh LUKS, bagaimana Anda melindungi terhadap pelayan jahat ?

Serangan maid jahat adalah ketika seseorang mendapatkan akses fisik ke komputer Anda saat Anda pergi dan membahayakan partisi yang tidak terenkripsi / boot untuk mengambil kata sandi FDE Anda saat berikutnya Anda memulai komputer Anda

Salah satu solusinya adalah meninggalkan partisi / boot pada USB stick yang selalu ada di tangan Anda (pelayan tidak dapat mengaksesnya), tetapi sistem file mana yang harus saya gunakan, dan bagaimana cara mengkonfigurasi sistem saya untuk menangani penghapusan dengan anggun. dari stik USB (dan dengan demikian partisi / boot itu sendiri)?

Saya menggunakan CentOS, tetapi jawaban generik, distro-agnostik tentu saja diterima. Terima kasih.

Jawaban:


5

Akhirnya menemukan jawabannya. Ini masih terasa sangat kotor dan kotor karena sistem tidak pernah menyadari bahwa /bootmungkin tidak dipasang dan Anda harus me-mount secara manual sebelum melakukan apa pun yang mungkin menulis untuk itu (pikirkan pembaruan sistem, dll), tetapi selain itu ia bekerja dengan sempurna .

  • siapkan flash drive Anda dengan satu partisi dengan flag boot yang terpasang di atasnya. Anda dapat menjalankannya shred -n 1 -v /dev/sdXuntuk menghapusnya sepenuhnya, termasuk semua sektor boot sebelumnya; setelah selesai jalankan fdiskuntuk membuat partisi dan mkfssistem file pilihan Anda di atasnya.
  • pasang flash drive Anda di suatu tempat, /mnt/bootatau bahkan /newbootakan baik-baik saja.
  • pindah semuanya dari /bootke flash drive dengan mv /boot/* /newboot.
  • edit Anda /etc/fstabdan ubah UUID partisi boot asli (atau buat entri jika tidak ada) agar cocok dengan yang ada di flash drive Anda. Anda bisa mendapatkan UUID dengan lsblk -o name,uuid. Juga tambahkan noautoopsi sehingga drive tidak akan dipasang secara otomatis untuk dapat menghapusnya segera setelah sistem mulai booting (setelah kernel dimuat) tanpa risiko merusak FS di atasnya.
  • unmount partisi boot asli dan flash drive ( umount /boot && umount /newboot) dan pasang flash drive; jika entri fstab Anda benar, Anda bisa menjalankannya mount /bootdan secara otomatis akan memasangnya berdasarkan UUID yang ditentukan dalam fstab.
  • regenerasi konfigurasi bootloader Anda untuk mencerminkan UUID partisi baru dan posisi "fisik", untuk GRUB flash drive akan benar-benar muncul sebagai hard drive pertama di komputer ( hd0). Jika Anda tidak keberatan menggunakan skrip konfigurasi GRUB default yang disediakan oleh sebagian besar distro, Anda dapat menjalankan grub-mkconfig -o /path/to/grub.cfgdan itu akan menghasilkan file sesuai dengan partisi yang sedang dipasang dan / atau fstab. Perhatikan bahwa untuk CentOS 7, yang benar grub.cfgsebenarnya terletak di /boot/grub2/grub.cfg.

Saat melakukan operasi apa pun yang dapat mengakses partisi boot, sambungkan stik USB Anda dan jalankan mount /boot. Setelah selesai, Anda dapat lari umount /boot. Catat bahwa perintah yang terakhir dapat menyelesaikan beberapa saat karena perintah ini membilas buffer ke disk (disk itu sendiri lambat sehingga kernel mendukung beberapa operasi penulisan untuk mempercepatnya).


Sama sekali tidak kotor, itu cara paling jelas untuk melakukan itu. Terima kasih telah menuliskannya!
dbanet

0

Pendekatan lain untuk masalah khusus ini adalah dengan menggunakan TPM untuk menyimpan kunci enkripsi, tetapi pertahanan tidak bergantung pada pengguna untuk membuatnya efektif. Solusi berbasis RHEL7 yang belum sempurna adalah tpm-luks ( https://github.com/GeisingerBTI/tpm-luks ).

Cara kerjanya adalah saat boot, setiap langkah dari proses boot mengukur langkah berikutnya dan menyimpan pengukuran ini ke PCR pada TPM. Setelah proses boot selesai, tpm-luks memeriksa status PCR terhadap konfigurasi "yang dikenal baik". Jika dalam konfigurasi "dikenal baik", TPM akan membuka segel kunci LUKS, dan tpm-luks akan meneruskan data ini untuk membuka kunci partisi root LUKS.

Karena semua yang penting diukur dengan hash crpytographic, pada dasarnya tidak ada cara bagi seorang maid jahat untuk mengganti GRUB / kernel / ramdisk Anda untuk secara jahat mengumpulkan frasa sandi FDE Anda. Sebagai bonus tambahan, Anda tidak memerlukan frasa sandi FDE sama sekali! Secara teori Anda bisa menghapus kata sandi yang dapat dibaca orang dan sepenuhnya mengandalkan tpm-luks, tetapi jika Anda memilih rute itu, mungkin ide yang baik untuk menyimpan header LUKS Anda dan menyimpannya sebagai cadangan.

Seperti yang saya sebutkan, ini membutuhkan beberapa ketekunan pada pengguna. Jika Anda meninggalkan komputer tanpa pengawasan, dan Anda diberikan prompt kata sandi, mungkin itu ide buruk untuk mengetiknya sampai Anda telah melakukan beberapa penyelidikan. Pada titik itu, Anda harus mem-boot ke lingkungan CD langsung dan melihat apakah ada bug di tpm-luks, atau apakah /bootpartisi benar-benar diubah. Anda masih membiarkan /bootpartisi tidak terenkripsi, tetapi jika sesuatu yang penting diubah, disk utama tidak pernah didekripsi.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.