应配置auditd规则精准捕获提权行为:监控sudo/su执行、uid/gid变更系统调用、sudoers文件访问及setuid程序;使用ausearch按关键词实时筛选,启用规则锁定(-e 2)并保护日志目录权限。

要实时监控并记录管理员提权行为(如 sudo、su、setuid 程序执行等),核心是利用 Linux 内核的 auditd 服务,配合精准的审计规则捕获关键系统调用和特权进程行为。重点不是“监控所有命令”,而是聚焦提权路径与权限变更事件。
配置 auditd 并启用关键提权相关规则
编辑 /etc/audit/rules.d/privileged.rules(或直接写入 /etc/audit/rules.d/audit.rules),添加以下规则后重启服务:
-
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -k sudo_exec(x86_64 系统,监控sudo执行) -
-a always,exit -F arch=b64 -S execve -F path=/bin/su -k su_exec(监控su切换) -
-a always,exit -F arch=b64 -S setuid,setgid,setreuid,setregid,setresuid,setresgid -k cap_change(捕获任意 UID/GID 修改系统调用) -
-w /etc/sudoers -p wa -k sudoers_access(监控对 sudo 配置文件的读写) -
-w /usr/bin/sudo -p x -k sudo_binary(监控sudo二进制文件被替换或执行)
保存后运行:sudo augenrules --load 或 sudo systemctl restart auditd 生效规则。
过滤并实时查看提权事件(避免信息过载)
auditd 默认日志在 /var/log/audit/audit.log,但直接 tail -f 不直观。推荐用 ausearch 实时筛选关键事件:
PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。
-
sudo ausearch -m EXECVE -i | grep -E "(sudo|su) " | tail -20—— 查最近 20 条提权命令执行记录 -
sudo ausearch -k sudo_exec -i --start recent—— 按关键词查sudo相关完整上下文(含用户、终端、命令参数) -
sudo aureport -m -ts today --key cap_change—— 统计今日所有 UID/GID 变更事件
注意:-i 参数会将 UID/GID 等数字转为用户名/组名,便于人工识别;敏感操作的 exe 和 cmdline 字段必须保留,用于还原真实命令。
增强可靠性:防止绕过与日志保护
攻击者可能尝试绕过 auditd,需做基础加固:
- 设置
auditctl -e 2(或在/etc/audit/rules.d/audit.rules中加-e 2)—— 锁定审计规则,禁止运行时修改 - 确保
/var/log/audit/目录权限为700,属主为root:root - 配置日志轮转(
/etc/audit/auditd.conf中调整max_log_file、num_logs)避免磁盘占满导致审计中断 - 如环境允许,将 audit 日志远程转发至独立 SIEM(如通过
audispd-plugins的au-remote插件)
补充:识别隐藏提权行为(非标准路径)
仅监控 /usr/bin/sudo 不够,还需覆盖常见绕过方式:
- 添加规则监控
execve调用中含sudo或su字符串的任意路径:-a always,exit -F arch=b64 -S execve -F exe=/usr/bin/bash -F auid!=uid -k suspicious_shell(捕获非登录 shell 下的提权尝试) - 监控
capset系统调用:-a always,exit -F arch=b64 -S capset -k capability_change(检测能力(capability)提升,如cap_sys_admin) - 定期检查
find /usr/bin /usr/local/bin -perm -4000 -o -perm -2000(发现异常 setuid/setgid 程序)
这些规则不替代最小权限原则,但能显著提升对非常规提权行为的可见性。










