Boot otomatis dan Mengamankan Server Linux dengan Sistem File Terenkripsi

16

Saya sedang menyiapkan beberapa server Ubuntu baru, dan saya ingin mengamankan data mereka dari pencurian. Model ancaman adalah penyerang yang menginginkan perangkat keras atau penyerang yang naif yang menginginkan data.


Harap perhatikan bagian ini.

Model ancaman tidak termasuk penyerang pintar yang menginginkan data; Saya kira mereka akan melakukan satu atau lebih hal berikut ini:

  1. Pisahkan UPS ke dalam kabel daya agar mesin terus beroperasi.

  2. Masukkan sepasang penghubung Ethernet antara komputer dan titik terminasi jaringan yang akan menjembatani lalu lintas melalui jaringan nirkabel dengan jangkauan yang memadai sehingga tuan rumah akan menjaga konektivitas jaringan.

  3. Buka kotak dan gunakan probe pada bus memori untuk mengambil hal-hal menarik.

  4. Gunakan perangkat TEMPEST untuk menyelidiki apa yang dilakukan host.

  5. Gunakan cara hukum (seperti perintah pengadilan) untuk memaksa saya mengungkapkan data

  6. Dll


Jadi yang saya inginkan adalah memiliki beberapa, atau idealnya semua, data pada disk pada partisi terenkripsi, dengan bahan utama yang diperlukan untuk mengaksesnya di media eksternal dalam beberapa jenis. Dua metode yang dapat saya pikirkan untuk menyimpan materi utama adalah:

  1. Simpan di host jarak jauh yang dapat diakses melalui jaringan, dan konfigurasikan cukup jaringan untuk mengambilnya selama proses boot. Pengambilan akan diizinkan hanya ke alamat IP yang ditetapkan untuk host yang diamankan (sehingga tidak memungkinkan akses ke data yang dienkripsi jika itu dibooting pada koneksi jaringan lain) dan dapat dinonaktifkan oleh administrator jika mesin ditemukan dicuri.

  2. Simpan di perangkat penyimpanan USB yang dibuat dengan cara yang jauh lebih sulit untuk dicuri daripada host itu sendiri. Menempatkannya jauh dari tuan rumah, seperti pada ujung kabel USB lima meter yang mengarah ke sudut lain ruangan, atau bahkan ruangan lain, mungkin akan secara signifikan mengurangi kemungkinan penyerang mengambilnya. Mengamankannya dalam beberapa cara, seperti dengan merantai itu ke sesuatu yang tidak bergerak, atau bahkan memasukkannya ke dalam brankas, akan bekerja lebih baik.

Jadi apa saja pilihan saya untuk mengatur ini? Seperti yang saya katakan sebelumnya, saya lebih suka memiliki semuanya (selain dari mungkin partisi boot kecil yang tidak mengandung / etc) terenkripsi, sehingga saya tidak perlu khawatir tentang di mana saya meletakkan file, atau di mana mereka ' sedang tidak sengaja mendarat.

Kami menjalankan Ubuntu 9.04, jika ada bedanya.

Curt J. Sampson
sumber
1
Apakah model ancaman Anda mengenakan seragam dengan tiga huruf di atasnya? :)
Sven
Mereka tidak memakai seragam. :-) Tapi serius, tidak; agen pemerintah manapun, terselubung atau tidak, kemungkinan akan cukup pintar untuk mengambil semua perangkat keras, bukan hanya apa yang dapat mereka ambil dengan cepat.
Curt J. Sampson
1
Pertanyaan Anda tampaknya bertentangan dengan dirinya sendiri. Pertama Anda mengatakan "Saya ingin mengamankan data mereka terhadap pencurian", lalu Anda mengatakan "tidak termasuk penyerang pintar yang menginginkan data". Apakah Anda peduli dengan data atau tidak?
Zoredache
1
Saya peduli ya. Jika Anda bisa, dengan biaya yang sama, mengamankannya dari penyerang pintar serta yang bodoh, bagus, saya akan melakukannya. Jika tidak, setidaknya saya menghindari situasi ketika seseorang membeli drive bekas di toko daur ulang dan menemukan semua data klien saya di dalamnya.
Curt J. Sampson
+1 untuk benar-benar memikirkan model ancaman, sesuatu yang banyak orang dengan pertanyaan serupa lupa lakukan.
sleske

Jawaban:

8

Saya tahu varian pintar Opsi 1 yang disebut Mandos.

Ini menggunakan kombinasi pasangan kunci GPG, Avahi, SSL dan IPv6 yang semuanya ditambahkan ke disk RAM awal Anda untuk mengambil kata sandi kunci partisi root dengan aman. Jika server Mandos tidak ada pada LAN, server Anda adalah batu bata terenkripsi atau server Mandos belum melihat detak jantung dari perangkat lunak klien Mandos untuk jangka waktu tertentu, itu akan mengabaikan permintaan di masa depan untuk pasangan kunci dan server adalah batu bata yang dienkripsi waktu berikutnya ia boot.

Beranda Mandos

Mandos README

Haakon
sumber
1
Ide yang menarik. Saya mengasumsikan Anda akan PXE mem-boot klien sehingga keypair publik / pribadi tidak pada drive hard disk. Tetap saja, Anda bisa mengintip keypair dari kabel dan kemudian menggunakannya, dalam kombinasi dengan hirupan transmisi kunci enkripsi massal oleh komputer server, untuk mendekripsi drive. Seluruh "server tidak akan membagikan kunci jika belum mendengar detak jantung di jendela waktu xxx" terdengar seperti cara yang rapi untuk mendapatkan manusia ke loop, juga. Proyek yang rapi. Tidak terlalu sulit dikalahkan jika Anda memiliki akses fisik, tetapi rapi.
Evan Anderson
2
Evan, Anda ingin membaca FAQ di Mandos README, saya pikir ....
Curt J. Sampson
Hm Saya tidak jelas mengapa Mandos hanya berjalan di LAN. Apakah karena ia tidak dapat mengatur alamat IP dan rute untuk menggunakan internet?
Curt J. Sampson
1
Curt, Mandos menggunakan alamat lokal tautan ipv6 untuk berkomunikasi yang terbatas pada lan lokal. Namun itu berarti bahwa itu tidak memerlukan konfigurasi eksternal (dhcp) atau konflik dengan server lain di LAN yang sama. en.wikipedia.org/wiki/…
Haakon
1
Sebagai penulis bersama Mandos, saya hanya bisa setuju dengan Haakon. Sebenarnya ada cara bagi Mandos untuk menggunakan alamat IPv4 global menggunakan kernel ip=dan mandos=connectparameter, lihat email ini: mail.fukt.bsnet.se/pipermail/mandos-dev/2009-February/… tetapi perhatikan bahwa ini agak rapuh seperti klien hanya akan mencoba untuk terhubung ke server yang ditentukan sekali dan gagal sebaliknya. Konfigurasi yang disarankan adalah melalui LAN. Saya juga dapat menyebutkan bahwa Mandos tersedia di Ubuntu sejak 9.04 (dan juga dalam pengujian Debian)
Teddy
6

Jika Anda hanya ingin melindungi dari penyerang non-teknis saya pikir taruhan terbaik Anda adalah keamanan fisik yang lebih baik.

Jadi pemikiran saya adalah:

Jika Anda mencari sepatu yang tidak memerlukan interaksi manusia untuk memasukkan materi utama, maka Anda tidak akan menemukan solusi apa pun yang akan aman dari pencurian biasa oleh seorang guru yang memiliki keterampilan teknis (atau, lebih tepatnya, kemampuan membayar seseorang dengan keterampilan teknis).

Menempatkan material kunci dalam sesuatu seperti USB-drive tidak akan menawarkan keamanan nyata. Penyerang hanya bisa membaca kunci dari thumb drive. Drive jempol tidak dapat mengetahui apakah komputer yang dicolokkan adalah komputer server atau laptop penyerang. Yang harus dilakukan oleh penyerang adalah memastikan mereka mengambil semuanya, atau dalam hal kunci USB Anda di ujung kabel ekstensi USB sepanjang 15 kaki yang terjebak di dalam brankas, cukup sambungkan kabel ekstensi ke PC mereka dan baca kunci.

Jika Anda akan mentransfer kunci melalui jaringan Anda mungkin akan "mengenkripsi" itu. Yang harus dilakukan penyerang adalah menguping pada proses penguncian, mencuri server, dan kemudian merekayasa-balik "enkripsi" apa pun yang Anda lakukan saat mengirim kunci di jaringan. Menurut definisi, komputer server yang menerima kunci "terenkripsi" dari seluruh jaringan harus dapat "mendekripsi" kunci itu untuk menggunakannya. Jadi, sungguh, Anda tidak mengenkripsi kunci - Anda hanya menyandikannya.

Pada akhirnya, Anda memerlukan intelijen (buatan?) Yang ada untuk memasukkan kunci ke server. Yang bisa mengatakan "Saya tahu bahwa saya tidak membocorkan kunci kepada siapa pun kecuali komputer server, dan saya tahu bahwa itu belum dicuri." Manusia dapat melakukan ini. USB thumb drive tidak bisa. Jika Anda menemukan kecerdasan lain yang dapat melakukannya maka saya pikir Anda akan memiliki sesuatu yang dapat dipasarkan. > tersenyum <

Kemungkinan besar, saya pikir, Anda akan kehilangan kunci dan menghancurkan data Anda tanpa mendapatkan keamanan apa pun. Sebagai pengganti strategi Anda dengan permainan enkripsi, saya pikir Anda lebih baik memiliki keamanan fisik yang lebih kuat.

Edit:

Saya pikir kita sedang bekerja dari definisi yang berbeda dari istilah "model ancaman", mungkin.

Jika model ancaman Anda adalah pencurian perangkat keras, maka solusi yang Anda usulkan adalah: enkripsi disk, seperti yang saya lihat, tidak melakukan apa pun untuk menangkal ancaman. Solusi yang Anda usulkan terlihat seperti tindakan balasan terhadap pencurian data, bukan pencurian perangkat keras.

Jika Anda ingin menghentikan perangkat keras dari dicuri, Anda harus membautnya, mengunci, membungkusnya dengan beton, dll.

Saya sudah mengatakan apa yang ingin saya katakan: pencurian data, jadi saya tidak akan memainkannya lagi, kecuali untuk mengatakan: Jika Anda akan memasukkan kunci ke perangkat fisik dan Anda tidak dapat melindungi komputer server dari dicuri maka Anda tidak dapat melindungi perangkat kunci dari dicuri juga.

Saya kira solusi "murah" terbaik Anda adalah memasang beberapa pertukaran kunci berbasis jaringan. Saya akan menempatkan satu atau lebih manusia di loop untuk mengotentikasi "rilis" kunci jika terjadi reboot. Ini akan menyebabkan downtime sampai manusia "melepaskan" kunci, tetapi setidaknya itu akan memberi Anda kesempatan untuk mencari tahu mengapa "pelepasan" kunci diminta dan memutuskan apakah akan melakukannya atau tidak.

Evan Anderson
sumber
Ini merupakan tambahan yang bagus untuk analisis keamanan, jadi saya telah memberikan upvote, tetapi itu bukan jawaban untuk pertanyaan saya karena Anda menggunakan model ancaman yang berbeda. Perhatikan apa yang saya katakan dalam pertanyaan tentang siapa saya dan saya tidak membela.
Curt J. Sampson
1
Adapun keamanan fisik yang lebih baik, saya ingin melihat opsi yang lebih murah dulu. Dalam lingkungan kita saat ini, kita akan membutuhkan ribuan dolar untuk memasang sesuatu yang tidak dapat dikalahkan dengan cepat oleh seseorang dengan sepasang pemotong baut.
Curt J. Sampson
Membaca ulang ini, saya tidak yakin Anda jelas bahwa model ancaman saya bukan pencurian perangkat keras per se , yang pada dasarnya hanya ketidaknyamanan, tetapi pencurian data yang terjadi bersamaan dengan itu. Itulah mengapa solusi yang saya usulkan adalah penanggulangan pencurian data, bukan pencurian perangkat keras.
Curt J. Sampson
Sangat menarik untuk melihat komentar pada pertanyaan yang hampir 8 tahun. Jika solusi Anda bekerja untuk Anda, saya tentu senang karenanya.
Evan Anderson
Saya hanya berpikir "Saya tidak harus necropost", lalu saya melihat komentar terakhir ini. Saya pikir model ancaman Curt sama dengan saya ... untuk melindungi data terhadap seseorang yang mencuri perangkat keras. Beberapa komentar tentang ini dan posting serupa mengatakan orang hanya bisa "menguping" pada proses utama dan mencari tahu nanti. Hanya proses yang benar-benar sangat buruk yang bisa dipatahkan oleh replay apa pun. Juga ... "yang harus dilakukan penyerang adalah" ... "merekayasa balik setiap enkripsi yang Anda lakukan" ... Siapa yang kita bicarakan? Apa peluang yang dimiliki oleh pencuri biasa ... atau bahkan keinginan untuk melakukannya?
darron