审计日志格式
auditd 的日志不是一行一条事件的普通文本:一次操作常被拆成多条记录,用同一个事件号 msg=audit(时间戳:事件号) 关联起来。看懂这个结构,才能正确聚合、判断记录是否缺项,也才能按类型字段筛出需要的行为。
基本信息
| 文件位置 | /var/log/audit/audit.log,未正确配置时可能落到 syslog |
|---|---|
| 事件标识 | msg=audit(秒.毫秒:事件号) |
| 常见字段 | auid、ses、comm、exe、pid、key |
| 常见类型 | SYSCALL、EXECVE、PATH、CWD、USER_LOGIN、AVC |
| 结束标记 | EOE 记录表示该事件结束 |
| 关联方式 | 按事件号聚合同一动作的多条记录 |
典型使用场景
- 解析命令执行类事件及其参数
- 还原文件访问与路径信息
- 排查安全模块的拒绝记录
- 核对审计规则是否按预期生效
- 与其它日志按事件号交叉印证
最小示例
最小示例
head -2 /var/log/audit/audit.log # 先看记录结构
grep 'audit(1697012345' /var/log/audit/audit.log | head # 按时间戳前缀聚合一次事件
ausearch -i -m EXECVE -ts recent | head -20 # -i 转为可读输出
ausearch -i -k file_access -ts today | head -20 # 按规则中的 key 检索
grep -c 'type=EOE' /var/log/audit/audit.log # 统计事件结束标记数量
ausearch -m AVC -ts today 2>/dev/null | head -10 # 查看拒绝记录字段与类型
| 字段或类型 | 含义 | 注意 |
|---|---|---|
| msg=audit(...) | 时间戳与事件号的组合标识 | 同一事件号的多条记录需聚合 |
| type | 记录类型 | EXECVE 含参数,PATH 含路径 |
| auid | 登录会话标识 | 切换身份后保持不变 |
| comm 与 exe | 命令名与可执行文件路径 | 用于判断程序来源 |
| key | 审计规则中的标记 | 按规则检索最方便 |
| EOE | 事件结束标记 | 可作为解析时的分界 |
一次操作会产生多条记录,逐行阅读会以为内容重复;正确做法是先按事件号聚合,再拼出完整动作。
未配置审计规则时不会产生命令级记录,先确认规则集与运行状态,再判断数据是否够用。
审计服务未运行或配置为写入 syslog 时,日志位置与格式都会变化,采集前先确认实际的输出目标。
删除或截断审计日志属于不可逆的取证数据丢失;任何清理动作都要先取得授权并留下记录。