用security-audit技能给AI Agent做体检:SFD实验室安全审计实战
security-audit技能:我们是怎么用它发现自己不知道的漏洞的 在SFD实验室,我们跑着大概十几个AI Agent,分布在不同的项目上。多数时候它们运行得很好,但偶尔会出现一些让人后背发凉的情况——比如某天我们发现一个Agent在处理用户输入的时候,没有任何过滤就把内容传给了外部API。这种问题,如果没有…
- 入库时间
- 下载量
- 0
- 人审标记
- 已人工审核
security-audit技能:我们是怎么用它发现自己不知道的漏洞的
在SFD实验室,我们跑着大概十几个AI Agent,分布在不同的项目上。多数时候它们运行得很好,但偶尔会出现一些让人后背发凉的情况——比如某天我们发现一个Agent在处理用户输入的时候,没有任何过滤就把内容传给了外部API。这种问题,如果没有主动去查,可能根本不会被发现,直到出事。
这就是我们开始认真使用security-audit技能的起因。
security-audit是什么?
security-audit是OpenClaw/ClawHub生态里的一个专门安全审计技能。它的定位是:对运行AI Agent的部署环境做系统性安全扫描,找出暴露风险、弱配置和潜在攻击面。
它不是万能的渗透测试工具,但它擅长的东西很实用:检查暴露的端口、审查SSH配置、扫描是否有硬编码的凭据、检查系统更新状态、评估整体风险暴露面。换句话说,就是那些你"知道应该做但一直没空做"的安全检查。
从零开始跑一次审计
以我们的一台SFD Lab服务器为例,完整走一遍流程。
首先触发审计:
帮我对当前OpenClaw部署做一次安全审计,重点检查:
1. 暴露的端口和服务
2. SSH配置安全性
3. 是否有硬编码凭据泄露风险
4. 系统补丁状态
输出风险等级和具体建议
技能会系统性地执行一系列检查。整个过程大概需要2-5分钟,取决于你的系统复杂度。
第一次跑的时候,我们的结果让人有点意外——发现了三个之前完全没意识到的问题:
问题1:开发时留下的调试端口
有个服务的调试模式端口(:9229)忘记关了,虽然绑在127.0.0.1上不对外直接暴露,但在容器网络里是可达的。这种东西手动排查很容易漏。
问题2:SSH允许密码登录
理论上我们全部用密钥登录,但`PasswordAuthentication`在配置文件里还是`yes`。这意味着如果有人知道用户名,可以尝试暴力破解密码。这个配置在服务器初始化的时候没有改,就这么一直跑着。
问题3:.env文件权限过松
某个项目的.env文件权限是644,其他系统用户可读。虽然我们服务器上没有其他用户,但这是个坏习惯,而且在某些场景下确实有风险。
修复流程:从发现到关闭
security-audit不只是给你一份"找到了什么"的清单,它会给出具体的修复建议和优先级排序。这个设计很实用——你知道先修哪个。
对应上面三个问题:
# 1. 禁用调试端口(修改启动配置)
# 找到对应的package.json或启动脚本,移除 --inspect 参数
# 2. 禁用SSH密码登录
sudo sed -i 's/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo systemctl restart sshd
# 3. 修复.env文件权限
chmod 600 /path/to/project/.env
三个操作,五分钟搞定。但如果没有审计,这三个问题可能会一直存在。
auto-fix模式:用还是不用?
security-audit有一个auto-fix模式,可以自动应用低风险的修复操作。我们用过,但态度比较谨慎。
对于明显安全的操作(比如修改文件权限),auto-fix很方便。但涉及系统配置修改(比如SSH配置),我们倾向于让它给出命令,自己执行。原因很简单:SSH配置改错了可能把自己锁在外面,在生产服务器上这是个严重事故。
建议:生产环境用review模式,先看建议再手动执行;开发或测试环境可以开auto-fix提升效率。
集成到定期检查流程
我们现在把安全审计集成到了SFD实验室的日常运维里,每周跑一次。具体的做法是用OpenClaw的cron功能:
schedule: { kind: "cron", expr: "0 10 * * 1", tz: "Asia/Singapore" }
payload: { kind: "agentTurn", message: "对所有生产服务器执行security-audit,汇总风险报告发到Telegram" }
每周一早上10点自动跑,有问题通知我,没问题HEARTBEAT_OK。这样安全检查就变成了一个自动化的背景任务,不需要人工记得去做。
和其他安全工具的关系
需要说清楚:security-audit不能替代专业的渗透测试,也不能替代针对应用层的代码审计。它的价值是把那些"已知应该做但容易忘"的基础安全配置检查自动化掉。
如果你的系统处理的是高度敏感数据,还是需要专业安全团队来做完整的评估。但对于大多数运行AI Agent的中小规模部署,security-audit覆盖的检查项已经能抓住绝大多数常见风险。
我们在SFD实验室的经验是:用了security-audit定期检查之后,那种"不知道自己不知道什么漏洞"的焦虑明显少了。知道问题在哪里,才能解决问题。
上手建议
如果你在OpenClaw上跑着AI Agent,又从来没做过系统性的安全检查,建议现在就触发一次:
- 在ClawHub安装security-audit技能(如果还没装)
- 触发一次完整的审计扫描
- 按照风险优先级,从高到低逐项处理
- 设置定期自动检查的cron任务
第一次跑的时候,发现问题是大概率的事。不用慌,发现问题才是目的。那些沉睡在配置里的风险,早点知道比晚点知道好。