suとsshを追跡すると、パスワードが表示されます。これはセキュリティ上の欠陥ですか、それとも何か抜けましたか?

suとsshを追跡すると、パスワードが表示されます。これはセキュリティ上の欠陥ですか、それとも何か抜けましたか?

私は現在これにこだわっており、strace初心者として試してみることにしました。質問のタイトルからわかるように、私は試してみてstrace suくださいstrace ssh。どちらのコマンドも、strace出力に入力したパスワードを表示します。su引き続きパスワードが間違っているというのにssh正常にログインになります。
私の質問:

  • これはセキュリティ上の欠陥ですか、それとも何か抜けましたか?
  • 間違ったパスワードを報告することは、suパスワードが実行されていることを検出するためのセキュリティ対策ですかstrace?それでは、どのようにして呼び出されたのか、どうすればわかりますかstrace?確認してみましょう/proc/self/cmdlineか?
  • そんなことがどれくらいダメージを与えることができますか?
    alias su="strace -o /tmp/output.log su"

ベストアンサー1

これはセキュリティ上の欠陥ではありません。あなたのプロセスなので、プロセスを追跡できます。strace実行中のプロセスにしか接続できません。たとえば、

$ sudo sleep 30 &
[1] 3660

$ strace -p 3660
attach: ptrace(PTRACE_ATTACH, ...): Operation not permitted

su読み取り権限が不足しているため、無効なパスワードが報告されました/etc/shadow/etc/shadowパスワードハッシュが保存される場所であり、セキュリティ上の理由からルートのみ読み取れるように設定されています。susetuid ビットがセットされ、実行する人は root として効果的に実行されますが、実行すると機能しないため、最終的にはstraceユーザーアカウントで実行されます。

「どれくらいダメージを与えることができるのか」という言葉がどういう意味なのかよく分からない。ご覧のとおり、内部suでは動作しないため、strace動作しないようにします。 「誰かがこれを使って自分のパスワードを盗むことができる」という意味であれば、彼らはシェルにエイリアスを設定できるはずです。ログインファイルを誰でも書き込むように設定したり、それに類似したものに設定しない限り、エイリアスを設定しないでください。方法。エイリアスを設定する権限がある場合は、suパスワードを直接記録するパッチバージョンのエイリアスを使用できます。strace

おすすめ記事