EC2 Linux インスタンスにおいて、ユーザーアクティビティ、ファイルの変更、ディレクトリの変更を追跡する、Linux 監査ルールの設定方法を教えてください。

最終更新日: 2020 年 5 月 29 日

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスにおいて、ユーザーアクティビティ、ファイルもしくはディレクトリの変更など、アクティビティを追跡したいと考えています。これを行うために Linux の監査システムを設定する方法を教えてください。

簡単な説明

Auditd は、Linux Audit システムのユーザースペースに置かれるコンポーネントです。Auditd は不審なアクティビティの追跡を容易にし、追加のセキュリティ対策を講じるべき領域を特定しようとするユーザーを助けます。

Auditd は次の目的で使用されます。

  • ファイルやディレクトリにアクセスしている、またはそれを変更している、ユーザーもしくはアプリケーションを追跡します。
  • 特定のコマンドを実行しているユーザーを追跡します。

解決方法

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.    監査ルールを作成します。

監査ルールは /etc/audit/audit.rules ファイルで定義され、カスタム監査ルールは /etc/audit/rules.d/custom.conf ファイルで定義されます。各ファイルで定義された監査ルールは永続的です。また、ルールを実行時に実装することもできます。

auditctl コマンドを実行して、監査ルールを作成します。

ルール例

特定のファイルやディレクトリをアクセスしている、もしくはそれを変更しているユーザーあるいはアプリケーションを追跡します。

# sudo auditctl -a always,exit -F arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F auid>=500 -F auid!=-1 -F dir=/root/test/ -F key=delete

特定のコマンドを実行しているユーザーを追跡します。次のコマンド例は sudoです。

# sudo auditctl -w /bin/sudo -p rwxa -k sudo

前述の例で使用されている構文のリストを次に示します。

-a – 新しいルールを追加します。
-w – ファイルシステムオブジェクトに対する watch を、特定のパス (例 : /etc/shadow) に挿入します。
-p – ファイルシステムのアクセス許可フィルタを設定します。
-k – 監査ルールにフィルタキーを設定します。フィルタキーにより、ルールによって生成された監査レコードが一意に識別されます。
-F – このフィールドは、アーキテクチャ、PID、GID、auid などの追加オプション指定のために使用します。
-S – これはシステムコールで、名前または番号を記述します。

構文およびスイッチの詳細なリストについては、Linux のマニュアルページの「auditctl(8)」、および「audit.rules(7)」をご参照ください。

: 再起動後もルールが維持されるようにするには、audit.rules のファイルを編集し次のルールを追加します。

RHEL 6、CentOS 6、または Amazon Linux 1 の場合:

# sudo vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F auid>=500 -F auid!=-1 -F dir=/root/test/ -F key=delete
-w /bin/sudo -p rwxa -k sudo

RHEL 7、CentOS 7、または Amazon Linux 2 の場合:

# sudo vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b64 -S rename,rmdir,unlink,unlinkat,renameat -F auid>=500 -F auid!=-1 -F dir=/root/test/ -F key=delete
-w /bin/sudo -p rwxa -k sudo

4.    変更を加えた後は、auditd サービスを再起動します。auditd サービスは、起動時に実行するように設定されている必要があります。

# sudo chkconfig auditd on
# sudo service auditd start
# sudo service auditd stop
# sudo service auditd restart

注: CentOS および RHEL 7 で auditd サービスを再起動する場合には、systemctl コマンドの代わりに service コマンドを使用することをお勧めします。systemctl コマンドを使用すると、エラーが発生する場合があります。

5.    ausearch コマンドを実行して、監査ログを読み取ります。

監査ログ例

次の例では、ユーザー ec2-user (uid = ec2-user) が /root/test/example.txtファイルを削除しています。

# sudo ausearch -i -k delete
type=PROCTITLE msg=audit(04/04/20 19:41:51.231:3303) : proctitle=rm -rf /root/test/example.txt
type=PATH msg=audit(04/04/20 19:41:51.231:3303) : item=1 name=/root/test/example.txt inode=16777349 dev=ca:01 mode=file,777 ouid=root ogid=root
rdev=00:00 nametype=DELETE cap_fp=none cap_fi=none cap_fe=0 cap_fver=0
type=PATH msg=audit(04/04/20 19:41:51.231:3303) : item=0 name=/tmp/test/ inode=16777328 dev=ca:01 mode=dir,777 ouid=root ogid=root rdev=00:00 nametype=PARENT cap_fp=none cap_fi=none
cap_fe=0 cap_fver=0
type=CWD msg=audit(04/04/20 19:41:51.231:3303) : cwd=/home/ec2-user
type=SYSCALL msg=audit(04/04/20 19:41:51.231:3303) : arch=x86_64 syscall=unlinkat success=yes exit=0 a0=0xffffff9c a1=0xc5f290 a2=0x0 a3=0x165 items=2 ppid=3645
pid=933 auid=ec2-user uid=ec2-user gid=ec2-user euid=ec2-user suid=ec2-user fsuid=ec2-user egid=ec2-user sgid=ec2-user fsgid=ec2-user tty=pts0 ses=1 comm=rm exe=/usr/bin/rm key=delete

次の例では、ユーザー ec2-user (uid= 1000)が、sudo 権限で sudo su - コマンドを 実行しています。

# sudo ausearch -k sudo

time->Mon Apr  6 18:33:26 2020
type=PROCTITLE msg=audit(1586198006.631:2673): proctitle=7375646F007375002D type=PATH msg=audit(1586198006.631:2673): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=5605 dev=103:05 mode=0100755 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1586198006.631:2673):
 item=0 name="/usr/bin/sudo" inode=12800710 dev=103:05 mode=0104111 ouid=0 ogid=0 rdev=00:00 objtype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1586198006.631:2673):  cwd="/home/ec2-user"
type=EXECVE msg=audit(1586198006.631:2673): argc=3 a0="sudo" a1="su" a2="-"
type=SYSCALL msg=audit(1586198006.631:2673): arch=c000003e syscall=59 success=yes exit=0 a0=e8cce0 a1=e8c7b0 a2=e61720 a3=7ffde58ec0a0 items=2 ppid=2658 pid=3726 auid=1000 uid=1000 gid=1000 euid=0 suid=0 fsuid=0 egid=1000 sgid=1000 fsgid=1000
tty=pts0 ses=4 comm="sudo" exe="/usr/bin/sudo" key="script"

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


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