GNU/Linux >> Belajar Linux >  >> Linux

Seberapa berguna pemasangan /tmp noexec?

Solusi 1:

Berikut adalah argumen untuk utilitas yang saya temukan sejauh ini:

Kernel modern memperbaiki /lib/ld-linux.so lubang, sehingga tidak dapat memetakan halaman yang dapat dieksekusi dari noexec sistem file.

Poin juru bahasa tentu saja masih menjadi perhatian, meskipun menurut saya kurang dari yang mungkin diklaim orang. Alasan yang dapat saya kemukakan adalah bahwa ada banyak kerentanan eskalasi hak istimewa yang bergantung pada pembuatan syscall cacat tertentu. Tanpa penyerang menyediakan biner, akan jauh lebih sulit untuk membuat syscall jahat. Juga, juru bahasa skrip harus tidak memiliki hak istimewa (saya tahu ini secara historis kadang-kadang tidak demikian, seperti dengan suid perl), dan karenanya membutuhkan kerentanan mereka sendiri agar berguna dalam serangan. Tampaknya, Python dapat digunakan, setidaknya, untuk menjalankan beberapa eksploit.

Banyak eksploitasi 'kalengan' mungkin mencoba untuk menulis dan menjalankan executable di /tmp , dan noexec mengurangi kemungkinan jatuh ke serangan skrip (katakanlah di jendela antara pengungkapan kerentanan dan pemasangan patch).

Jadi, masih ada manfaat keamanan untuk memasang /tmp dengan noexec .

Seperti yang dijelaskan dalam pelacak bug Debian, menyetel APT::ExtractTemplates::TempDir di apt.conf ke direktori yang bukan noexec dan dapat diakses oleh root akan meniadakan masalah debconf.

Solusi 2:

Banyak paket Debian membutuhkan /tmp agar dapat dieksekusi agar paket dapat diinstal. Ini sering ditandai sebagai bug (dengan tingkat keparahan 'normal'/'wishlist'):

https://www.google.com/#q=site:bugs.debian.org+noexec+/tmp

Saya menerima kesalahan ini saat menginstal kernel yang diperbarui ke cabang stabil hari ini.

Jadi sepertinya Debian (&turunannya?) belum siap untuk /tmp dipasang noexec...

Solusi 3:

tambahkan yang berikut ke /etc/apt.conf, atau, /etc/apt/apt.conf.d/50remount

DPkg::Pre-Install-Pkgs {"mount -o remount,exec /tmp";};
DPkg::Post-Invoke {"mount -o remount /tmp";};

Solusi 4:

Meskipun ada solusi untuk sebagian besar tindakan keamanan tambahan yang mungkin Anda pilih untuk diterapkan, bahkan tindakan keamanan yang paling mudah dielakkan (seperti pemasangan /tmp noexec atau menjalankan SSH pada port alternatif) akan menggagalkan serangan otomatis atau skrip yang bergantung pada default secara berurutan berfungsi. Itu tidak akan melindungi Anda dari penyerang yang gigih dan berpengetahuan luas, tetapi lebih dari 99% dari waktu, Anda tidak akan menghadapi penyerang yang gigih atau berpengetahuan luas. Sebaliknya, Anda akan membela diri dari skrip serangan otomatis.

Solusi 5:

Pertama: Ini mencakup banyak kasus serangan yang berbeda. Mematikannya karena ada beberapa cara yang diketahui untuk mengatasinya (beberapa di antaranya bahkan diperbaiki) itu aneh. Penyerang mengunduh kode ke /dev/shm atau /tmp adalah hal umum yang mereka lakukan.

Pertahanan mendalam adalah tentang mengamankan titik arah yang paling umum, setiap titik arah yang menghentikannya membuat sistem Anda lebih dapat bertahan. Tidak aman. Tapi itu juga akan memiliki kesempatan . Jika mereka tidak dapat mengambil muatan sekundernya, itu adalah peluang yang cukup bagus untuk Anda dapatkan.

  • Mungkin juga dihentikan oleh pembatasan pengguna iptables.
  • Mungkin juga dihentikan oleh SELinux.
  • Mungkin juga tidak dihentikan karena eksploit lain yang mudah diakses.

Intinya adalah membuatnya sesulit Anda dengan mudah bisa, dan hentikan 99% serangan.

Kedua: Ini menghentikan praktik buruk (menjalankan sesuatu dari temp, melakukan penginstalan aplikasi utama melalui /tmp alih-alih tmpdir pengguna), meninggalkan data di /tmp . Pemasang khusus biasanya memahami TMPDIR Juga:meskipun tidak:waktu penginstalan, sebagai tindakan waktu tertentu, bukan alasan yang sah untuk mematikan masalah keamanan secara permanen .

Ketiga: Mempertimbangkan ruang nama anonim di /tmp ("fitur"), Anda benar-benar ingin membatasi apa yang diletakkan di sana dan dijalankan dari sana.

Keempat: Kenyamanan bukanlah faktor yang relevan dalam hal ini. Dengan asumsi kami menjalankan server demi uang, dan untuk suatu tujuan:kami bertanggung jawab atas hal ini. "Oh, saya tidak mengunci /tmp karena kemudian saya perlu beberapa menit lagi ketika saya memperbarui perangkat lunak saya tahun depan". P>

Bagaimana dengan yang ini:

"Kami mengetahui bahwa musuh dapat menyerang tanpa pemberitahuan. Mereka juga dapat menggunakan ratusan mata-mata untuk meracuni makanan. Jadi kami berhenti membagikan senjata kepada tentara kami."

Tunggu, APA?

Ada langkah-langkah lain yang membutuhkan lebih banyak usaha, pengalaman, dan keberuntungan untuk mengamankan sistem, dan mengetahui orang-orang memiliki uang terbatas, masa hidup dan juga ingin menghabiskan waktu bersama keluarga mereka:Jangan lewatkan hal-hal mudah.


Linux
  1. Bagaimana Cara Mengubah Mount Points?

  2. Bagaimana systemd-tmpfiles membersihkan /tmp/ atau /var/tmp (pengganti tmpwatch) di CentOS / RHEL 7

  3. Cara menonaktifkan penghapusan otomatis file di direktori /tmp dan /var/tmp di CentOS / RHEL 5,6

  1. Bagaimana cara menyandikan base64 /dev/random atau /dev/urandom?

  2. Bagaimana cara mengetahui dari folder mana suatu proses sedang berjalan?

  3. Mengapa meletakkan hal-hal selain /home ke partisi terpisah?

  1. Cara Mengembalikan Direktori /tmp yang Dihapus di Linux

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Perbedaan dan penggunaan yang benar untuk /tmp dan /var/tmp