key 就是检索标签
每条 audit 规则尾部的 -k 参数是一个自定义标签,它不参与匹配,只负责给记录打标记。ausearch -k 标签 就能把某类事件一把捞出来,配合时间窗口把海量记录收窄到可用范围。输出里的参数默认是十六进制编码,加 -i 后会把路径、命令、参数解析成可读文本,两者组合才是排查时的标准姿势。
基本信息
| 适用平台 | Linux(auditd / ausearch) |
|---|---|
| 常用命令 | ausearch、aureport、ausearch -i |
| 时间参数 | --start today / --start this-week / -ts recent |
| 加固项 | 审计记录可检索 |
| 基线 | 规则 key 命名成体系、可复用 |
典型使用场景
- 按主题捞取:身份变更、权限修改、网络配置变更各用固定 key
- 应急时间窗检索:从一个已知时间点往前拉取相关记录
- 统计与报表:用 aureport 汇总登录、失败与特权使用趋势
- 合规取证:按 key 定位记录并导出留档
- 规则调优:先看 key 命中量,再决定是否细化为更细的条件
查询与统计
查询与统计
ausearch -k identity --start this-week | head -40 # 按标签捞取,输出为原始编码
ausearch -k user_mgmt -ts today -i | head -30 # -i 解析成可读文本
ausearch -k perm_mod --start today -i | grep -E 'name=|proctitle' | head
ausearch -k exec_tmp -ts recent -i | head -20 # 时间窗 + 标签,最常用组合
aureport --start this-week --summary | head -20 # 各类事件汇总计数输出逐列读法
| 字段 | 含义 | 正常与异常 |
|---|---|---|
| time-> | 事件发生时间 | 与业务窗口不符=需核实 |
| type= | 记录类型(SYSCALL/PATH 等) | 同一次操作多条记录属正常 |
| key= | 规则标签 | key=(null) 说明规则未带标签 |
| auid / uid | 会话用户 / 实际身份 | 两者不一致可能是 su 或提权 |
| proctitle | 被执行命令的完整参数 | 出现下载或编码类命令=重点核查 |
key 命名建议成套:identity(身份)、user_mgmt(账号管理)、perm_mod(权限变更)、netconfig(网络配置),事后检索时才知道该查哪个标签。
怀疑日志被清空时,先对 audit.log 相关文件做哈希留档再排查,顺序反了会破坏证据。
实践要点
- key 在规则里是标签、在输出里是检索入口,命名要与规则主题一一对应
- -i 只影响显示不做修改:取证留档时保留原始输出更稳妥
- 用 --start 或 -ts 收窄时间窗口,避免一次拉出几十万行记录
- aureport 看总量与趋势,ausearch 看单条明细,两者分工明确
- 把常用检索命令固化成小脚本,值班时不必现查参数
ausearch 还支持按用户、进程等条件二次过滤:确定 key 后追加条件,比事后用 grep 翻输出更可靠。