首页/安全/取证与溯源速查/auditd 进程执行记录查证
日志溯源53 条

auditd 进程执行记录查证

auditd 的 EXECVE 记录保留进程执行的参数序列,是 Linux 上回答"谁执行了什么命令"的直接证据。

取证与溯源速查安全更新于 2026-10-13

auditd 进程执行记录查证是什么

Linux 审计系统可以记录进程执行的完整参数序列(执行类记录),配合系统调用记录中的父进程号与用户标识,就能回答「谁在什么身份下执行了什么命令」。它是主机侧命令级溯源最直接的证据来源,前提是审计规则覆盖了目标路径。

基本信息

适用范围启用 auditd 的 Linux 主机
记录类型系统调用记录(身份与父进程)与执行参数记录
检索工具ausearch、aureport,加 -i 输出可读结果
前提需预先配置审计规则,默认规则不覆盖全部执行

典型使用场景

  • 确认某个命令是谁执行的、完整参数是什么
  • 排查由 Web 服务或计划任务触发的脚本执行链
  • 追溯提权之后的命令序列
  • 用关键词标记把关键目录的执行单独归档
  • 与登录日志联合还原一次操作的全过程

检索示例

检索示例
ausearch -sc execve -ts recent | tail -40              # 最近的执行记录
ausearch -k susp_exec -i | grep -E 'proctitle|comm='   # 按标记规则检索并友好输出
ausearch -ts today -ua 1001 -i | head -40              # 按用户标识过滤
aureport -x --summary                                  # 执行行为汇总统计
systemctl status auditd                                # 确认审计服务在运行
# 检索前先确认规则是否覆盖目标路径,未覆盖的记录根本不存在

记录与字段

记录或字段含义用途
系统调用记录内核层记录含用户标识、父进程号、可执行文件与结果
执行参数记录参数序列参数按序排列,需拼接还原命令行
完整命令行字段进程标题未启用时用参数序列拼接代替
父进程号触发者进程向上追溯是 Web 服务还是计划任务
审计规则没覆盖到的路径不会留下执行记录。缺失只代表「不可见」,不能写成「未发生」,报告里的措辞要严格区分这两种含义。
参数中的空格、换行与引号会被十六进制编码,解读前先还原,否则命令拼接会出错,关键词检索也会漏掉真实存在的记录。

易错点

  • 默认审计规则未覆盖全部执行路径,把「无记录」当成「未执行」
  • 参数被编码后直接做关键词检索,已有的执行记录被漏掉
  • 只看执行参数记录不看系统调用记录,无法判断执行身份与父进程链
  • 审计日志与系统日志时间不同源,直接拼接时间线会出现偏差

数据来源与参考

  • auditd 手册(ausearch 与 EXECVE 记录)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌