ausearch 做什么
ausearch 在 audit.log 中按事件类型、时间窗与规则键检索;aureport 给出认证、可执行文件与文件访问的汇总视图。两个命令配合,可以回答「谁在什么时候执行了什么、动了哪些文件」。
前提条件
auditd 只在规则命中时记录:没有配置对应规则就没有数据。因此检索前先用 auditctl -l 看清监控面,再判断查不到是配置问题还是确实没有发生。
基本信息
| 按类型检索 | ausearch -m EXECVE、AVC、USER_LOGIN、PATH |
|---|---|
| 时间窗 | -ts today -te now,也可指定绝对时间 |
| 按规则键 | -k <规则键名> |
| 汇总报告 | aureport -au 认证、-x 可执行、-f 文件访问 |
| 规则检查 | auditctl -l 列出当前生效规则 |
| 权限要求 | 读取审计日志需 root |
典型使用场景
- 还原入侵者执行过的命令与访问的文件
- 排查权限拒绝(AVC)相关的策略问题
- 统计登录与提权行为
- 按时间窗聚焦入侵时段
- 导出审计记录作为证据
按类型与键检索
按类型与键检索
ausearch -m USER_LOGIN --start today | tail -n 20
ausearch -k cmd-watch -ts today | tail -n 30
ausearch -m AVC -ts today | tail -n 10
aureport -au --summary | head -n 20
auditctl -l | head -n 20 # 确认监控了哪些路径与系统调用
ausearch -ua 1000 -ts today | tail -n 20 # 按登录用户 ID 过滤输出逐列读法
| 记录类型 | 含义 | 关注点 |
|---|---|---|
| SYSCALL | 系统调用记录 | 关键字段是 syscall、ppid 与 auid,ppid 指向父进程 |
| EXECVE | 命令执行记录 | 显示实际执行的程序与参数,是主要证据 |
| PATH | 涉及的文件路径 | 判断访问或改动了哪些文件 |
| USER_LOGIN | 登录事件 | 含账号与来源地址,用于时间线对齐 |
没有规则就没有记录:补录规则只能覆盖之后的行为,判断历史活动要靠现有日志与文件时间戳,不要因为查不到就否认发生过。
检索时别只查 audit.log:轮转产生的 audit.log.1 与压缩归档同样要查,否则时间窗内的记录会整段缺失,结论会严重偏差。
按时间窗导出留档
按时间窗导出留档
ausearch -ts "2026-10-01 00:00:00" -te "2026-10-12 23:59:59" --raw > /evidence/audit_window.log
ls -la /var/log/audit/
sha256sum /evidence/audit_window.log
ausearch -i -ts today | tail -n 20 # -i 把 uid 解析成用户名,便于阅读审计记录量大且格式紧凑:先按时间窗收敛,再用 -k 或 -m 过滤到具体类型,最后把 --raw 输出重定向到证据目录,避免把刷屏当成分析。
常用组合速记
- ausearch -m EXECVE -ts today:今天的执行记录
- ausearch -k <key>:按自定义规则键定位
- aureport --start today:今天的汇总视图
- ausearch -i:把数字 ID 解析为可读名称