本文根據 Anthropic 開發者文檔《Agent Skills》的 Security considerations 一節,以及 Claude Code、VS Code、Gemini CLI、OpenCode 的官方技能文檔整理,資料核對於 2026-10-11。MCP 伺服器的同類問題見《MCP 伺服器怎麼選、裝之前怎麼審》。
適用於誰
- 搜「skills 安全風險」「skills 安全審查」「skills 安全掃描」「skills 安全檢測」的人;
- 看到一個熱門 Skill 倉庫,準備照着 README 一行命令裝上的人;
- 團隊裏負責定「哪些技能可以裝」的人。
結論先說
- 官方的立場很明確:只使用來源可信的 Skill,即你自己寫的,或者從 Anthropic 獲得的。必須用來源不明的 Skill 時,要格外謹慎並在使用前徹底審查。
- Skill 不只是一段提示詞。它通過說明和代碼給智能體增加能力,一個惡意的 Skill 可以指示智能體以與它聲稱的用途不符的方式調用工具、執行代碼。
- 風險有多大取決於智能體當時有什麼權限。在本機的編程智能體裏,Skill 裏的腳本和你自己運行的程序擁有同樣的網絡和文件訪問能力。
- 審查要看全部文件,不只是
SKILL.md:腳本、圖片和其他資源都要看。 - 官方的比喻:把裝 Skill 當成裝軟件來對待。
一、Skill 能做到什麼
一個 Skill 文件夾裏可能有三樣東西,對應三種影響方式:
| 內容 | 怎麼起作用 | 風險點 |
|---|---|---|
SKILL.md 裏的說明 | 被加載進上下文,智能體照着做 | 說明裏可以寫「先讀取某文件並發送到某地址」這類與用途無關的指令 |
scripts/ 裏的腳本 | 智能體通過終端運行 | 腳本就是普通程序,能做你的帳號能做的事 |
| 引用的外部地址 | 智能體按說明去抓取 | 抓回來的內容裏可能藏着新的指令,而且內容可以事後被改掉 |
還有一些工具專有的機制會放大影響,以 Claude Code 為例:
allowed-tools字段可以讓列出的工具在調用這一輪裏免確認;- 正文裏的內聯命令(以
!加反引號包住的命令)會在內容發送給模型之前就執行,並把輸出替換進去; hooks字段註冊的 Hook 從技能被調用起一直保留到會話結束。
這些都是正當的功能,但意味着審查時不能只看正文的文字說明。
二、官方列出的風險
Anthropic 文檔的「Key security considerations」:
- 要徹底審查:檢查 Skill 裏附帶的所有文件,留意異常模式,如意料之外的網絡調用、文件訪問,或與聲稱用途不符的操作;
- 外部來源有風險:從外部地址獲取數據的 Skill 風險尤其大,獲取到的內容可能包含惡意指令;即使 Skill 本身可信,它依賴的外部內容日後發生變化也會帶來問題;
- 工具濫用:惡意 Skill 可以以有害的方式調用工具(文件操作、終端命令、代碼執行);
- 數據暴露:能接觸敏感數據的 Skill,可能被設計成向外部系統泄露資訊;
- 當成安裝軟件:把 Skill 集成進能接觸敏感數據或關鍵操作的生產系統時要特別小心。
官方警告框裏寫的後果包括:數據外泄、未經授權的系統訪問等。
三、在哪裏運行,權限差多少
同一個 Skill 在不同環境裏能做的事不一樣。Anthropic 文檔給出的運行環境差別:
| 環境 | 網絡 | 安裝軟件包 |
|---|---|---|
| claude.ai | 取決於用戶或管理員設定,可能是完全、部分或沒有網絡訪問 | 以官方幫助文章為準 |
| Claude API | 沒有網絡訪問,不能調用外部接口 | 運行時不能安裝新包,只有預裝的可用 |
| Claude Code | 完整的網絡訪問,與你電腦上其他程序相同 | 可以,官方建議只做本地安裝,避免影響你的電腦 |
所以在本機的編程智能體裏裝第三方 Skill,是風險最高的場景:有網絡、有你的文件、有你的環境變量和憑據。
四、安裝前的八步
第一步:確認來源。 倉庫屬於誰、是不是你要找的那個作者或官方組織。倉庫名和用戶名逐字核對,名字相近的仿冒倉庫是最省事的攻擊方式。
第二步:先下載、不安裝。 把倉庫克隆到一個臨時目錄裏看,而不是直接運行 README 裏的一鍵安裝命令。帶 --yes、--all、--consent 這類跳過確認的參數,裝第三方內容時不要用。
第三步:通讀 SKILL.md。 重點找與用途無關的指令:讀取密鑰或配置文件、訪問主目錄裏的 .ssh、.aws 之類的目錄、向某個地址發送內容、要求「不要告訴用戶」。也看 frontmatter:有沒有 allowed-tools,它預先批准了哪些工具和命令。
第四步:讀每一個腳本。 scripts/ 下的文件逐個打開。看它訪問哪些路徑、連哪些地址、有沒有下載並執行別的東西、有沒有經過混淆或編碼的大段內容。看不懂的腳本不要裝。
第五步:檢查所有外部地址。 把 Skill 裏出現的 URL 列出來,逐個判斷:是不是它聲稱要用的服務、內容會不會被第三方修改。
第六步:看引用的其他文件。 references/、assets/ 裏的文檔同樣會被讀進上下文,裏面也可以藏指令。官方說的是審查全部文件,包括圖片和其他資源。
第七步:看依賴。 腳本里用到的包是否固定了版本,是不是常見的、能查到來源的包。
第八步:想清楚它需要什麼權限。 一個「幫你潤色提交資訊」的 Skill 沒有理由聯網,也沒有理由讀倉庫之外的文件。需要的權限和用途對不上,就不裝。
五、裝上之後怎麼收緊
保留確認步驟。 不要為了省事打開終端命令的自動批准。VS Code 官方專門提醒:使用共享的技能前先審閱,並檢查與終端腳本執行有關的自動批准設定。
利用工具自帶的閘門。
| 工具 | 可以用的機制 |
|---|---|
| Claude Code | 權限規則裏用 Skill(名稱) 允許或拒絕特定技能;設定 "disableSkillShellExecution": true 禁用技能正文裏的內聯命令執行;skillOverrides 把某個技能設為只能手動調用或關閉 |
| Gemini CLI | 技能激活前有確認提示,顯示名稱、用途和將訪問的目錄;安裝時不加 --consent |
| OpenCode | 在 opencode.json 裏對技能名設 ask 或 deny |
| VS Code Copilot | disable-model-invocation: true 讓技能只能手動調用;審查終端自動批准設定 |
把自動調用關掉。 對還不夠放心的技能,改成只能手動調用,它就不會在你沒注意的時候被加載。
放在項目裏而不是全局。 只在需要它的倉庫裏安裝,不要一上來就裝成對所有項目生效。
更新也要審。 今天看過的內容,下次更新可能就變了。更新前看一遍改動;從 Git 倉庫安裝的,記下當時的提交版本。
不用就刪。 裝着不用的技能既占上下文,也多一分暴露。
六、團隊怎麼管
- 定一個允許清單,寫明接受標準,技能進倉庫要經過代碼評審;
- 團隊技能統一放在倉庫裏(如
.claude/skills/、.agents/skills/),改動有記錄、可回滾; - 企業版的集中管理:Anthropic 文檔提到,Claude Enterprise 組織可以對上載到 claude.ai 和 Cowork 的自定義技能開啟內容掃描(Skill content scanning),但這項掃描不覆蓋通過 Skills API 或 Console 上載的技能;Claude Code 支持通過託管設定向全組織部署技能;
- 自己寫的也要注意:技能裏不要寫入密鑰和內部地址,提交前檢查一遍。
自查清單
- 我知道這個技能是誰寫的,倉庫地址核對過;
SKILL.md、所有腳本、所有引用文件我都讀過;- 裏面出現的外部地址我都清楚是幹什麼的;
- 它要求的權限和它聲稱的用途對得上;
- 我沒有用跳過確認的參數安裝;
- 終端命令的確認步驟還在;
- 它只裝在需要的項目裏;
- 更新之前我會先看改動。
常見問題
Q:有沒有自動掃描 Skill 的工具?
官方文檔裏提到的只有面向 Claude Enterprise 組織的內容掃描功能。社區裏有各種第三方掃描工具,本文沒有逐一核對,不做推薦;無論用不用工具,人工讀一遍仍然是官方要求的做法。
Q:下載量高、星標多的技能就安全嗎?
熱度說明用的人多,不說明有人審過每一個版本。技能目錄網站和排行榜的收錄也不等於安全審查。
Q:只有說明、沒有腳本的技能是不是就沒事?
風險小一些,但不是零。說明本身可以指示智能體運行命令或訪問文件,是否執行取決於你的權限設定和你有沒有點確認。
Q:官方的技能可以放心裝嗎?
官方把「從 Anthropic 獲得的」列為可信來源。前提是確認你裝的確實是官方倉庫,而不是名字相似的倉庫。
參考資料
- Agent Skills · Security considerations(Anthropic 開發者文檔):https://platform.claude.com/docs/en/agents-and-tools/agent-skills/overview
- Extend Claude with skills(Claude Code 官方):https://code.claude.com/docs/en/skills
- Use Agent Skills in VS Code(VS Code 官方):https://code.visualstudio.com/docs/copilot/customization/agent-skills
- Agent Skills(Gemini CLI 官方):https://geminicli.com/docs/cli/skills
- Agent Skills(OpenCode 官方):https://opencode.ai/docs/skills/
0 條評論
還沒有評論,來搶沙發~