GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana File Aplikasi yang Saling Tidak Tepercaya Dilindungi Di Linux?

Saya menjalankan mesin Ubuntu Linux. Ketika saya menjalankan aplikasi yang ditulis oleh vendor yang berbeda seperti Chrome dan Firefox, saya perhatikan bahwa semuanya berjalan dengan uid saya. Tetapi jika itu masalahnya, file apa pun yang mereka buat di sistem file juga akan menggunakan uid yang sama. Lalu bagaimana di linux dua aplikasi yang tidak saling percaya menjaga keamanan file mereka satu sama lain?

  • menggunakan kebijakan ACL oleh aplikasi A masih memungkinkan aplikasi B membaca file A – melalui bagian pengguna (pengguna, grup, lainnya)
  • apakah aplikasi perlu menggunakan enkripsi untuk melindungi datanya satu sama lain?

Jawaban yang Diterima:

Jawaban harfiahnya adalah tidak ada aplikasi tidak tepercaya yang berjalan di bawah akun Anda. Jika Anda ingin menjalankan aplikasi yang tidak tepercaya, jalankan di akun lain atau di mesin virtual.

Sistem operasi desktop biasa seperti Unix dan Windows dan sistem operasi seluler biasa seperti Android dan iOS memiliki model keamanan yang berbeda. Unix adalah sistem operasi multiuser, dengan pengguna yang tidak saling percaya. Aplikasi dianggap tepercaya:semua aplikasi pengguna berjalan dalam konteks keamanan yang sama. Layanan , di sisi lain, agak kurang tepercaya:biasanya dijalankan di bawah akun khusus, untuk mengurangi dampak jika terjadi kerentanan keamanan.

Ada dua alasan utama mengapa model keamanan Unix bekerja dengan cara ini:

  • Alasan negatif adalah sejarah:ketika Unix dirancang, aplikasi berasal dari sekelompok kecil pemrogram, dan didukung oleh reputasi vendor atau disediakan sebagai kode sumber atau keduanya. Backdoors jarang ditakuti dalam aplikasi. Selain itu, hanya sedikit aplikasi yang dikomunikasikan melalui jaringan, sehingga relatif sedikit peluang untuk memicu dan mengeksploitasi kerentanan. Oleh karena itu, tidak ada insentif yang kuat untuk mengisolasi aplikasi satu sama lain.
  • Alasan positifnya adalah fungsionalitas:mengisolasi aplikasi membuat banyak hal menjadi tidak mungkin. Jika setiap aplikasi memiliki area datanya sendiri, itu membuat berbagi data antar aplikasi menjadi sulit. Pada sistem Unix yang khas, sangat umum untuk data yang sama ditangani oleh banyak aplikasi. Ini terutama benar karena Unix tidak memiliki pemisahan yang jelas antara "aplikasi" dan "sistem operasi". Peramban web adalah sebuah aplikasi. Tidak dapat mengunduh file ke direktori pilihan Anda, karena browser terbatas pada direktorinya sendiri, itu menjengkelkan. Program yang menampilkan menu dan ikon saat Anda masuk juga merupakan aplikasi dengan pijakan yang sama. Begitu juga pengelola file, yang menurut definisi memerlukan akses ke semua file Anda. Begitu juga shell dan interpreter lain yang mengeksekusi skrip di semua tempat. Saat Anda mencetak dokumen dari pengolah kata, ini mungkin melibatkan aplikasi untuk mengonversi dokumen ke format yang dapat dicetak, dan aplikasi lain untuk mengirim data ke printer.

Meskipun sekarang ada lebih banyak pembuat aplikasi daripada 40 tahun yang lalu, aplikasi biasanya masih didistribusikan melalui saluran tepercaya, yang membawa indikasi reputasi. (Ini nyata lebih benar untuk Linux daripada untuk Windows, yang merupakan bagian dari alasan mengapa virus lebih umum di Windows.) Aplikasi yang ditemukan memiliki pintu belakang akan segera ditarik dari repositori perangkat lunak Linux.

Terkait:Debian – mengubah ukuran partisi root tanpa menghapus dan menginstal ulang Linux (atau kehilangan data)?

Sistem operasi seluler dirancang dengan mempertimbangkan berbagai ancaman. Mereka dirancang untuk sistem pengguna tunggal, tetapi dengan aplikasi yang berasal dari sumber yang sepenuhnya tidak tepercaya.

Isolasi aplikasi mulai masuk ke sistem Unix desktop. Beberapa distribusi menjalankan program tertentu di bawah kerangka keamanan seperti AppArmor atau SELinux yang membatasi apa yang dapat dilakukan aplikasi. Kerugian dari pembatasan keamanan ini adalah karena pembatasan tersebut terkadang membuat penggunaan yang diinginkan menjadi tidak mungkin, misalnya mencegah aplikasi yang dibatasi membuka file di direktori tertentu.

Enkripsi akan sama sekali tidak berguna. Enkripsi hanya melindungi data dalam perjalanan (melalui jaringan) atau saat istirahat (disimpan di disk), itu tidak melindungi data pada sistem langsung — jika subsistem A mendekripsi datanya, maka terserah pada OS untuk mencegah subsistem B untuk mencegah akses ke data yang didekripsi, dan dengan demikian tidak masalah apakah data didekripsi oleh A atau disimpan tidak terenkripsi. Sistem operasi mungkin mengenkripsi data, tetapi hanya untuk melindunginya jika media penyimpanan dicuri.

Jika Anda ingin menjalankan kode yang tidak Anda percayai, hal terbaik yang harus dilakukan adalah menjalankannya di mesin virtual. Berikan mesin virtual akses hanya ke file yang dibutuhkan aplikasi (misalnya, jangan bagikan direktori home Anda).


Linux
  1. Cara Mengganti Nama File di Linux

  2. Cara Meningkatkan Waktu Startup Aplikasi Di Linux

  3. Cara menginstal aplikasi Spotify di Linux

  1. Bagaimana saya menyesuaikan dekorasi jendela Linux saya

  2. Cara mengenkripsi file dengan gocryptfs di Linux

  3. Cara Membuat Zip Banyak File di Linux

  1. Cara menemukan file di Linux

  2. Cara Menampung Aplikasi Legacy

  3. Cara memulai aplikasi secara otomatis di Ubuntu 22.04 Jammy Jellyfish Linux