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 服务还是计划任务 |
审计规则没覆盖到的路径不会留下执行记录。缺失只代表「不可见」,不能写成「未发生」,报告里的措辞要严格区分这两种含义。
参数中的空格、换行与引号会被十六进制编码,解读前先还原,否则命令拼接会出错,关键词检索也会漏掉真实存在的记录。