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:
- layar untuk memeriksa kata sandi dengan benar.
- layar untuk mencegah akses ke sesi dengan cara lain.
- layar untuk menggunakan mekanisme kontrol akses OS dengan benar (misalnya izin pada pipa).
- kernel untuk melakukan pemeriksaan keamanan ptrace dengan benar (ini adalah sumber kerentanan yang sering terjadi).
- shell yang berjalan tidak melakukan hal bodoh.
- beberapa fitur lain untuk tidak menggigit Anda.
"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:
printf '\ekfoo\017bar\e\\' >/dev/pts/33
printf '\e[21t' >/dev/pts/33
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 menemukannya CSI 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 membaca lfoobar
(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.
sudo
.