ファイルアクセスモニター

ファイルアクセスモニター

非ルート マルウェアがユーザーのパスワードを解読しようとする場合、どのパスワード ファイルまたはメモリ部分にアクセスする必要がありますか? マルウェアがパスワード ファイルにアクセスしたかどうかを監視して確認するにはどうすればよいでしょうか?

答え1

ほとんどのディストリビューションは、ユーザーのログイン パスワードを に保存します。/etc/shadowこのファイルは が所有しroot0600の権限が設定されています。つまり、 だけが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

たとえば、これはボブの 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。これはログで確認できます。また、ランダムな IP が ssh 経由で私の root パスワードを推測しようとしていることもわかります。

ファイル アクセスを監視するために 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 フレームワークと関連するコマンドライン ツールを使用して、別のプロセスによるファイル アクセスを監視できます。

参考までにmanページはこちら

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

関連情報