EC2 Linux インスタンスでファイルシステムに加えられたセキュリティ関連の変更を監視する方法を教えてください。

最終更新日: 2020 年 11 月 25 日

Linux Audit システムを有効にして、Amazon Elastic Compute Cloud (Amazon EC2) インスタンス上のファイルシステムへの変更を監視したいと考えています。これを行うにはどうすればよいですか?

簡単な説明

Linux Audit システムは、重要なファイルへのアクセスを追跡し、ファイルの破損やその他の意図しない変更が発生した場合に監査証跡を作成します。Linux Audit システムを使用して、Amazon Elastic File System (Amazon EFS) またはその他のファイルシステムタイプのファイルへの変更を追跡できます。多くの種類の情報をログに記録するように監査システムを設定すると、ローカルシステムのパフォーマンスに影響する可能性があることに注意してください。Linux Audit システムをお使いのシステムにインストールした後、ファイルシステム上のアクティビティを監視するルールを作成できます。

重要: ファイルシステムに対するすべての変更を追跡するには、ファイルシステムをマウントするすべてのクライアントで Linux Audit システムを有効にします。

解決方法

1.    ec2-user/ubuntu/root ユーザーとして、SSH を使って EC2 インスタンス に接続します。上記の ubuntu の部分は AMI の ユーザー名に置き換えます。

2.    次のコマンドを実行して、監査パッケージをインストールします。

RHEL および CentOS の場合:

# sudo yum install audit

SUSE Linux の場合:

# sudo zypper install audit

Ubuntu の場合:

# sudo apt install auditd

3.    Linux Audit システムのルールを作成します。最初にルールをテストするには、auditctl コマンドを使用して、すぐにルールを追加または削除します。

注: 次の例は、EFS ファイルシステムのルールを示しています。

次のコマンドを使用して、ファイルシステムがマウントされているすべてのアクティビティを監視します。

$ auditctl -w /home/ec2-user/efs -k efs_changes

次に、監査システムを設定してログを記録できるアクションの例を示します。

$ mkdir dir1
$ touch file1
$ touch file2
$ mv file1 file3
$ rm -f file2
$ chmod 600 file3
$ rmdir dir1
$ rm -f file3

4.    次に、ausearch -k efs_changes コマンドを使用して、監査ログを表示します。次の例は、前述の操作例で示した mkdir コマンドの監査ログを示しています。

time->Thu Jan  9 21:30:59 2020
type=PROCTITLE msg=audit(1578605459.080:127433): proctitle=6D6B6469720064697231
type=PATH msg=audit(1578605459.080:127433): item=1 name="dir1" inode=4989235361872937641 dev=00:16 mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1578605459.080:127433): item=0 name="/home/ec2-user/efs/audit" inode=12759736523397539955 dev=00:16
    mode=040755 ouid=0 ogid=0 rdev=00:00 nametype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1578605459.080:127433): cwd="/home/ec2-user/efs/audit"
type=SYSCALL msg=audit(1578605459.080:127433): arch=c000003e syscall=83 success=yes exit=0 a0=7fffe6aca6e1 a1=1ff a2=1ff a3=7fffe6ac7720 items=2 ppid=18661 pid=2948 auid=500 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=18369 comm="mkdir" exe="/bin/mkdir"     key="efs_changes"

前の例は、未加工の監査ログを示しています。監査ログには、各操作に関する大量の情報が含まれています。

aureport コマンドを使用して、監査ログにあまり詳細ではない出力を作成しますが、すべての操作を表示します。

$ ausearch -k efs_changes | aureport -f -i

10118. 01/09/2020 21:36:29 file1 open yes /bin/touch ec2-user 127450
10119. 01/09/2020 21:36:29 dir1 mkdir yes /bin/mkdir ec2-user 127449
10120. 01/09/2020 21:36:29 file2 open yes /bin/touch ec2-user 127451
10121. 01/09/2020 21:36:29 file3 rename yes /bin/mv ec2-user 127452
10122. 01/09/2020 21:36:29 file2 unlinkat yes /bin/rm ec2-user 127453
10123. 01/09/2020 21:36:29 file3 fchmodat yes /bin/chmod ec2-user 127454
10124. 01/09/2020 21:36:29 dir1 rmdir yes /bin/rmdir ec2-user 127455
10125. 01/09/2020 21:36:35 file3 unlinkat yes /bin/rm ec2-user 127456

すべての操作を記録する必要はないことに注意してください。例えば、削除関連のアクションのみをログに記録するルールを作成できます。

auditctl -a always,exit -F arch=b64 -F dir=/home/ec2-user/efs -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k efs_changes

ユーザーが元の操作例と同じコマンドを実行すると、次のように、指定した削除関連コマンドだけがログに表示されます。

10126. 01/09/2020 22:17:08 file3 rename yes /bin/mv ec2-user 127519
10127. 01/09/2020 22:17:08 file2 unlinkat yes /bin/rm ec2-user 127520
10128. 01/09/2020 22:17:08 dir1 rmdir yes /bin/rmdir ec2-user 127521
10129. 01/09/2020 22:17:09 file3 unlinkat yes /bin/rm ec2-user 127522

5.    ルールを保持するには、/etc/audit/audit.rules ファイル内でルールを設定します。詳細については、Red Hat カスタマーポータルの「/etc/audit/audit.rules ファイルで、永続監査ルールとコントロールを定義する」を参照してください。


この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?