Bagaimana kemampuan seseorang yang memperoleh akses fisik ke komputer Anda untuk mendapatkan root [menggunakan Grub / Bash] dengan cara apa pun aman?
Karena jika Linux memutuskan untuk mulai melakukan itu, peretas hanya akan mengeksploitasi celah keamanan lainnya. Aturan keamanan pertama adalah bahwa jika saya memiliki akses fisik ke sistem Anda, itu sudah berakhir. Saya telah menang.
Plus, bayangkan server X Anda rusak dan Anda tidak memiliki GUI lagi. Anda perlu boot ke konsol pemulihan untuk memperbaiki hal-hal, tetapi Anda tidak bisa, karena itu tidak aman. Dalam hal ini, Anda dibiarkan dengan sistem yang benar-benar rusak, tapi hei, setidaknya itu "aman!"
Tapi Kaz, bagaimana ini mungkin? Saya menetapkan kata sandi pada Grub saya sehingga Anda tidak dapat mengubah saya init
menjadi Bash!
Oh, benar, benar? Menarik, karena ini terlihat seperti album foto Anda. GRUB tidak memiliki faktor keamanan bawaan apa pun. Itu hanya bootloader , bukan langkah dalam beberapa boot aman dan rantai otentikasi. "Kata sandi" yang Anda atur sebenarnya cukup mudah untuk dilewati.
Itu, dan apa sysadmin tidak membawa boot drive pada mereka untuk keadaan darurat?
Tapi bagaimana caranya?! Anda tidak tahu kata sandi saya (yang sama sekali bukan P@ssw0rd
btw)
Ya, tapi itu tidak menghentikan saya dari membuka komputer Anda dan mengeluarkan hard drive Anda. Dari sana, beberapa langkah mudah untuk memasang drive Anda di komputer saya, memberi saya akses ke semua sistem Anda. Ini juga memiliki manfaat luar biasa dengan melewati kata sandi BIOS Anda. Itu, atau saya bisa saja mengatur ulang CMOS Anda. Entah / atau.
Jadi ... bagaimana saya tidak membiarkan Anda mendapatkan akses ke data saya?
Sederhana. Jauhkan komputer Anda dari saya. Jika saya bisa menyentuhnya, mengakses keyboard, memasukkan flash drive saya sendiri, atau memisahkannya, saya bisa menang.
Jadi, bisakah saya hanya suka meletakkan komputer saya di pusat data atau sesuatu? Itu cukup aman, bukan?
Ya mereka. Tapi, Anda lupa bahwa manusia juga bisa diretas, dan diberi cukup waktu dan persiapan, saya mungkin bisa masuk ke pusat data itu dan menyedot semua data manis dan manis itu dari komputer Anda. Tapi saya ngelantur. Kami sedang berhadapan dengan solusi nyata di sini.
Oke, jadi kamu menyebut gertakan saya. Saya tidak bisa memasukkannya ke pusat data. Bisakah saya mengenkripsi folder rumah saya atau sesuatu?
Tentu kamu bisa! Ini komputer Anda! Akankah ini membantu menghentikan saya? Tidak sedikit pun. Saya bisa mengganti sesuatu yang penting, seperti /usr/bin/firefox
dengan program jahat saya sendiri. Lain kali Anda membuka Firefox, semua data rahasia Anda disedot ke beberapa server rahasia di suatu tempat rahasia. Dan Anda bahkan tidak akan tahu. Atau, jika saya sering mengakses mesin Anda, saya cukup mengatur folder rumah Anda untuk disalin /usr/share/nonsecrets/home/
atau lokasi serupa (non-terenkripsi).
Oke, bagaimana dengan enkripsi disk penuh?
Itu ... sebenarnya cukup bagus. Namun, itu belum sempurna! Saya selalu dapat melakukan Serangan Boot Dingin menggunakan kaleng udara terkompresi saya yang terpercaya. Atau, saya bisa pasang keylogger perangkat keras ke komputer Anda. Yang satu jelas lebih mudah dari yang lain, tetapi caranya tidak terlalu penting.
Dalam sebagian besar kasus, ini adalah tempat pemberhentian yang bagus. Mungkin memasangkannya dengan TPM (dibahas di bawah), dan Anda emas. Kecuali Anda membuat marah agen tiga huruf atau peretas yang sangat termotivasi, tidak ada yang akan melalui upaya yang diperlukan melewati tahap ini.
Tentu saja, saya masih bisa membuat Anda menginstal beberapa malware / backdoors dengan menawarkan PPA atau sejenisnya, tetapi ini masuk ke bidang kepercayaan pengguna yang sangat keruh.
Jadi ... bagaimana iPhone begitu aman? Bahkan dengan akses fisik, tidak banyak yang dapat Anda lakukan.
Ya dan tidak. Maksud saya, jika saya cukup termotivasi, saya bisa membaca chip flash dan mendapatkan semua yang saya butuhkan. Tapi, iPhone pada dasarnya berbeda karena mereka sepenuhnya terkunci. Tetapi, pada saat yang sama, Anda benar-benar mengorbankan kegunaan dan kemampuan untuk pulih dari kegagalan bencana. GRUB (kecuali bila dirancang secara khusus) tidak dimaksudkan sebagai rantai dalam sistem keamanan. Bahkan, sebagian besar sistem Linux memiliki rantai keamanan mereka mulai pasca-boot, jadi setelah GRUB selesai melakukan hal itu.
Plus, iPhone memiliki penegakan tanda tangan kriptografis (juga dibahas di bawah), yang membuatnya sangat sulit bagi malware untuk menyelinap ke ponsel Anda melalui jalur yang sah.
Tapi bagaimana dengan TPM / SmartCards / [masukkan crypto tech di sini]?
Nah, sekarang Anda memasangkan keamanan fisik ke dalam persamaan, itu menjadi lebih rumit lagi. Tapi, ini sebenarnya bukan solusi karena TPM relatif lemah dan semua enkripsi tidak terjadi pada chip. Jika TPM Anda (entah bagaimana) cukup kuat di mana ia melakukan enkripsi pada chip itu sendiri (beberapa hard drive yang sangat mewah memiliki sesuatu seperti ini), kuncinya tidak akan pernah terungkap dan hal-hal seperti serangan cold-boot tidak mungkin. Namun, kunci (atau data mentah) mungkin masih ada di bus sistem, yang berarti mereka dapat dicegat.
Meski begitu, keylogger perangkat keras saya masih bisa mendapatkan kata sandi Anda, dan saya dapat dengan mudah memuat beberapa malware ke komputer Anda seperti yang dieksploitasi Firefox yang saya sebutkan sebelumnya. Yang saya butuhkan adalah Anda meninggalkan rumah / komputer Anda selama satu jam.
Sekarang, jika Anda membawa TPM / smartcard / apa pun bersama Anda, dan semua enkripsi sebenarnya dilakukan pada chip (artinya kunci Anda tidak disimpan dalam RAM sama sekali), maka hampir tidak mungkin bagi saya untuk masuk semua, kecuali Anda (pengguna) tergelincir dan lupa sesuatu. Yaitu, kecuali saya menemukan cara untuk membaca kunci (tidak terenkripsi) dari bus sistem.
Tetapi bagaimana jika saya memiliki beberapa bentuk penegakan tanda tangan kriptografi / digital pada semua program saya untuk memastikan mereka sah?
Seperti yang ditunjukkan oleh berbagai perusahaan ponsel pintar, ini adalah cara yang sangat baik untuk menangani keamanan. Anda sekarang telah membatalkan kemampuan saya untuk menyuntikkan beberapa kode ke mesin Anda untuk melakukan hal-hal jahat, yang merupakan nilai tambah. Secara efektif, Anda telah menonaktifkan kemampuan saya untuk mempertahankan akses tetap ke mesin Anda dari jarak jauh, yang merupakan nilai tambah besar.
Namun, ini masih bukan metode yang sempurna! Penegakan tanda tangan digital tidak akan menghentikan keylogger perangkat keras. Itu juga harus sepenuhnya bebas bug, artinya tidak ada cara saya dapat menemukan exploit yang memungkinkan saya memuat sertifikat saya sendiri ke toko sertifikat mesin Anda. Lebih jauh, ini berarti setiap executable di sistem Anda perlu ditandatangani . Kecuali jika Anda ingin secara manual melalui dan melakukan semua itu, akan sangat sulit untuk menemukan paket Apt dan sejenisnya yang memiliki tanda tangan digital pada semuanya. Dalam nada yang sama, ini memblokir penggunaan yang sah untuk executable yang tidak ditandatangani, yaitu pemulihan. Bagaimana jika Anda memecahkan sesuatu yang penting, dan Anda tidak memiliki (ditandatangani) yang dapat dieksekusi untuk memperbaikinya? Nah, itulah sistem Anda.
Bagaimanapun, upaya untuk melakukan ini di Linux pada dasarnya sudah ditinggalkan dan tidak lagi berfungsi untuk kernel baru, jadi Anda harus membuatnya sendiri.
Jadi, tidak mungkin untuk membuat Anda keluar dari komputer saya?
Secara efektif, ya, maaf. Jika saya memiliki akses fisik dan motivasi yang cukup, selalu mungkin untuk masuk ke sistem. Tidak ada pengecualian.
Pada kenyataannya, sebagian besar orang jahat tidak akan berusaha sejauh ini hanya untuk beberapa gambar kucing. Biasanya, hanya enkripsi disk penuh (atau bahkan hanya menjalankan Linux!) Sudah cukup untuk mencegah sebagian besar skrip kiddies memiliki ketenaran dua detik.
TL; DR: Jangan biarkan orang yang tidak Anda percayai dekat komputer Anda. Itu biasanya cukup baik.