用 security-audit 技能給 AI Agent 做體檢:SFD Lab 安全稽核實戰
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任務
第一次跑的时候,發現問題是大概率的事。不用慌,發現問題才是目的。那些沉睡在設定里的风险,早点知道比晚点知道好。