ルート以外のマルウェアがユーザーのパスワードを復号化しようとした場合、どのパスワードファイルまたはメモリの一部にアクセスする必要がありますか?マルウェアがパスワードファイルにアクセスしているかどうかを監視して確認する方法は?
ベストアンサー1
/etc/shadow
ほとんどのディストリビューションは、所有者が所有し、権限が設定されているroot
ファイルにユーザーログインパスワードを保存します0600
。つまり、root
ファイルは読み書きできるだけです。
つまり、一部のディストリビューションでは、ユーザー/プログラムが使用する「キーリング」を提供します。キーリングは、本質的に秘密の保存データベースまたはファイルです。たとえば、KDEはKWalletを提供し、ChromiumなどのプログラムはKWalletを使用してパスワードなどを保存します。
これらのキーリングは通常ユーザーごとに管理され、0600権限で保存されるため、キーリングを所有しているユーザーのみが実際に読み取ることができます。したがって、ルート以外のマルウェアが心配な場合は、そのマルウェアがユーザーとして実行されない限り、その点ではかなり安全です。
残念ながら、各ディストリビューションは独自の秘密管理ソリューションを使用しているため、監視するファイルの完全なリストを提供することはできません(たとえば、GNOME3はKWalletの代わりにSeahorseを使用します)。しかし、私は通常、次の変化を監視します。
~/.ssh/authorized keys # List of keys accepted during SSH logins
~/.profile # File sourced by your login shell
~/.bash_profile # File sourced by your login shell
~/.bashrc # File sourced by your login shell
監視に関して設定する最も簡単な方法はauditctl
。
たとえば、これはbobのKWalletデータベースファイルへのすべてのアクセスを監視します。 (一時ルール、追加されない限り再起動時にクリア/etc/audit/audit.rules
)
sudo auditctl -w /home/bob/.local/share/kwalletd/kdewallet.kwl -p rwxa
レビューアクセスの場合:
sudo less /var/log/audit/audit.log
ここ一部の文書は独自のルールを作成するのに役立ちます。