GNU/Linux >> Belajar Linux >  >> Linux

Mengapa keamanan root diterapkan tetapi $HOME biasanya tidak terlindungi?

Saya akan tidak setuju dengan jawaban yang mengatakan usia model keamanan Unix atau lingkungan tempat pengembangannya salah. Menurut saya bukan itu masalahnya karena ada mekanisme untuk menangani ini.

Sistem izin root masuk akal, tetapi pada sistem desktop, sepertinya melindungi data yang salah.

Izin pengguna super ada untuk melindungi sistem dari penggunanya. Izin pada akun pengguna ada untuk melindungi akun dari akun non-root lainnya.

Dengan menjalankan sebuah program, Anda memberinya izin untuk melakukan sesuatu dengan UID Anda. Karena UID Anda memiliki akses penuh ke direktori home Anda, Anda secara transitif memberikan akses yang sama pada program tersebut. Sama seperti superuser yang memiliki akses untuk membuat perubahan pada file sistem yang memerlukan perlindungan dari perilaku berbahaya (sandi, konfigurasi, binari), Anda mungkin memiliki data di direktori beranda yang memerlukan jenis perlindungan yang sama.

Prinsip hak istimewa terkecil mengatakan bahwa Anda tidak boleh memberikan akses lebih dari yang diperlukan. Proses pengambilan keputusan untuk menjalankan program apa pun harus sama sehubungan dengan file Anda seperti pada file sistem. Jika Anda tidak akan memberikan sepotong kode yang tidak Anda percayai penggunaan akun pengguna super yang tidak dibatasi untuk kepentingan melindungi sistem, kode tersebut tidak boleh diberikan penggunaan akun Anda yang tidak dibatasi untuk melindungi data Anda.

Apakah tidak ada cara untuk mencegah terjadinya kode berbahaya di $HOME? Dan mengapa tidak ada yang peduli?

Unix tidak menawarkan izin yang terperinci karena alasan yang sama tidak ada pelindung blade di sekitar perintah rm:izin tidak ada untuk melindungi pengguna dari diri mereka sendiri.

Cara untuk mencegah kode berbahaya merusak file di direktori home Anda adalah dengan tidak menjalankannya menggunakan akun Anda. Buat pengguna terpisah yang tidak memiliki izin khusus dan jalankan kode di bawah UID tersebut hingga Anda menentukan apakah Anda dapat mempercayainya atau tidak.

Ada cara lain untuk melakukan ini, seperti penjara chroot, tetapi menyiapkannya membutuhkan lebih banyak pekerjaan, dan melarikan diri darinya tidak lagi menjadi tantangan seperti dulu.


Karena model keamanan berbasis UNIX berusia 50 tahun.

UNIX mendasari sebagian besar OS yang tersebar luas, dan bahkan pengecualian besar Windows telah dipengaruhi olehnya lebih dari yang terlihat. Itu berasal dari masa ketika komputer adalah mesin besar, mahal, dan lambat yang secara eksklusif digunakan oleh spesialis misterius.

Pada saat itu, pengguna tidak memiliki koleksi data pribadi yang ekstensif di apa pun komputer, bukan server universitas mereka, bukan komputer pribadi mereka (dan tentunya bukan ponsel mereka). Data yang bervariasi dari pengguna ke pengguna biasanya merupakan data input dan output dari proses komputasi ilmiah - kehilangannya mungkin merupakan kerugian, tetapi sebagian besar dapat dikompensasi dengan menghitung ulang, tentu saja tidak seperti konsekuensi dari kebocoran data saat ini.

Tidak seorang pun akan memiliki buku harian, informasi perbankan, atau gambar telanjang mereka di komputer, jadi lindungi mereka dari akses jahat bukanlah sesuatu yang memiliki prioritas tinggi - faktanya, sebagian besar mahasiswa sarjana di tahun 70-an mungkin akan senang jika orang lain menunjukkan minat pada data penelitian mereka. Oleh karena itu, mencegah kehilangan data dianggap sebagai prioritas utama dalam keamanan komputer, dan hal itu cukup dipastikan dengan pencadangan rutin daripada kontrol akses.


Ini adalah pengamatan yang sangat cerdik. Ya, malware yang berjalan sebagai pengguna Anda dapat merusak/menghancurkan/mengubah data di direktori home Anda. Ya, pemisahan pengguna pada sistem pengguna tunggal kurang bermanfaat daripada di server. Namun, masih ada beberapa hal yang hanya dapat dilakukan oleh pengguna root (atau yang setara):

  • Instal rootkit di kernel.
  • Ubah bootloader agar memuat pintu belakang awal untuk kegigihan.
  • Hapus semua blok hard disk, sehingga data Anda tidak dapat diambil kembali.

Sejujurnya, saya menemukan pemisahan hak istimewa di workstation paling berguna untuk melindungi workstation dari musuh terbesarnya:saya. Itu membuat lebih sulit untuk mengacaukan dan merusak sistem saya.

Selain itu, Anda selalu dapat menyiapkan tugas cron sebagai root yang membuat cadangan direktori home Anda (dengan, mis., rsnapshot ) dan menyimpannya sedemikian rupa sehingga tidak dapat ditulis oleh pengguna Anda. Itu akan menjadi tingkat perlindungan tertentu dalam situasi yang Anda gambarkan.

xkcd wajib


Linux
  1. Nonaktifkan Shell Pengguna Karena Alasan Keamanan?

  2. Fungsi Root Grup Pengguna??

  3. Di mana Biasanya Aplikasi Menyimpan Data?

  1. Cara Membuat Pengguna yang Hampir Setara Root Tapi Bukan Pengguna Identik Root di Linux

  2. Mengapa dianggap aman untuk menginstal sesuatu sebagai pengguna non-root di lingkungan Linux?

  3. Mengapa melindungi kernel Linux dari pengguna root?

  1. 4 Cara Menonaktifkan Akun Root di Linux

  2. Ruang Cadangan Untuk Root Pada Sistem File – Mengapa?

  3. Mengapa Pengguna Root Membutuhkan Izin Sudo?