最有效提权监控方式是用auditd内核级捕获关键二进制执行:/usr/bin/sudo、/bin/su、/usr/bin/passwd、/usr/bin/ssh、/usr/sbin/sshd、/bin/bash、/bin/sh,仅监控“执行”(-p x),通过-w -p x -k规则持久化至/etc/audit/rules.d/,并用ausearch结合-k、-i等参数高效审计。

直接监控关键系统二进制命令文件(如 /usr/bin/sudo、/bin/su、/usr/bin/passwd)的执行行为,是识别提权和异常操作最有效的方式之一。auditd 不依赖进程名或日志解析,而是捕获内核级 execve 系统调用,确保真实、不可绕过。
监控哪些命令文件最有必要
优先盯住直接影响权限边界的二进制文件:
-
/usr/bin/sudo:所有通过 sudo 提权的行为源头 -
/bin/su:传统用户身份切换入口 -
/usr/bin/passwd:密码修改及 shadow 文件写入触发点 -
/usr/bin/ssh和/usr/sbin/sshd:远程登录与提权通道 -
/bin/bash、/bin/sh:交互式 shell 启动,常用于后续恶意操作
用 -w -p x 精准捕获执行动作
对二进制文件,只需监控“执行”(-p x),不加 r 或 w——读取或写入这些文件本身不构成安全事件,执行才代表实际行为发生。
示例命令:
在无 root/sudo 权限的环境(云容器、VPS、隔离主机)中安装并配置 OpenClaw 浏览器工具的 headless Chrome。适用场景:...
sudo auditctl -w /usr/bin/sudo -p x -k privileged_execsudo auditctl -w /bin/su -p x -k su_loginsudo auditctl -w /usr/bin/passwd -p x -k passwd_change
其中 -k 标签用于后续快速过滤,建议语义清晰、统一前缀(如 privileged_*)。
让规则永久生效不丢失
临时规则在重启或 systemctl restart auditd 后全部清空,生产环境必须落盘:
- 新建规则文件:
sudo vim /etc/audit/rules.d/10-privileged-bin.rules - 写入内容(每行一条,无缩进):
-w /usr/bin/sudo -p x -k privileged_exec-w /bin/su -p x -k su_login-w /usr/bin/passwd -p x -k passwd_change - 加载规则:
sudo augenrules --load(RHEL/CentOS)或sudo systemctl restart auditd(Debian/Ubuntu) - 验证是否生效:
sudo auditctl -l | grep privileged_exec
高效检索执行事件日志
日志默认存于 /var/log/audit/audit.log,需用 ausearch 提取结构化结果:
- 查所有 sudo 执行:
sudo ausearch -k privileged_exec -i(-i解析 UID/GID/命令名为可读格式) - 只看 root 用户执行:
sudo ausearch -k privileged_exec -ui 0 -i - 查最近 2 小时内的提权:
sudo ausearch -k privileged_exec --start today --end now -i
关键字段中:comm 是命令名(如 sudo),exe 是完整路径(如 /usr/bin/sudo),auid 是原始登录用户 ID(不可伪造),cwd 是执行时所在目录——四者结合可还原完整操作上下文。










