GNU/Linux >> Belajar Linux >  >> Linux

Seberapa aman NOPASSWD dalam mode sudo tanpa kata sandi?

NOPASSWD tidak berdampak besar pada keamanan. Efeknya yang paling jelas adalah memberikan perlindungan saat pengguna meninggalkan workstationnya tanpa pengawasan:penyerang dengan akses fisik ke workstationnya kemudian dapat mengekstraksi data, melakukan tindakan, dan menanam malware dengan izin pengguna, tetapi tidak meningkatkan aksesnya ke root. Perlindungan ini terbatas penggunaannya karena penyerang dapat menanam program jenis keylogger yang mencatat kata sandi pengguna saat berikutnya dia memasukkannya di sudo prompt atau di screensaver.

Meskipun demikian, meminta kata sandi memang meningkatkan standar bagi penyerang. Dalam banyak kasus, perlindungan terhadap penyerang yang tidak canggih berguna, terutama dalam skenario stasiun kerja tanpa pengawasan di mana serangan sering menjadi salah satu peluang dan penyerang mungkin tidak mengetahui cara menemukan dan mengonfigurasi malware rahasia dalam waktu singkat. Selain itu, lebih sulit untuk menyembunyikan malware jika Anda tidak memiliki izin root — Anda tidak dapat bersembunyi dari root jika tidak memiliki root.

Ada beberapa skenario realistis di mana kurangnya kata sandi melindungi bahkan dari penyerang canggih. Misalnya, laptop curian:laptop pengguna dicuri, lengkap dengan kunci SSH pribadi; baik pencuri berhasil menebak kata sandi untuk file kunci (mungkin dengan kekerasan), atau dia mendapatkan akses ke sana dari tempat pembuangan memori agen kunci. Jika pencurian terdeteksi, ini adalah sinyal untuk menyelidiki aktivitas terbaru di akun pengguna tersebut, dan ini berarti malware yang ditanam harus dideteksi. Jika penyerang hanya memiliki akses tingkat pengguna, apa pun yang dilakukannya akan meninggalkan jejak di log; jika penyerang mendapatkan kata sandi pengguna dan menjalankan sudo, semua log sekarang disusupi.

Saya tidak tahu apakah kelemahan dari NOPASSWD menyeimbangkan keuntungan untuk kasus penggunaan Anda. Anda perlu menyeimbangkannya dengan semua faktor lain dari situasi Anda. Misalnya, tampaknya Anda mengizinkan tetapi tidak memaksakan memiliki kata sandi yang berbeda. Bisakah Anda menggunakan database akun terpusat? Berapa banyak penahanan yang Anda butuhkan di antara sistem Anda? Apakah Anda mempertimbangkan alternatif untuk Ansible yang akan mendukung kata sandi sudo yang berbeda? Sudahkah Anda mempertimbangkan mekanisme autentikasi lainnya?


Ada dua kasus khusus mengapa Anda tidak menginginkan sudo tanpa kata sandi:

  1. Ini adalah mekanisme pertahanan terhadap pengguna jahat yang mendapatkan akses ke akun administratif. Hal ini dapat terjadi karena eksploitasi atau karena admin meninggalkan stasiun kerjanya tanpa pengawasan tanpa mengunci sesinya.
  2. Harus menerbitkan ulang kata sandi saat menggunakan sudo memberi pengguna impulsif waktu untuk berpikir dua kali sebelum benar-benar melakukan tindakan.

Tentang otomatisasi:

Saya setuju Anda dapat melakukan ini tanpa kata sandi, tetapi dengan tidak memerlukan kata sandi sudo Anda sebenarnya memberikan SEMUA akses ke alat otomasi Anda. Sekarang pikirkan alat apa yang sebenarnya harus dilakukan? Apakah itu benar-benar membutuhkan semua akses ini? Mungkin tidak.

Sudo hadir dengan fitur bagus yang memungkinkan Anda mengonfigurasi perintah khusus dengan NOPASSWD bendera di dalam file sudoers:

username myhost = (root) NOPASSWD: /sbin/shutdown
username myhost = (root) NOPASSWD: /sbin/reboot

Satu hal yang sepertinya tidak ditunjukkan oleh siapa pun karena alasan tertentu (koreksi saya jika saya salah) adalah memungkinkan program apa pun yang Anda jalankan untuk meningkatkan ke akses root tanpa Anda sadari. Biasanya, jika Anda secara tidak sengaja menjalankan program atau skrip berbahaya sebagai pengguna non-root tanpa sudo, maka meskipun masih dapat melakukan banyak kerusakan, tetap saja (kecuali eksploit terpisah) tidak akan memiliki hak akses root. Jadi Anda setidaknya tidak perlu khawatir tentang rootkit atau apapun. Tetapi dengan mode NOPASSWD, Anda tidak memiliki perlindungan itu. Program apa pun yang berjalan di bawah pengguna Anda akan dapat meningkat menjadi root dengan memanggil kembali dirinya sendiri dengan sudo. Malware masih perlu diprogram secara khusus untuk melakukan ini, dan jika tidak, ia tidak akan memiliki akses root, tetapi lalu bagaimana dengan kode berbahaya yang melakukan itu?


Linux
  1. Bagaimana Cara Menjalankan Program Tertentu Sebagai Root Tanpa Prompt Kata Sandi?

  2. Bagaimana Internal Sudo Bekerja?

  3. Cara Mengatur Sudo Tanpa Kata Sandi untuk Pengguna Tertentu

  1. Cara Mengatur Hak Istimewa Sudo untuk Pengguna di Linux

  2. Bagaimana Cara Membuat Skrip A Sebagai Root Secara Retroaktif?

  3. Cara Mengamankan Rocky Linux 8

  1. Bagaimana Menjalankan Terminal Sebagai Root?

  2. Bagaimana Mengubah Pemilik Kembali Ke Root??

  3. Cara Mengamankan server Ubuntu Anda dengan CSF Firewall