Pertanyaan saya adalah tentang izin sistem file (khususnya izin gaya Unix) dan bagaimana kaitannya dengan keamanan.
Katakanlah saya memiliki akses ke komputer dengan akun pengguna tamu dan pengguna bernama Bob. Saya tidak tahu kata sandi Bob, tetapi saya bisa menggunakan akun tamu. Akun tamu sama sekali tidak memiliki izin baca untuk semua file Bob, jadi saya tidak bisa membaca file Bob saat masuk sebagai tamu.
Namun, dari sudut pandang "musuh" yang sebenarnya, saya memiliki akses penuh ke disk yang tidak terenkripsi ini. Saya bisa membayangkannya, menyimpannya untuk nanti, menjalankan beberapa OS lain untuk sekadar membaca file Bob sambil mengabaikan pengaturan izin sistem file.
Dari sini, saya sampai pada pertanyaan:
- Pengaturan izin sistem file pada disk yang tidak terenkripsi hanyalah sebuah flag, benar? Dan satu-satunya hal yang menghentikan saya dari membaca file yang saya tidak memiliki izin adalah kenyataan bahwa OS akan mengatakan "Oh, Anda tidak dapat membaca itu, Anda tidak memiliki izin." File itu masih ada di disk dalam bentuk mentah dan saya bisa membacanya dengan hanya mengabaikan flag filesystem (katakanlah, melalui beberapa OS bootable teduh yang hanya mengabaikan izin). Apakah ini semua benar?
Sekarang katakan saya tidak memiliki akses langsung ke disk, dan saya hanya ssh-ing ke mesin. Saya tidak punya izin untuk membaca file Bob. Benar-benar tidak ada yang bisa saya lakukan tentang itu, benar?
- Mengingat izin saya terbatas, saya tidak bisa mengakses file Bob tidak peduli seberapa keras saya mencoba, bukan? Bagaimana jika saya menggunakan beberapa exploit untuk mendapatkan akses root? Bisakah saya melewati flag izin OS? Apakah ini hal yang pernah terjadi?
Jawaban:
Jawaban yang lebih pendek.
Jika Anda memiliki akses fisik ke sistem komputer — PC atau sistem penyimpanan data — dan satu-satunya “perlindungan” yang ada adalah izin file, Anda tidak memiliki perlindungan 100%.
Data yang tidak terenkripsi itu dapat disalin dan dikloning dengan sedikit usaha tanpa hampir tidak ada alat selain memiliki perangkat lain yang dapat dihubungkan ke drive sistem untuk membuat salinan data.
Dan ya, potensi beberapa aspek bukti penetrasi fisik mungkin perlu diperhitungkan dalam akses pada tingkat fisik; seperti memastikan tidak ada sidik jari yang tertinggal dan segel "bukti perusakan" lainnya juga ditangani. Tapi jujur, sebagian besar sistem di luar sana dapat memiliki drive mereka dihapus secara fisik untuk salinan data fisik dengan pengguna akhir tidak pernah tahu yang lebih baik. Jika Anda memiliki drive, Anda memiliki drive dan Anda kemudian memiliki data jika tidak dienkripsi.
Inilah sebabnya mengapa enkripsi per pengguna atau enkripsi disk penuh adalah hal besar saat ini; laptop Perangkat komputasi portabel lainnya adalah bagian besar dari pasar saat ini risiko kehilangan data dari pencurian perangkat atau pinjaman biasa pada PC jauh lebih tinggi daripada sebelumnya di masa lalu.
Jika disk tidak dienkripsi, data di dalamnya adalah buku terbuka yang siap dibaca. Konsep ini tidak terbatas pada mesin Linux / Unix tetapi OS apa saja di mana saja; jika Anda memiliki akses fisik ke sistem tidak terenkripsi Anda memiliki sistem.
Yang mengatakan, izin file adalah langkah pengamanan yang berguna untuk semua server jarak jauh.
Jawaban yang lebih panjang.
Pertama, perlu diingat keamanan di komputer — dan semuanya — benar-benar hanya pencegah yang memperlambat segalanya dan tidak selalu memberikan keamanan absolut.
Misalnya, bagian terlemah dari keamanan di setiap bangunan fisik adalah pintu yang harus Anda buka ketika memasuki / keluar atau jendela yang harus Anda buka untuk memungkinkan udara masuk. Ya, Anda dapat mengunci pintu dan jendela dan mengatur alarm tetapi jika seseorang benar-benar menginginkan akses ke sesuatu — dan mereka memiliki waktu, sumber daya, kekayaan, dan upaya untuk mengejarnya — mereka akan mendapatkan akses ke sana.
Masalahnya di sini adalah konteks akses. Jika Anda memiliki akses fisik ke komputer, hampir semua hal mungkin terjadi. Tetapi jika Anda hanya terhubung melalui koneksi jarak jauh — melalui jaringan sejenis — maka kepemilikan sistem file jelas merupakan metode keamanan yang efektif. Dan dalam kasus server Linux / Unix, izin dan kepemilikan adalah bentuk keamanan yang efektif untuk mencegah intrusi jarak jauh.
Itulah mengapa di dunia Linux / Unix mendapatkan
root
akses ke sistem jarak jauh dianggap sebagai hadiah utama. Dapatkanroot
ke sistem jarak jauh dan kemudian Anda benar-benar telah melakukan sesuatu yang memberi Anda akses lebih besar tanpa perlu masuk ke pusat data dan mengkloning drive.Iya nih. Persis. Jika Anda memiliki akses fisik ke mesin, maka — seperti yang dijelaskan di awal — semua taruhan dibatalkan. Anda dapat memperoleh akses ke file dan direktori yang dimiliki oleh orang lain dengan membuat gambar disk — atau bahkan hanya mengejar konten mentah drive itu sendiri — dengan sedikit atau tanpa upaya teknis yang mendalam.
Siapa pun yang — misalnya — meminjamkan komputer pribadi Anda dan membuat akun baru hanya untuk Anda tanpa memikirkan skenario ini pada dasarnya memberikan semua data pribadi yang mereka miliki di mesin mereka tanpa benar-benar menyadarinya.
Sedikit bersinggungan, tapi saya pikir inilah sebabnya begitu banyak pengguna biasa menyumbangkan PC lama tanpa melakukan sedikit pun upaya untuk menghapus data pada drive. Mereka mengatur kata sandi pengguna dan mereka menganggap bahwa menjaga data mereka aman sejauh mereka hanya bisa melemparkan drive ke tempat sampah dan tidak berpikir dua kali. Ketika kenyataannya tanpa enkripsi atau data yang benar, setiap drive yang dibuang ke tempat sampah atau dijual hanya dapat dibaca oleh siapa saja di mana saja tanpa banyak upaya teknis yang berat.
sumber
Tiga poin Anda:
Jika Anda menggunakan SSH sebagai pengguna biasa, Anda tidak memiliki akses ke perangkat disk mentah. Anda biasanya memerlukan
root
atau izin untuk mengakses perangkat disk mentah dan logis.Jika Anda mendapatkan root melalui exploit, maka Anda adalah pengguna yang paling kuat di sistem dan memiliki akses ke hampir semua hal, termasuk perangkat. Karena Anda root, Anda dapat langsung mengakses file Bob, jadi tidak perlu mengakses perangkat disk.
Akses fisik berdetak
root
. Root adalah lapisan logis. Anda dapat mengabaikannya dengan akses fisik ke disk. Ini termasuk memuat kata disk dalam OS terpisah di mana Anda root.Tentu saja, sistem seharusnya dikeraskan terhadap
root
eksploitasi, tetapi eksploitasi baru keluar setiap hari. Tidak ada sistem yang 100% aman tetapi Anda dapat membuatnya aman untuk tujuan praktis dengan membatasi akses.Izin sistem file hanya diharapkan berfungsi dalam situasi akses Pengguna Terbatas, di mana OS tidak terganggu. Ini adalah sistem "jaga jujur (dan tipikal) pengguna jujur", seperti kunci sepeda. Ini berfungsi untuk mencegah "kejahatan peluang" lebih dari kegagalan perlindungan total yang aman.
sumber
open(2)
. mis.linkat(2)
memungkinkan Anda membuat entri direktori untuk deskriptor file terbuka, tetapi hanya jika penghitungan tautan belum nol, jadi proses yang menerima FD terbuka untuk file yang dihapus tidak dapat menautkannya kembali ke sistem file. Jelas penyerang mendapatkan akses root atau fisik berarti Anda bersulang. Enkripsi membantu dengan fisik tetapi tidak begitu banyak root.