上架前先掃過 2,000 個 AI skills
We Vetted 2000 AI Skills Before They Reached Developers — Lucas Palma, Nubank

Nubank 的產品安全團隊把 AI skills 當成供應鏈來管,在內部 marketplace 上架前先用 SkillVector 掃過再放行。至今掃了 2,000 多個 skills,Lucas Palma 分享哪些做法有用、哪些踩了坑。
這場講了什麼
- skills 也是供應鏈的一部分:Lucas Palma 指出,供應鏈原本是套件、容器、模型,現在還多了 skills、plugins、MCP servers、agent rules。這場想留下的結論是,要保護的是整條工作流程,不只是產出的程式碼。
- 風險來自分享與權限:skill 可能叫 AI 去取 token,結果 token 被寫死、流進 log;也可能指示 AI 跑 shell 指令,別人一用就改到一堆檔案;權限也可能開得遠超過需要。金融業又是受管制的環境,稽核與預設安全都得顧。
- 上架前先過 SkillVector:skill 要進內部 marketplace 會開 pull request,Nubank 在前面加了一道 CI 步驟,跑自己做的 SkillVector。工程師可以在本機反覆掃到安全再上傳,上傳後還會再掃一次。
- 規則比對加上 LLM 審查:簡單的風險用 regular expressions 之類的確定性檢查,需要看脈絡時才交給 LLM。結果寫回 PR,也輸出成 SARIF 進漏洞管理流程,再依嚴重度與政策決定放行、要求修正或擋下。
- 掃描成果與踩到的坑:掃過超過 2,000 個 skills,找出超過 1,500 個風險,其中 1,000 個很可能掃完就修掉了。踩到的坑包括指令一律同等看待、訊號太弱反而添亂、只在本機才無害的警告到了正式環境就有影響。
- 提示裡的確認可能是 AI 自問自答:skill 裡寫「要先請求確認」,AI 可能自己向自己確認。你以為流程裡有人把關,對 AI 來說只是確認過了。所以要掃的是真正的 human in the loop、核准關卡與 hooks。
影片從哪一段開始看12 段
- 00:12開場與為什麼要審Lucas Palma 是 Nubank 的 product security manager。AI skills 已經進了開發流程,看起來就像供應鏈依賴,所以團隊做了一套上架前的安全審查系統。
- 02:18供應鏈的範圍變大傳統供應鏈有套件、容器、模型,AI 時代再加上 skills、plugins、MCP servers、agent rules。
- 02:53skill 是什麼、受管制環境skill 是替模型或 agent 打包指示與脈絡。別人寫的 skill 會左右你產出的程式碼;金融業一邊要開發更快,一邊要顧稽核、憑證與預設安全。
- 04:30skill 危險在哪Lucas Palma 舉了三種情況:寫死的 token 流進 log、shell 指令改到別人的檔案、權限過大,連一個打字錯誤都可能出事。
- 05:41內部 marketplace 與 SkillVectorskills 透過內部 marketplace 分享,那裡就是要守住的邊界。上架的 pull request 前面加一道 CI 步驟,由自製的 SkillVector 判斷安全與否、分類風險並要求修正。
- 08:27SARIF 與放行決策輸出 SARIF 讓其他安全工具讀取,納入漏洞管理。依嚴重度與政策,可以要求修正或在分發前擋下。整條流程是本機掃描、PR、確定性掃描、LLM 審查、PR 回饋、SARIF、決策。
- 09:10掃哪些項目不安全的指示、agent 行為偏移、破壞性的 shell 指令、不該有的檔案修改、憑證怎麼要、意外外洩的資料、過寬的權限、有風險的 MCP 用法。
- 10:04掃描結果掃過超過 2,000 個 skills,找出超過 1,500 個風險(不是 1,500 個 skills 有風險,一個 skill 可能有好幾個),1,000 個很可能掃完就修掉了,少數很危險的在上架前擋下。對 SkillVector 上線前的舊 skills 補掃,也找到新風險,轉進漏洞管理。
- 11:08做得好的與踩到的坑有用的是確定性掃描加 LLM 審查,以及 SARIF 與 PR 留言。踩到的坑是指令一律同等看待、弱訊號沒有脈絡、只在本機才無害的警告,還有沒附明確修正指引的發現。
- 13:03提示層的確認陷阱skill 寫了要請求確認,AI 可能自己確認自己。所以要檢查有沒有真正的 human in the loop、執行的工具有沒有經過核准關卡、有沒有 hooks。
- 13:50可帶走的做法當成供應鏈來管、上架前審查、讓開發者在本機自己跑、同樣的檢查在 CI 強制執行、確定性檢查加 LLM、發現問題時要有強制措施。
- 14:23下一步同一套做法可以套到 plugins、MCP servers、rules、hooks,也已經有 MCP vector 和規則檢查;依 marketplace 的政策設不同關卡,在工具層強制稽核日誌與受信任的 gateway;第三方 skills 也要先上傳到 marketplace 掃過。
值得記的話4 句
we should be protecting the whole workflow, not only the code that's being generated.
我們要保護的是整條工作流程,不只是產出的程式碼01:57It's important to have this hybrid approach
這種混合做法很重要:確定性檢查之外,再讓 LLM 判讀脈絡07:41But the AI may ask confirmation for itself.
但 AI 可能是向自己要確認13:03Another AI has confirmed it, and let's go.
Lucas Palma 模擬 AI 的角度:另一個 AI 確認過了,那就上吧13:18
名詞與人物6 個
- SkillVector
- Nubank 自製的 skill 安全檢查工具,在 skill 上架 PR 的 CI 步驟執行,也可以在本機跑
- AI skill
- 替模型或 agent 打包指示與脈絡的東西,任何人都能建立並分享給別人
- marketplace
- Nubank 內部分享 skills 與 plugins 的地方,也是這套安全審查守的邊界
- SARIF
- 掃描結果的輸出格式,讓其他安全工具讀取並納入漏洞管理
- MCP vector
- Lucas Palma 提到針對 MCP servers 的同類檢查,風險類型不同
- human in the loop
- 流程裡真的有人核准;Lucas Palma 提醒,AI 自問自答不算
提到但沒有展開
- 談到混合做法時,Lucas Palma 提醒 LLM 的判斷會隨 temperature 設定浮動,同一個風險有時抓得到、有時抓不到。
- 工程師在本機掃過了,上傳後還要再掃一次,因為無法確定對方真的跑過,或跑的是最新版本。