首页/安全/安全加固速查/ausearch 按 key 检索与 -i 解析

ausearch 按 key 检索与 -i 解析

自定义规则的 -k key 就是检索标签:ausearch -k 一把捞全,-i 把十六进制参数解析成可读文本。

安全加固速查安全更新于 2026-10-13

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 翻输出更可靠。

易错点

  • 不加 -i 直接读输出:参数为十六进制,容易把命令看错得出错误结论
  • 时间窗口开得太大:输出爆炸导致真正的线索被淹没,先缩窗口再细化 key
  • key 命名随意或留空:事后没有检索入口,审计规则等于白配
  • 只在单机查记录:多机环境需把 audit 日志集中转发,否则拼不出完整链路

数据来源与参考

  • ausearch(8) man page
  • Red Hat 审计文档

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌