マルウェアがユーザーのアカウントへのアクセス権を獲得すると、次のことが可能になります。
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(ただし、パスワードはキャプチャされます)。