ファイルアクセスモニタ

ファイルアクセスモニタ

ルート以外のマルウェアがユーザーのパスワードを復号化しようとした場合、どのパスワードファイルまたはメモリの一部にアクセスする必要がありますか?マルウェアがパスワードファイルにアクセスしているかどうかを監視して確認する方法は?

答え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

ここ一部の文書は独自のルールを作成するのに役立ちます。

答え2

ルート以外のソフトウェアがユーザーを変更しようとする場合は、lastb次のコマンドを使用して確認できます。

$ sudo lastb -a | more
user     pts/2        Mon Aug 10 08:17 - 08:17  (00:00)
root     ssh:notty    Mon Aug 10 08:17 - 08:17  (00:00)     46.148.201.206
root     ssh:notty    Mon Aug 10 08:17 - 08:17  (00:00)     161.35.32.43
root     ssh:notty    Mon Aug 10 08:16 - 08:16  (00:00)     13.68.137.194
root     ssh:notty    Mon Aug 10 08:16 - 08:16  (00:00)     115.196.179.138

userこの場合、失敗したパスワードを使用してログインしましたsu。これはログで確認できます。また、SSHを介して常に私のルートパスワードを推測しようとする任意のIPを見ることができます。

ファイルアクセスを監視するためにinotifyまたはsystemdパスを設定したい場合は、監視するファイルを/var/log/btmplastb

ログインが成功したかどうかを確認するには、last次のモニターを使用してください/var/log/wtmp

$ last -a
usera    pts/5        Fri Jul 31 03:00 - 03:17  (00:16)     54.36.10.77
usera    pts/5        Thu Jul 30 21:36 - 21:37  (00:01)     54.36.10.77
usera    pts/5        Wed Jul 29 08:54 - 08:54  (00:00)     127.0.0.1
userb    tty7         Tue Jul 21 11:29   still logged in    :0
userb    tty7         Tue Jul 21 10:59 - 11:29  (00:30)     :0
userb    tty7         Tue Jul 21 07:27 - 10:58  (03:31)     :0
reboot   system boot  Tue Jul 21 09:27   still running      5.7.0-1-amd64
...

答え3

Linuxでは、inotifyフレームワークと関連するコマンドラインツールを使用して、他のプロセスの特定のファイルアクセスを監視できます。

参照できるマニュアルページは次のとおりです。

より複雑な動作が必要な場合、このフレームワークにはほとんどのスクリプト言語(Python、Luaなど...)へのバインディングがあります。

関連情報