文章目录
- 一、audit简介
- 二、启auditd服务
- 三、相关文件
- 四、审计规则
- 五、审计日志查询及分析
参考文章:
1、【安全】linux audit审计使用入门
2、audit详细使用配置
写在前面:
1.写博客,做日常工作记录,好记性不如烂笔头嘛;
2.内容非原创,参考的文章已上文列出;
3.如有错误,欢迎指正。
一、audit简介
audit是Linux内核提供的一种审计机制,由于audit是内核提供的,因此,在使用audit的过程中就包含内核空间和用户空间部分:
auditctl
:用户态程序,用于审计规则配置和配置变更
kaudit:内核空间程序,根据配置好的审计规则记录发生的事件
auditd:用户态程序,通过netlink获取审计日志
通常的使用流程
用户通过auditctl配置审计规则
内核的kauditd程序获取到审计规则后,记录对应的审计日志
用户态的auditd获取审计日志并写入日志文件
二、启auditd服务
systemctl status auditd.service
systemctl start auditd.service
三、相关文件
# 1.应用配置文件
/etc/audit/auditd.conf
# 2.添加规则的文件
/etc/audit/rules.d/audit.rules
# 3.日志所在目录
/var/log/audit/
四、审计规则
- 控制规则:用于更改审计系统本身的配置和设置。
auditctl -b 8192 # 配置buffer大小为8M
auditctl -e 0
auditctl -f 2
auditctl -s
- 文件系统规则:审核对特定文件或目录的任何类型的访问(比较常见)
# 项太多了,举例一个,监控针对/etc/passwd文件的读、写、执行和属性改变,关键字为change_passwd
auditctl -w /etc/passwd -p rwxa -k change_passwd
# 如果要查询,
ausearch -i -k change_passwd
详见 auditctl -h
- 系统调用规则:用于监视由任何进程或特定用户进行的系统调用
# -S 设置要监控的系统调用名或者系统调用号,下述命令仅作举例
auditctl -S openat
同样:详见 auditctl -h
哈哈:下面截了一个 auditctl -h
,仅供参考
五、审计日志查询及分析
# 仅列举比较常用的方式,-k后面跟创建审计规则时设置的关键字
ausearch -i -k ***
审计日志类似:(各个系统可不同)
审计日志-字段分析
- type:audit消息类型,消息类型有100多种
- msg:消息的ID, 它有两个部分组成, 分号之前的是Unix的时间戳,分号之后的是真正的event ID(同一个应用程序的相同system call拥有相同的event ID, 同一个应用的不同system call则不同。)
- arch: 调用system call的CPU构架
- syscall:system call的类型(可以查看https://github.com/torvalds/linux/blob/master/arch/sh/include/asm/unistd.h)
- success:system call是成功或者失败
- comm: 出现在任务列表中,应用程序的名称。
- exe: 二进制程序的解析路径。
- ses: 用户登录的session ID.
- auid: audit ID, 针对某一用户,一个进程会被分配一个audit ID, 该audit ID会被传递给子进程,尽管在系统中用户切换,该audit ID将始终保持一致。 这样我们可以针对对某一用户进行trace。
- a0 to a3: 系统调用的前四个参数的数字化,可以通过ausearch解码查看
- items: 传递到应用程序的字符串数量
- ppid:父进程的PID
- pid:该进程的PID
- uid: user ID。
- gid: group ID。
- euid, suid, fsuid: Effective user ID, set user ID, and file system user ID.
- egid, sgid, fsgid: Effective group ID, set group ID, and file system group ID.
- tty: 应用程序开启的终端,这种情况下pseudo-terminal used in an SSH session.
(非重点关注内容,我置灰了,并且改小了)