マルウェアがユーザーのアカウントへのアクセス権を獲得すると、次のことが可能になります。
1.プロンプト~/.bashrc
を偽装し[sudo] password for $USER:
、ユーザーのパスワードを盗むコマンドにbashエイリアスを(現在のシェルとで)作成します。
alias sudo='echo -n "[sudo] password for $USER: " && \
read -r password && \
echo "$password" >/tmp/sudo-password'
2.同様に、それはという名前の実行置くことができますsudo
での~/.bin
、および変更PATH
同じ効果を達成するために、変数を:PATH="$HOME/.bin:$PATH"
3. Xサーバーを介してキープレスをキャッチし、単語を監視しsudo
、次の2つのEnterキープレスの間にあるテキストをパスワードとして試します。
4.同様のことは、たとえばを使用して、任意の環境(コンソール、Wayland、X)で実行できます$LD_PRELOAD
。
5.マルウェアがを使用するシェルに感染し、資格情報sudo
をsudo
キャッシュする場合、マルウェアはsudo
パスワードなしで実行できるかどうかを継続的にチェックできます。
while : ; do
echo | sudo -S echo "test" &>/dev/null && break
sleep 10
done
sudo echo "We now have root access"
防止:
1&2.を使用し\/bin/sudo
ます。\
エイリアス、および無視/bin/…
無視します$PATH
。または、のようなエイリアスを追加し、ssudo="\/bin/sudo"
常にのssudo
代わりに使用しますsudo
。ウイルスがこのエイリアスを再マッピングするのに十分賢いとは思えない。
3. X11を使用するときは、パスワードを入力しないでください。代わりに、仮想コンソールまたはWestonを使用してください。
5.で設定timestamp_timeout=0
し/etc/sudoers
ます。
sudo
パスワードが盗聴される
可能性を完全に排除する唯一の方法は、パスワードを完全に回避することです。代わりに、仮想コンソールにrootとしてログインします。
Alexander Peslyak氏は次のように説明しています。
余談ですが、sudoにはいくつかの対策があります。
sudo
のtty
代わりにから読み取るstdin
ため、alias sudo='tee -a /tmp/sudo-password | sudo'
中断しますsudo
(ただし、パスワードはキャプチャされます)。