Ketika saya menginstal program seperti GIMP atau LibreOffice di Linux saya tidak pernah ditanya tentang izin. Dengan menginstal program di Ubuntu, apakah saya secara eksplisit memberikan izin penuh kepada program itu untuk membaca / menulis di mana saja di drive saya dan akses penuh ke internet?
Secara teoritis, dapatkah GIMP membaca atau menghapus direktori apa pun di drive saya, tidak memerlukan kata sandi tipe sudo?
Saya hanya ingin tahu apakah secara teknis memungkinkan, tidak apakah itu mungkin atau tidak. Tentu saja, saya tahu itu tidak mungkin.
permissions
security
software-installation
stackinator
sumber
sumber
Jawaban:
Ada dua hal di sini:
ketika Anda menginstal sebuah program dengan cara standar (installer sistem seperti apt / apt-get di Ubuntu) biasanya diinstal di beberapa direktori di mana ia tersedia untuk semua pengguna (/ usr / bin ...). Direktori ini memerlukan hak istimewa untuk ditulis sehingga Anda memerlukan hak istimewa selama instalasi.
ketika Anda menggunakan program, program ini berjalan dengan id pengguna Anda dan hanya bisa membaca atau menulis jika program yang dijalankan dengan id Anda diizinkan untuk membaca atau menulis. Dalam kasus Gimp, Anda akan menemukan misalnya bahwa Anda tidak dapat mengedit sumber daya standar seperti kuas karena mereka ada di bersama
/usr/share/gimp/
dan bahwa Anda harus menyalinnya terlebih dahulu. Ini juga menunjukkan diEdit>Preferences>Folders
mana sebagian besar folder berpasangan, satu sistem yang hanya baca dan satu pengguna yang dapat ditulis.sumber
rm -rf ~/
. Jika Anda menginstal dari sumber lain, Anda harus berhati-hati (atau menginstal dari sumber, setelah inspeksi kode).Ya, jika Anda menggunakan
sudo
atau yang setara, Anda memberi installer izin penuh untuk membaca / menulis di mana saja di drive Anda. Ini kebanyakan hal yang sama. Ada juga flag yang bisa diatur oleh installer, yang disebut setuid, yang akan membuat program memiliki izin penuh setelah menginstal juga.Bahkan jika kita mengabaikan penginstal dan jika program tidak setuid (sangat jarang bagi program untuk menggunakan setuid), ketika Anda menjalankan program itu memiliki akses penuh ke apa pun yang dapat diakses oleh akun Anda. Misalnya, jika Anda masuk ke perbankan online Anda, itu bisa secara hipotetis mengirim semua dana Anda ke Nigeria.
Model keamanan - yang berarti cara sistem keamanan dirancang - di Linux sudah sangat tua. Itu diwarisi dari Unix, yang tanggal kembali ke tahun 1960-an. Saat itu, tidak ada internet, dan kebanyakan orang di departemen menggunakan komputer yang sama. Sebagian besar program Anda berasal dari perusahaan besar yang dipercaya. Jadi sistem keamanan dirancang untuk melindungi pengguna dari satu sama lain, bukan untuk melindungi pengguna dari program yang mereka jalankan.
Saat ini sudah cukup usang. Android berbasis Linux, tetapi bekerja dengan membuat "akun pengguna" yang terpisah untuk setiap aplikasi, bukan untuk setiap pengguna. Saya tidak tahu apa yang digunakan iOS. Upaya-upaya seperti Flatpak saat ini mencoba untuk membawa hal yang sama ke desktop Linux.
sumber
Apa yang Anda inginkan disediakan oleh aplikasi Flatpack. Ini sangat setara dengan aplikasi iOS, Android, atau Windows Store.
Saya belum menggunakannya, jadi saya tidak tahu apakah mereka sudah mengimplementasikan GUI, untuk melihat izin yang diperlukan oleh setiap aplikasi saat diinstal.
https://blogs.gnome.org/alexl/2017/01/20/the-flatpak-security-model-part-2-who-needs-sandboxing-anyway/
Saya juga belum menggunakan alternatif Ubuntu, Snappy, untuk mengetahui apakah ia menyediakan fitur seperti itu yang terlihat di GUI.
sumber
Secara teknis dimungkinkan dan solusinya termasuk
apparmor
,selinux
danfirejail
atau bahkan kontainer penuh sepertiLXC
atau mesin virtual penuh (misalnyaVirtualBox
,kvm
atauvmware
). Untuk jaringan adaopensnitch
yang merupakan tiruan darilittlesnitch
program dari OSX.Alasan mengapa tidak ada model keamanan yang tersebar luas dengan izin yang diberikan oleh pengguna adalah bahwa secara tradisional Anda berhati-hati dengan apa yang Anda jalankan di komputer. 90% dari apa yang ada di appstores sistem seluler akan dianggap sebagai malware di PC.
Ada pemindai untuk adware (yaitu adaware atau Spybot D&D) yang akan mengklasifikasikan perilaku seperti menghubungkan facebook, google analytics, dan jaringan periklanan sebagai malware di PC. Ekosistem seluler seperti seluruh reboot komputasi ketika menyangkut hal-hal ini. Semua orang membundel adware, hanya karena mudah dan menambah analitik, hanya karena dia penasaran. Efek sampingnya adalah menurunnya privasi dan keamanan. Bagian keamanan dicatat oleh model kotak pasir, bagian privasi masih merupakan masalah terbuka.
Alasan lain untuk tidak memiliki ini pada PC untuk waktu yang lama adalah kompleksitas kotak pasir, yang berarti bahwa keduanya mungkin terlalu lambat untuk PC yang lebih tua beberapa waktu lalu dan membutuhkan lebih banyak rekayasa untuk sesuatu yang memiliki sedikit keuntungan saat itu.
Hari ini kita melihat upaya untuk menggunakan sandboxing dalam format paket baru seperti snap dan flatpak dan browser menggunakannya untuk ekstensi mereka juga. Chromium menggunakan model izin sejak awal dan Firefox menggunakan satu model untuk semua ekstensi web (karena hanya 57 ekstensi yang dapat Anda pasang). Ini cukup masuk akal, karena orang memasang ekstensi browser dari penulis yang tidak dikenal seperti aplikasi dari orang yang tidak pernah mereka dengar, menganggap mereka tidak lebih berbahaya daripada situs web yang mereka kunjungi, yang merupakan kesalahpahaman fatal ketika tidak ada kotak pasir untuk melindunginya.
sumber
Android menggunakan model keamanan "pasar": aplikasi yang berbeda datang dari vendor yang berbeda (semi-tepercaya), dan harus diisolasi dari sumber daya yang dilindungi dan satu sama lain. Sebagian besar aplikasi didistribusikan berdasarkan laba: mereka dijual (payware), menunjukkan iklan berbayar, atau "memonetisasi" pengguna mereka dengan menjual data mereka ke pihak ketiga. Ada motivasi yang tinggi untuk terlibat dalam akses data terlarang, bahkan jika mereka tertangkap.
Sebagian besar aplikasi di Debian, Red Hat, dan distribusi Linux "klasik" yang serupa didistribusikan dalam bentuk sumber: setelah aplikasi open source mendapatkan daya tarik yang cukup, ia dipilih secara manual untuk dimasukkan oleh pengelola distribusi. Ada sedikit motivasi untuk melakukan akses data ilegal, - potensi keuntungan tidak membenarkan upaya.
Perlu dicatat, bahwa model keamanan Android yang canggih adalah salah satu alasannya, mengapa ia memperoleh banyak daya tarik, dengan mudah mengatasi iOS di pasar seluler. Distro Linux desktop modern tidak hanya "berbeda", - mereka sebenarnya jauh di belakang kali dalam hal keamanan dan model distribusi mereka.
Beberapa distribusi Linux hadir dengan perbaikan pada sistem distribusi perangkat lunak mereka: repositori perangkat lunak pihak ketiga terpusat (AUR), format paket khusus untuk mendistribusikan perangkat lunak pihak ketiga (AppImage, Snappy, Flatpack), sistem penyimpanan sekunder (Docker). Sayangnya, perbaikan-perbaikan itu mendapatkan daya tarik yang sangat sedikit dengan waktu: AppImage telah ditemukan pada tahun 2004, versi pertama AUR dirilis pada tahun 2005, namun tidak ada distribusi Linux modern yang secara resmi mengadopsi fitur-fitur mereka setelah> 10 tahun.
sumber
Aplikasi ini diinstal di bagian istimewa dari sistem file yang biasanya Anda dan sebagian besar pengguna tidak memiliki akses untuk berubah.
Pada distro utama yang diatur untuk penggunaan desktop, pengguna tunggal yang awalnya mengatur ketika menginstal biasanya akan memiliki hak admin. Yang biasanya diminta adalah kata sandi login mereka sendiri untuk menginstal perangkat lunak, dan tidak selalu seperti itu.
Setelah terinstal perangkat lunak, secara default, akan diatur agar dapat dieksekusi oleh pengguna normal dan memungkinkan file data untuk dibaca. Itu saja yang dibutuhkan.
Bukan programnya. Apa yang terjadi adalah bahwa akun pengguna milik kelompok yang berbeda dan kelompok yang berbeda memberikan akses ke sumber daya yang berbeda.
Model keamanan di Linux adalah bahwa akun pengguna Anda memiliki hak tertentu, dan grup yang dimiliki akun Anda memiliki hak khusus. Untuk hak ke bagian mana pun dari sistem file membutuhkan hak akses root, yang biasanya tidak diberikan kepada pengguna. Bahkan ketika Anda menggunakan sudo Anda tidak mendapatkan semua hak.
Akun pengguna normal biasanya memiliki akses ke sumber daya yang mereka harapkan butuhkan, seperti internet.
Direktori atau file apa pun yang Anda, sebagai pengguna, memiliki hak akses dapat diakses oleh aplikasi yang Anda luncurkan karena biasanya mewarisi hak-hak Anda. Pengguna yang masuk secara normal biasanya tidak memiliki hak untuk mengubah sebagian besar file sistem kritis atau file bersama.
Perlu diingat bahwa sebagian besar pengguna biasanya menginstal aplikasi dari repositori yang dijaga dengan baik dan risiko kode permusuhan rendah.
Saya mungkin akan menyarankan beberapa bacaan tambahan untuk memahami izin Linux.
Pengantar Izin Linux
Memahami Izin File Linux
Model keamanan Android berkembang untuk menyesuaikan dengan kebutuhan pengguna yang tidak hanya umumnya tidak mengerti apa-apa tentang model keamanan OS yang mendasarinya tetapi juga hampir tidak mengerti apa - apa tentang komputer.
Model Linux (yang saya suka lebih banyak) dirancang untuk memungkinkan pengguna (dan administrator khususnya) untuk melakukan kontrol lebih besar atas keamanan pada sistem (dalam batas-batas jika izin mereka diizinkan).
Saya pikir dari sudut pandang pengguna, paling baik digambarkan sebagai perbedaan antara kontrol otomatis penuh dan semi otomatis atau manual. Konsumen modern menginginkan otomatis penuh. Linux memiliki semi-otomatis dan manual. Sebagian besar pengguna Linux tidak perlu tahu tentang model keamanan hari ini, tetapi kontrol ada jika Anda membutuhkan atau menginginkannya.
sumber
Ketika Anda menginstal beberapa program, Anda dapat menginstalnya di dalam ruang pengguna Anda sendiri (yaitu mandiri dalam direktori home Anda) dan tidak di seluruh sistem. Dengan demikian, Anda tidak dimintai hak pengguna super karena Anda tidak perlu menginstal program untuk penggunaan sendiri oleh pengguna. Suatu program yang diinstal dengan demikian memang tidak akan dapat mengakses file yang tidak diberikan izin "non-pemilik yang bukan anggota grup dapat membaca ini" tanpa adanya peningkatan hak istimewa.
sumber