配置 Auditd 针对特定命令空间审计的实施

冰川箭仙

冰川箭仙

2026-07-28

907人浏览

原创

auditd对特定命令空间的审计本质是聚焦进程行为,需锁定二进制路径、识别auid/uid/参数等上下文,并捕获关联操作;盲目全量监控execve会导致日志爆炸且难以定位风险。

配置 auditd 针对特定命令空间审计的实施

auditd 对特定命令空间的审计,本质是聚焦进程行为而非泛泛记录所有执行动作。关键在于锁定目标命令的二进制路径、识别其调用上下文(如 AUID、UID、参数)、并捕获后续关联操作(如写入临时目录、提权、执行新文件)。盲目监控 execve 全量事件会导致日志爆炸且难以定位真实风险。

明确你要审计的“命令空间”

所谓“命令空间”,不是指 shell 命令行本身,而是指一组具有相同安全意图或风险特征的可执行程序集合。例如:

  • 业务应用主进程:/opt/app/bin/server/usr/local/myapp/start.sh
  • 特权运维工具链:sudosuiptablessystemctl
  • 敏感管理脚本:/usr/local/bin/backup.sh/etc/cron.daily/db-clean

确定后,需确认其绝对路径(whichreadlink -f),避免符号链接导致规则失效。

配置精准的系统调用级规则

优先使用 -a always,exit + -F path= 组合,直接绑定到二进制文件,不依赖进程名(comm 可被伪造):

# 监控特定应用启动(含完整参数)
-a always,exit -F arch=b64 -S execve -F path=/opt/app/bin/server -k app_server_spawn

# 监控 sudo 执行(排除自身审计日志干扰,可加 -F uid!=0 过滤 root)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_usage

# 监控 setuid 程序(euid != uid 是提权标志)
-a always,exit -F arch=b64 -S execve -F euid!=uid -k setuid_exec

注意:

一糖导航
一糖导航

一糖导航丨实用的上网导航资源网址导航

下载
  • -F arch=b64 针对 x86_64 系统;若混用 32 位程序,需额外加 -F arch=b32
  • -k 标签必须唯一且语义清晰,便于后续 ausearch -k 快速过滤

补充关键上下文监控,形成行为闭环

单条执行记录价值有限。真正发现异常,需结合时间、用户、路径三重关联:

  • 锁定调用者身份-F auid>=1000 排除系统服务(auid 是登录会话初始 UID,不可被子进程篡改)
  • 捕获后续敏感动作:例如某应用启动后,在 /tmp 创建并执行文件,应同时部署:
    -w /tmp/ -p wa -k app_tmp_activity
    -a always,exit -F arch=b64 -S execve -F dir=/tmp/ -k app_tmp_exec
  • 限制噪音:用 -F uid!=1000 排除非目标用户,或 -F exit=-1 单独捕获失败操作(如权限拒绝)

确保规则持久化与生效验证

临时规则(auditctl -a)重启即失,生产环境必须走持久化流程:

  • 将上述规则写入 /etc/audit/rules.d/99-app-audit.rules
  • 运行 sudo augenrules --load(自动合并、语法检查、加载至内核)
  • 执行 sudo auditctl -l | grep app 确认规则已加载
  • 主动触发测试:运行目标命令 → sudo ausearch -k app_server_spawn --start recent | aureport -f -i

常见失效原因:

  • systemctl restart auditd 在 CentOS 7 上会清空规则(应改用 augenrules --load
  • 规则中路径不存在或为虚拟文件系统(如 /proc/sys),auditd 不支持
  • SELinux 启用时拦截审计(临时 setenforce 0 测试是否为此原因)

不复杂但容易忽略

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

2669

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

1648

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

1293

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

2632

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

2394

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

1638

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

1229

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

1399

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

209

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.4万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 131.8万人学习