Saya ingin tahu tentang keamanan meninggalkan root shell berjalan di dalam sesi layar terpisah. Saya biasanya tidak pernah melakukan ini.
Selain potensi akun pengguna non-root saya dikompromikan (kata sandi diekspos, ssh key dikompromikan, dll), apakah ada vektor lain masuk ke sesi layar terpisah, dilindungi kata sandi saya harus khawatir, atau dapat layar terpisah Sesi dianggap lembam?
security
gnu-screen
root
Michael
sumber
sumber
sudo
.sudo
nonaktifkan sementara shell root yang benar tetap terbuka.Jawaban:
Saya pikir ini adalah masalah keamanan, karena "Selain potensi akun pengguna non-root saya dikompromikan" bisa agak besar.
Tetapi ada peningkatan risiko lain di luar itu. Sebagai contoh, Anda sekarang telah membuka diri untuk mengeksploitasi teoritis yang memungkinkan seseorang untuk mengubah izin di dir soket layar (
/var/run/screen
pada sistem saya, tetapi kadang/tmp
- kadang digunakan). Eksploitasi itu sekarang memiliki jalan untuk mendapatkan root, yang mungkin tidak sebaliknya.sudo
memiliki kelebihan lain, jika Anda bisa melatih diri untuk menggunakannya untuk setiap perintah daripada melakukannyasudo su -
. Ia mencatat tindakan (yang, kecuali Anda masuk dari jarak jauh, tidak meningkatkan keamanan secara berarti, tetapi memberi Anda jejak apa yang telah Anda lakukan). Dan itu membantu mencegah kecelakaan dengan meminta eskalasi yang disengaja untuk setiap perintah, alih-alih beralih ke sesi yang sepenuhnya istimewa.sumber
Jika Anda memiliki shell root di sesi layar (terlepas atau tidak, dilindungi kata sandi atau tidak), dan
screen
executable Anda tidak setxid, maka penyerang yang mendapatkan hak istimewa Anda dapat menjalankan perintah di shell itu. Jika tidak ada yang lain, mereka dapat melakukannya dengan menelusuri proses layar.Jika layar setuid atau setgid, dan sesi dilepaskan dan dilindungi kata sandi, maka pada prinsipnya dibutuhkan kata sandi layar untuk menjalankan perintah di shell itu. Jika prinsip ini berlaku, seseorang yang hanya mengkompromikan akun Anda harus meletakkan trojan di tempatnya dan menunggu Anda mengetikkan kata sandi. Namun permukaan serangan (yaitu jumlah tempat di mana sesuatu bisa salah karena bug atau kesalahan konfigurasi) sangat besar dan tidak nyaman. Selain fitur keamanan sistem dasar, Anda mempercayai:
"Beberapa fitur lain untuk tidak menggigitmu": ya, itu tidak jelas. Tapi itu selalu menjadi perhatian dalam keamanan. Anda mungkin tergoda untuk menganggap ini hanya angan-angan belaka, tetapi apakah Anda benar-benar memikirkan segalanya? Sebagai contoh…
Selama Anda dapat menulis ke perangkat terminal, Anda dapat menyuntikkan data ke input shell itu. Di bawah konfigurasi default layar pada mesin saya:
Ini memasukkan
␛]lfoobar␛l
aliran input shell.\ek
adalah urutan kontrol yang memungkinkan aplikasi (atau apa pun yang dapat menulis ke perangkat terminal) mengatur judul jendela (lihat bagian “Penamaan jendela” di manual layar ), dan\e[21t
menjadikan terminal melaporkan judulnya pada input standar aplikasi ( layar tidak mendokumentasikan urutan ini, tetapi menerapkannya; Anda dapat menemukannyaCSI Ps ; Ps ; Ps ; t
di bawah dalam daftar urutan kontrol xterm . Faktanya, setidaknya di bawah layar 4.0.3, semua karakter kontrol dilepaskan dari judul yang dilaporkan, sehingga shell membacalfoobar
(dengan asumsi␛]
tidak terikat pada perintah pengeditan) dan tidak ada baris baru. Jadi penyerang tidak dapat benar-benar mengeksekusi perintah seperti itu, tetapi dapat memasukkan perintah sepertichmod u+s /bin/sh
diikuti oleh banyak ruang dan prompt yang sepertinya terlihat.Layar mengimplementasikan beberapa rangkaian kontrol berisiko serupa lainnya, saya tidak tahu apa potensi mereka untuk kerentanan. Tapi semoga saat ini Anda dapat melihat bahwa perlindungan yang ditawarkan oleh sandi sesi layar tidak terlalu bagus. Alat keamanan khusus seperti sudo jauh lebih kecil kemungkinannya untuk memiliki kerentanan.
sumber
Pipa yang dibuat oleh layar hanya dapat diakses oleh pemilik, oleh karena itu ini seharusnya tidak menjadi masalah keamanan.
sumber