web-dev-qa-db-ja.com

ユーザーのシェルを終了する安全な方法は何ですか?

たとえば、suまたはSudo -iを使用して、Unixで潜在的に侵害されたユーザーに変更し、exitで終了すると、侵害されたユーザーはexitをキーロガーを持っている偽のシェルに私を落とす何か。たとえば、次のようになります。

  1. su侵害されたユーザーへ
  2. exit安全なユーザーに戻りますが、実際には終了しません
  3. Sudoを使用してrootとして何かを実行しますが、私はまだ侵害されたシェルにいるため、侵害されたユーザーはキーロガーを設定できた可能性があります
  4. 侵害されたユーザーにはルートがあります。

侵害されたユーザーのシェルを安全に残すにはどうすればよいですか?

1
markasoftware

シェルからsuまたはSudoを使用して下位ユーザーにドロップしないでください。

あなたが提案するのは有効なリスクですが、TIOCSTI IOCTLを使用して、より少ないユーザーにドロップしてから終了する場合、TTYプッシュバック攻撃と呼ばれる別のはるかに大きなリスクがあります。これにより、子から呼び出し元のシェルに任意のデータを送信できます。

から http://www.halfdog.net/Security/2012/TtyPushbackPrivilegeEscalation/

Su -s/bin/bash [user]がインタラクティブシェルから呼び出されると、ターゲットユーザーとしてプッシュバックされた入力キューデータは、suを呼び出すインタラクティブシェルによって実行されます。

5
guest