什么是审计
–基于事先配置的规则生成日志,记录可能发生在系统上的事件
–审计不会为系统提供额外的安全保护,但她会发现并巨鹿违反安全策略的人及其对应的行为
–审计能够记录的日志内容
–日期与事件、事件结果
–触发事件的用户
–所有认证机制的使用都可以被记录,如ssh等
–对关键数据文件的修改行为等
审计的案例
监控文件访问
监控系统调用
记录用户运行的命令
审计可以监控网络访问行为
ausearch工具,可以根据条件过滤审计日志
aureport工具,可以生成审计报告
audit
部署audit
使用审计系统需要安装audit软件包
主配置文件为/etc/audit/auditd.conf
]#yum -y install audit
]#cat /etc/audit/auditd.conf log_file = /var/log/audit/auditd.conf ##日志文件
]#systemctl start aditd ]#systemctl enable auditd
配置审计
auditctl命令
auditctl命令控制审计系统并设置规则决定那些行为会被记录日志
]# auditctl -s ##查询状态
]# auditctl -l ##查看规则
]# auditctl -D ##删除所有规则
定义临时规则
定义文件系统规则:
—auditctl -w path -p permission -k key_name
–path为需要审计的文件或目录
–权限可以是r,w,x,a(文件或目录的属性发生变化)
–_Key_name为可选项,方便识别那些规则生成特定的日志项
]# auditctl -w /etc/passwd -p wa -k passwd_change ##设置规则所有对passwd文件的写、属性修改操作都会被记录审计日志
]# auditctl -l -w /etc/passwd -p wa -k passwd_change
]# auditctl -w /etc/selinux/ -p wa -k selinux_change ##设置规则,监控/etc/selinux目录
]# auditctl -w /usr/sbin/fdisk -p x -k disk_partition ##设置规则,监控fdisk程序
]# auditctl -l
-w /etc/passwd -p wa -k passwd_change
-w /etc/selinux -p wa -k selinux_change –
w /usr/sbin/fdisk -p x -k disk_partition
定义永久规则
写如配置文件/etc/audit/rules.d/audit.rules
]# vim /etc/audit/rules.d/audit.rules
-w /etc/passwd -p wa -k passwd_change
-w /etc/selinux -p wa -k selinux_change
-w /usr/sbin/fdisk -p x -k disk_partition
系统提供的ausearch命令可以方便的搜索特定日志
–默认该程序会搜索/var/log/andit/audit.log
–ausearch options -if file_name可以制定文件
查看日志
定义规则
]# auditctl -w /etc/ssh/sshd_config -p warx -k sshd_config
查看日志
- ~]# tailf /var/log/audit/audit.log
- type=SYSCALL msg=audit(1517557590.644:229228): arch=c000003e
- syscall=2 success=yes exit=3
- a0=7fff71721839 a1=0 a2=1fffffffffff0000 a3=7fff717204c0
- items=1 ppid=7654 pid=7808 auid=0 uid=0 gid=0 euid=0 suid=0
- fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=3 comm=”cat”
- exe=”/usr/bin/cat”
- subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=”sshd_config”
- .. ..
- #内容分析
- # type为类型
- # msg为(time_stamp:ID),时间是date +%s(1970-1-1至今的秒数)
- # arch=c000003e,代表x86_64(16进制)
- # success=yes/no,事件是否成功
- # a0-a3是程序调用时前4个参数,16进制编码了
- # ppid父进程ID,如bash,pid进程ID,如cat命令
- # auid是审核用户的id,su – test, 依然可以追踪su前的账户
- # uid,gid用户与组
- # tty:从哪个终端执行的命令
- # comm=”cat” 用户在命令行执行的指令
- # exe=”/bin/cat” 实际程序的路径
- # key=”sshd_config” 管理员定义的策略关键字key
- # type=CWD 用来记录当前工作目录
- # cwd=”/home/username”
- # type=PATH
- # ouid(owner’s user id) 对象所有者id
- # guid(owner’s groupid) 对象所有者id
搜索日志
系统提供的ausearch命令可以方便的搜索特定日志
–默认该程序会搜索/var/log/andit/audit.log
–ausearch options -if file_name可以制定文件名
]# ausearch -k disk
type=EXECVE msg=audit(1564451144.821:10): argc=2
a0=”fdisk” a1=”/dev/vda”
type=SYSCALL msg=audit(1564451144.821:10): arch=c000003e syscall=59 success=yes exit=0 a0=1520ce0 a1=14b3e30 a2=152d5d0 a3=7ffe16234ae0 items=2 ppid=850 pid=1121 auid=0
uid=0
gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1
comm=”fdisk” exe=”/usr/sbin/fdisk” key=”disk_partition”
]#ausearch -k passwd_change
type=CWD msg=audit(1564451750.676:15): cwd=”/root”
type=SYSCALL msg=audit(1564451750.676:15): arch=c000003e syscall=82
success=yes
exit=0 a0=7ffe5e042790 a1=564995031ce0 a2=7ffe5e042700 a3=564996be09a0 items=5 ppid=850 pid=1144 auid=0
uid=0
gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1
comm=”useradd”
exe=”/usr/sbin/useradd” key=”passwd_change”
]# aureport ##查看统计信息
Summary Report
======================
Range of time in logs: 2019年07月30日 09:21:45.716 – 2019年07月30日 09:55:50.676
Selected time for report: 2019年07月30日 09:21:45 – 2019年07月30日 09:55:50.676
Number of changes in configuration: 6
Number of changes to accounts, groups, or roles: 3
系统提供的ausearch命令可以方便的搜索特定日志
–默认该程序会搜索/var/log/andit/audit.log
–ausearch options -if file_name可以制定文件
Number of logins: 0 Number of failed logins: 0
Number of authentications: 0
Number of failed authentications: 0
Number of users: 2 Number of terminals: 3
Number of host names: 2
Number of executables: 3
Number of commands: 3
Number of files: 5
Number of AVC’s: 0
Number of MAC events: 0
Number of failed syscalls: 0
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 0
Number of integrity events: 0
Number of virt events: 0
Number of keys: 3
Number of process IDs: 4
Number of events: 14