如何监控对 EC2 Linux 实例上的文件系统做的与安全相关的更改?

上次更新日期:2020 年 11 月 25 日

我想要启用 Linux 审计系统来监控对 Amazon Elastic Compute Cloud (Amazon EC2) 实例上的文件系统所做的更改。我该如何操作?

简短描述

Linux 审计系统会跟踪对重要文件的访问,并在文件损坏或发生其他意外更改的情况下创建审计跟踪。您可以使用 Linux 审计系统跟踪 Amazon Elastic File System (Amazon EFS) 中的文件或任何其他文件系统类型的更改。请注意,将审计系统配置为记录很多类型的信息可能会影响本地系统的性能。在系统上安装 Linux 审计系统后,您可以创建规则来监控文件系统上的活动。

重要提示:要跟踪文件系统的所有更改,请在装载文件系统的每个客户端上启用 Linux 审计系统。

解决方法

1.    将 SSH 用作 ec2-user/ubuntu/root user 来连接您的 EC2 实例。将 ubuntu 替换为您的 AMI 的用户名

2.    运行以下命令以安装审计程序包:

RHEL 和 CentOS:

# sudo yum install audit

SUSE Linux:

# sudo zypper install audit

Ubuntu:

# sudo apt install auditd

3.    为 Linux 审计系统创建规则。最初在测试规则的过程中,请使用 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 文件中定义持久性审计规则和控件


这篇文章对您有帮助吗?


您是否需要账单或技术支持?