私は現在これにこだわっており、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
パスワードハッシュが保存される場所であり、セキュリティ上の理由からルートのみ読み取れるように設定されています。su
setuid ビットがセットされ、実行する人は root として効果的に実行されますが、実行すると機能しないため、最終的にはstrace
ユーザーアカウントで実行されます。
「どれくらいダメージを与えることができるのか」という言葉がどういう意味なのかよく分からない。ご覧のとおり、内部su
では動作しないため、strace
動作しないようにします。 「誰かがこれを使って自分のパスワードを盗むことができる」という意味であれば、彼らはシェルにエイリアスを設定できるはずです。ログインファイルを誰でも書き込むように設定したり、それに類似したものに設定しない限り、エイリアスを設定しないでください。方法。エイリアスを設定する権限がある場合は、su
パスワードを直接記録するパッチバージョンのエイリアスを使用できます。strace