Risiko keamanan dari PermitUserEnvironment di ssh

11

Saya telah membaca beberapa posting tentang penggunaan PermitUserEnvironmentdan file ~/.ssh/environmentuntuk meneruskan variabel env ke shell ssh. Dokumen sshd resmi dan beberapa sumber daya lainnya menyinggung beberapa risiko keamanan melakukan hal ini.

Mengaktifkan pemrosesan lingkungan dapat memungkinkan pengguna untuk melewati pembatasan akses di beberapa konfigurasi menggunakan mekanisme seperti LD_PRELOAD.

Apa kemungkinan masalah pengaktifan PermitUserEnvironment? Saya mencari untuk menyimpan rincian koneksi DB dalam variabel lingkungan ini, apakah ini disarankan?

Rob Squires
sumber
Saya mengajukan laporan bug pada proyek OpenSSH, meminta mereka untuk menambahkan beberapa kata ke halaman manual sshd_config, mengklarifikasi masalah ini: bugzilla.mindrot.org/show_bug.cgi?id=2317
Florin Andrei

Jawaban:

16

Pertama-tama, jika Anda tidak mencoba melakukan apa pun dengan pembatasan akses pengguna - yaitu, jika Anda menawarkan akses shell interaktif - mungkin tidak ada risiko keamanan tambahan dalam mengizinkan penggunaan .ssh/environmentfile, karena apa pun yang pengguna dapat melakukannya dengan file yang mereka juga bisa lakukan secara interaktif di shell mereka.

Mengaktifkan pemrosesan lingkungan dapat memungkinkan pengguna untuk melewati pembatasan akses di beberapa konfigurasi menggunakan mekanisme seperti LD_PRELOAD.

Jika Anda menggunakan perintah paksa SSH untuk membatasi apa yang dapat dilakukan orang melalui ssh (misalnya, jika Anda membatasi orang hanya menggunakan sftpatau scp), memungkinkan seseorang untuk mengatur variabel lingkungan seperti LD_PRELOAD(atau bahkan mungkin PATH) akan memungkinkan mereka untuk membajak Anda pembatasan dengan mengganti panggilan pustaka dasar dengan kode mereka sendiri. Di sisi lain, jika Anda membuat .ssh/environmentatas nama pengguna Anda dan mereka tidak dapat mengelolanya, risiko Anda relatif kecil.

Tanpa mengetahui lebih lanjut tentang use case khusus Anda, sulit untuk memberikan jawaban yang pasti.

larsks
sumber
Saya hanya mengizinkan akses ke server dari 2 atau 3 pihak tepercaya (pengembang dalam organisasi kami sendiri) melalui kunci rsa mereka. Jadi dari apa yang Anda katakan kedengarannya ok
Rob Squires
Dari jawaban Anda, saya menganggap bahwa saya tidak boleh kehilangan tidur tentang implikasi keamanan mengaktifkan opsi ini jika semua akun ssh saya menyediakan akses bash penuh (tanpa sudo). Benar?
Florin Andrei
Itu benar. Jika Anda memberikan akses bash penuh, orang sudah dapat mengatur variabel lingkungan apa pun yang mereka inginkan.
larsks