EC2 Linux インスタンスにおいて、ユーザーアクティビティ、ファイルの変更、およびディレクトリの変更を追跡するための Linux 監査ルールを設定するにはどうすればよいですか?

所要時間3分
0

Amazon Elastic Compute Cloud (Amazon EC2) Linux インスタンスでのユーザーアクティビティ、ファイルの変更、ディレクトリの変更を追跡したいと考えています。

簡単な説明

監査デーモン (auditd) は Linux Audit システムのユーザースペースコンポーネントです。auditd を使用して、ファイルやディレクトリにアクセスしたり変更したりするユーザーまたはアプリケーションを追跡します。auditd を使用して、どのユーザーが特定のコマンドを実行したかを識別することもできます。

解決策

auditd を使用してアクティビティを追跡するには、次の手順を実行します。

  1. ec2-user/ubuntu/root ユーザーとして、SSH を使用して EC2 インスタンスに接続しますubuntuAmazon マシンイメージ (AMI) のユーザー名に置き換えてください。

  2. 監査パッケージをインストールします。

    RHEL と CentOS

    # sudo yum install audit

    SUSE Linux

    # sudo zypper install audit

    Ubuntu

    # sudo apt install auditd
  3. auditctl コマンドを実行して監査ルールを作成します。監査ルール定義は /etc/audit/audit.rules ファイルにあります。カスタム監査ルール定義は /etc/audit/rules.d/custom.conf ファイルにあります。これらの定義は永続的です。実行時にルールを実装することもできます。

    ルール例

    特定のファイルまたはディレクトリにアクセスまたは変更するユーザーまたはアプリケーションを追跡します。

    # 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 - ファイルシステムオブジェクトのウォッチを特定のパス (たとえば /etc/shadow) に挿入します。
    -p- ファイルシステムの権限フィルタを設定します。
    -k - 監査ルールにフィルタキーを設定します。フィルターキーは、ルールが生成する監査レコードを一意に識別します。
    -F - このフィールドを使用して、アーキテクチャ、PID、GID、auid などの追加オプションを指定します。
    -S - このフィールドはシステムコールに使用します。名前または番号です。

    構文とスイッチの完全なリストについては、die.net Linux マニュアルページの auditctl(8)audit.rules(7) を参照してください。

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

    RHEL 6、CentOS 6、または Amazon Linux 1:

    #sudo vi /etc/audit/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、または Amazon Linux 2023:

    # 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 と Red Hat Enterprise Linux (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"
AWS公式
AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ