web-dev-qa-db-ja.com

独立したスクリーンセッションでルートシェルを実行したままにしても安全ですか?

切り離された画面セッション内でルートシェルを実行したままにしておくことのセキュリティについて知りたいです。私は通常これを行うことはありません。

Root以外のユーザーアカウントが危険にさらされる可能性(パスワードが公開され、sshキーが危険にさらされるなど)の他に、パスワードで保護された切り離された画面セッションへの別の侵入経路があり、心配する必要があります。セッションは不活性と見なされますか?

20
Michael

「root以外のユーザーアカウントが侵害される可能性は別として」はかなり大きい可能性があるため、これはセキュリティの問題だと思います。

しかし、それ以外にもリスクが高まっています。たとえば、画面ソケットディレクトリのアクセス許可を変更できる理論上のエクスプロイトに自分自身を開放しました(私のシステムでは/var/run/screenですが、/tmpが使用されることもあります)。そのエクスプロイトには、ルートを取得するためのパスが含まれています。

Sudoには、Sudo su -を実行するのではなく、コマンドごとに使用するようにトレーニングできる場合、他の利点があります。アクションをログに記録します(これは、リモートでログを記録しない限り、意味のあるセキュリティの向上にはなりませんが、you'veが行ったことの証跡を提供します)。また、完全に特権のあるセッションに切り替えるのではなく、コマンドごとに意図的なエスカレーションを要求することで、事故を防ぐのに役立ちます。

5
mattdm

スクリーンセッションにルートシェルがあり(デタッチされているかどうか、パスワードで保護されているかどうか)、screen実行可能ファイルがsetxidでない場合、特権を取得した攻撃者はそのシェルでコマンドを実行できます。他に何もない場合、彼らは ptracing スクリーンプロセスによってそれを行うことができます。

Screenがsetuidまたはsetgidであり、セッションがデタッチされてパスワードで保護されている場合、原則として、そのシェルでコマンドを実行するにはscreenパスワードが必要です。この原則が当てはまる場合、あなたのアカウントを侵害しただけの誰かがトロイの木馬を配置し、あなたがパスワードを入力するのを待つ必要があります。ただし、攻撃対象領域(つまり、バグや設定ミスが原因で問題が発生する可能性のある場所の数)が非常に大きくなります。基本的なシステムセキュリティ機能に加えて、あなたは信頼しています:

  • パスワードチェックを正しく行うための画面。
  • 他の方法でセッションにアクセスできないようにする画面。
  • oSアクセス制御メカニズムを適切に使用するための画面(パイプのアクセス許可など)。
  • カーネルがptraceセキュリティー検査を正しく実行するようにします(これは脆弱性の頻繁な原因です)。
  • 実行中のシェルは何も愚かではありません。
  • あなたを噛まないようにする他のいくつかの機能。

「あなたを噛まないようにする他のいくつかの機能」:ええ、それは曖昧です。しかし、それは常にセキュリティの問題です。これを単なる希望的観測として却下したくなるかもしれませんが、本当にすべてを考えましたか?例えば…

端末デバイスに書き込むことができる限り、そのシェルの入力にデータを挿入できます。私のマシンの画面のデフォルト設定の下で:

printf '\ekfoo\017bar\e\\' >/dev/pts/33
printf '\e[21t' >/dev/pts/33

これにより、シェルの入力ストリームに␛]lfoobar␛lが挿入されます。 \ekは、アプリケーション(または端末デバイスに書き込むことができるもの)がウィンドウのタイトルを設定できるようにする制御シーケンスです(画面マニュアルの 「ウィンドウの命名」セクションを参照 )。 \e[21tは、端末にアプリケーションの標準入力でそのタイトルを報告させます(画面にはこのシーケンスは記録されていませんが、実装されています。 xterm制御シーケンスリストのCSI Ps ; Ps ; Ps ; tの下にあります)。 。実際、少なくとも画面4.0.3では、報告されたタイトルからすべての制御文字が削除されるため、シェルはlfoobarを読み取ります(␛]が編集コマンドにバインドされていないと仮定)そのため、攻撃者は実際にコマンドをそのように実行することはできませんが、chmod u+s /bin/shのようなコマンドに続けて多くのスペースと見かけ上プロンプトを詰め込むことができます。

Screenは、他のいくつかの同様の危険な制御シーケンスを実装していますが、脆弱性に対するそれらの可能性が何であるかはわかりません。しかし、うまくいけば、スクリーンセッションパスワードによって提供される保護がそれほど優れていないことがわかります。 Sudoなどの専用のセキュリティツールは、脆弱性が発生する可能性がはるかに低くなります。

Screenによって作成されたパイプには所有者のみがアクセスできるため、これはセキュリティの問題ではありません。

1
Šimon Tóth