Saya ingin menjalankan program kecil yang tidak tepercaya, tetapi membatasi mereka untuk mengakses file apa pun di luar folder mereka, akses jaringan, dan segala sesuatu yang mereka tidak benar-benar butuhkan. Apa cara paling sederhana untuk mencapai ini?
66
Jawaban:
Jika mereka benar-benar tidak dipercaya, dan Anda ingin memastikan, Anda akan mengatur kotak yang terpisah. Baik benar-benar, atau secara virtual.
Selanjutnya, Anda tidak ingin kotak itu berada di jaringan yang sama dengan barang-barang penting Anda, jika Anda cukup paranoid. Dalam semua solusi, Anda akan mengatur pengguna terpisah tanpa hak, jadi jangan membuka terlalu banyak alat untuk calon kompromi.
Jika Anda terikat menjalankannya di kotak yang sama, Anda memiliki misalnya, opsi ini
chroot
. Ini adalah opsi default untuk melakukan hal ini bagi banyak orang, dan untuk ancaman non-spesifik bahkan mungkin berhasil. Tapi ini BUKAN pilihan keamanan, dan bisa pecah dengan mudah. Saya menyarankan untuk menggunakan ini sebagaimana dimaksud, yaitu bukan untuk keamanan.Pada akhirnya Anda mungkin perlu menyiapkan model sandboxing tertentu tanpa perlu virtualisasi atau kotak terpisah, atau situasi yang masih berisiko
chroot
. Saya ragu ini yang Anda maksudkan, tetapi lihat tautan ini untuk informasi yang lebih mendalam.sumber
Firejail cukup baru dan dalam pengembangan konstan. Mudah digunakan.
Anda cukup:
sumber
Docker akan membantu Anda mengatur wadah yang dapat Anda jalankan dari kernel saat ini, namun tetap terkandung jauh dari sisa sistem Anda. Tampaknya cukup canggih tetapi ada fokus Ubuntu dokumentasi yang baik.
sumber
Virtualisasi penuh / emulasi (VirtualBox)
Salah satu solusi yang mungkin adalah perangkat lunak virtualisasi seperti VirtualBox yang dapat Anda temukan di pusat perangkat lunak.
Anda sekarang dapat menginstal perangkat lunak yang Anda tidak percaya untuk melihat apa yang dilakukannya. Itu tidak dapat mengganggu dunia luar atau Anda meng-host OS karena tidak memiliki akses.
Namun, ini mungkin menghancurkan mesin virtual Anda, tetapi jika berhasil, Anda dapat mengembalikannya dari snapshot.
Mungkin ada metode lain untuk membatasi kekuatan destruktif dari perangkat lunak yang tidak dipercaya tetapi ini adalah metode paling kuat yang bisa saya pikirkan.
Virtualisasi berbasis wadah (Docker / LXC)
Pilihan lain mungkin LXC informasi lebih lanjut di sini
LXC adalah paket kontrol userspace untuk Linux Containers, mekanisme sistem virtual ringan yang kadang-kadang digambarkan sebagai "chroot on steroid".
LXC dibangun dari chroot untuk mengimplementasikan sistem virtual lengkap, menambahkan manajemen sumber daya dan mekanisme isolasi ke infrastruktur manajemen proses Linux yang ada.
Ini tersedia di pusat perangkat lunak. Namun saya tidak punya pengalaman.
sumber
mbox
Saya sudah menggunakannya untuk beberapa hal andal.
sumber
subuser
Anda dapat menggunakan subuser untuk mem-sandbox aplikasi Anda dengan Docker. Ini memungkinkan Anda melakukan hal-hal seperti aplikasi GUI kotak pasir, yang tidak mudah dilakukan dengan Docker secara langsung.
sumber
Saya pikir, solusi yang mungkin adalah membuat pengguna terpisah untuk tujuan pengujian, dan membatasi hak istimewanya. Dengan cara ini Anda tidak akan kehilangan kinerja, apa yang pasti akan terjadi di mesin virtual, tapi saya pikir ini kurang aman, jika tidak diatur dengan benar, yang saya tidak bisa saran tentang bagaimana melakukannya.
sumber
DoSH - Docker SHell
Jika Anda hanya ingin mem-sandbox aktivitas pengguna, Anda dapat menggunakan "DoSH"
sumber