GNU/Linux >> Belajar Linux >  >> Linux

Eksekusi program yang mungkin berbahaya di Linux

  • Mesin virtual dapat memberi Anda keamanan tertinggi tanpa reboot, tetapi kinerja terendah.

  • Opsi lain, bahkan untuk keamanan yang lebih tinggi daripada mesin virtual:boot CD/DVD/flashdisk "live" tanpa akses ke hard drive (untuk sementara nonaktifkan HDD di BIOS; jika Anda tidak bisa, setidaknya jangan memasang drive / melepasnya, jika dipasang secara otomatis - tetapi ini jauh lebih tidak aman)

  • Seorang buruh pelabuhan container adalah alternatif yang sedikit kurang aman untuk mesin virtual lengkap. Mungkin perbedaan krusial (dalam hal keamanan) antara keduanya adalah bahwa sistem yang berjalan di buruh pelabuhan benar-benar menggunakan kernel sistem host Anda.

  • Ada program seperti isolate yang akan membuat lingkungan khusus yang aman - ini biasanya disebut kotak pasir - biasanya berbasis chroot, dengan pengawasan tambahan - temukan yang cocok untuk Anda.

  • Sebuah chroot sederhana akan paling tidak aman (khususnya dalam hal menjalankan program), meskipun mungkin sedikit lebih cepat, tetapi ... Anda harus membuat/menyalin seluruh pohon akar yang terpisah dan menggunakan mount pengikat untuk /dev dll. (lihat Catatan 1 di bawah!). Jadi secara umum, pendekatan ini tidak dapat direkomendasikan, terutama jika Anda dapat menggunakan sandbox yang lebih aman dan seringkali lebih mudah disiapkan lingkungan.

Catatan 0: Untuk aspek "pengguna khusus", seperti nobody akun:Ini memberikan hampir tidak ada keamanan, jauh lebih sedikit daripada chroot sederhana sekalipun . A nobody pengguna masih dapat mengakses file dan program yang telah dibaca dan eksekusi izin ditetapkan untuk lainnya . Anda dapat mengujinya dengan su -s /bin/sh -c 'some command' nobody . Dan jika Anda memiliki file konfigurasi/riwayat/cache yang dapat diakses oleh siapa saja (karena kesalahan atau lubang keamanan kecil), sebuah program berjalan dengan nobody izin dapat mengaksesnya, grep untuk data rahasia (seperti "pass=" dll.) dan dalam banyak cara mengirimkannya melalui internet atau apa pun.

Catatan 1: Seperti yang ditunjukkan Gilles dalam komentar di bawah, lingkungan chroot yang sederhana akan memberikan sedikit keamanan terhadap eksploitasi yang bertujuan untuk peningkatan hak istimewa. Chroot tunggal masuk akal dari segi keamanan, hanya jika lingkungan minimal, terdiri dari program yang dikonfirmasi keamanannya hanya (tetapi masih ada risiko mengeksploitasi potensi kerentanan tingkat kernel), dan semua program tidak tepercaya yang berjalan di chroot berjalan sebagai pengguna yang tidak menjalankan proses apa pun di luar chroot. Apa yang chroot cegah (dengan batasan yang disebutkan di sini), adalah penetrasi sistem langsung tanpa eskalasi hak istimewa. Namun, seperti yang dicatat Gilles dalam komentar lain, bahkan tingkat keamanan itu dapat dielakkan, memungkinkan sebuah program keluar dari chroot.


Gunakan mesin virtual. Kurang dari itu tidak memberikan banyak keamanan.

Beberapa tahun yang lalu saya mungkin menyarankan pengguna khusus chroot atau semacamnya. Tetapi perangkat keras menjadi lebih kuat, dan perangkat lunak mesin virtual menjadi lebih mudah digunakan. Selain itu, serangan off-the-shelf menjadi lebih canggih. Tidak ada lagi alasan untuk tidak pergi jauh-jauh ke sini.

Saya akan merekomendasikan menjalankan VirtualBox. Anda dapat mengatur mesin virtual dalam beberapa menit, lalu menginstal distribusi Linux di dalamnya. Satu-satunya pengaturan non-default yang saya rekomendasikan adalah pengaturan jaringan:buat antarmuka "NAT" (untuk berkomunikasi dengan dunia) dan antarmuka "hanya host" (sehingga Anda dapat dengan mudah menyalin file ke dan dari host, dan ssh ke VM). Nonaktifkan antarmuka NAT saat Anda menjalankan program siswa¹; aktifkan hanya saat Anda memasang atau memutakhirkan paket perangkat lunak.

Di dalam mesin virtual, buat satu pengguna per siswa.

¹ Anda dapat membatasi antarmuka NAT ke daftar putih pengguna, tetapi itu lebih canggih daripada yang Anda butuhkan dalam penyiapan sederhana dan langsung.


di sini adalah penjelasan yang sangat menyeluruh tentang mengapa menggunakan Chroot masih merupakan opsi yang sangat layak, dan mengapa sistem operasi penuh atau virtualisasi perangkat keras penuh sangat berlebihan dalam skenario tertentu.

itu tidak lebih dari sebuah mitos bahwa Chroot bukanlah fitur keamanan. ada alat yang akan membangun sistem file chroot secara otomatis untuk Anda, dan Chroot dibangun ke dalam banyak aplikasi utama sebagai fitur keamanan yang disengaja.

bertentangan dengan kepercayaan populer, tidak setiap situasi memerlukan virtualisasi penuh dari sistem operasi, atau simulasi penuh dari perangkat keras. ini sebenarnya bisa berarti memiliki lebih menyerang permukaan untuk mencoba dan menutupi. pada gilirannya, berarti sistem yang kurang aman . (konon untuk administrator sistem yang kurang berpengetahuan)

aturannya cukup sederhana:jangan memasukkan apapun ke dalam chroot yang tidak diperlukan. jangan menjalankan daemon sebagai root. jangan menjalankan daemon seperti pengguna mana pun yang menjalankan daemon di luar chroot.

hapus semua aplikasi yang tidak aman, binari setuid, symlink / hardlink tanpa pemilik yang menggantung. remount folder yang tidak perlu menggunakan nosuid, noexec dan nodev. membangun versi stabil terbaru dari daemon yang sedang berjalan dari sumber. dan yang terpenting, amankan sistem dasar!


Linux
  1. Identifikasi properti keamanan di Linux menggunakan checksec

  2. Cara mengatur jail chroot Linux

  3. Keamanan sysadmin:8 kontrol penguncian Linux

  1. Pindai keamanan Linux Anda dengan Lynis

  2. 13 tutorial keamanan Linux

  3. Langkah-langkah keamanan lanjutan untuk Linux

  1. Distribusi Linux Populer untuk Pengujian Keamanan

  2. Pemantauan keamanan di Linux dengan Tripwire

  3. BC Security Empire/Starkiller &Kali Linux