dsh-skillnotary:鎖定並驗證 AI 代理技能的權限

前言

在 DeepSeek Harness (DSH) 環境中,一個“skill”通常是一個包含 SKILL.md 的文件夾,裏面包含可運行的 shell 腳本、腳本和 MCP 配置。這些代碼往往沒有經過審查,工具訪問權限未被鎖定,且可能在無人知曉的情況下改變。

大多數現有的安全工具回答的問題是“這個 skill 現在危不危險?”。dsh-skillnotary 回答的是另一個問題:“它還是我批准的那個嗎,還只被允許做當初那件事嗎?”。

插件介紹

dsh-skillnotary 是一個 DSH 插件,用於鎖定並驗證 AI 代理技能的權限,防止其悄悄獲得新能力。該插件由 liyixuan201211 維護,遵循 MIT 許可證。

核心功能

安裝後,插件提供以下功能:

  • 鎖定技能權限:生成鎖定文件,記錄內容摘要、解析的提交和能力集。
  • 驗證技能完整性:檢測 SKILL.md 及其能力是否與批准的版本發生漂移。
  • 簽署能力聲明:使用 ed25519 對包含能力聲明的 DSSE 信封進行簽名。
  • 策略治理:通過 policy 命令設置允許/拒絕規則。
  • 修復 SKILL.md:通過 fix 命令自動將技能實際需要的 allowed-tools 寫入 SKILL.md。
  • 應用鎖定技能:通過 apply 命令將鎖定技能複製到 Harness 目錄。
  • CI 門禁:通過 ci 命令將上述檢查集成到 CI 流程中。

安裝與啓用

在安裝或更新 agent skill 之前,建議先鎖定它、審計它的能力。使用以下命令安裝插件:

dsh plugin --profile web add github:liyixuan201211/dsh-skillnotary

典型用法

插件包含兩個內置技能:

  • skills/skillnotary/:用於審查循環。在添加或更新技能時運行 audit(能做什麼)、verify(是否是批准的版本)和 policy(是否允許)。如果發現嚴重問題,會阻止安裝。
  • skills/skillnotary-drift-watch/:用於持續監控。設置定期 verify 任務,以便在停止審查後,技能發生變化時被及時發現。

常用命令示例:

# 檢測能力漂移
skillnotary verify

# 鎖定技能
skillnotary lock

# 自動修復 allowed-tools
skillnotary fix

# 運行 CI 門禁檢查
skillnotary ci

注意事項

在部署前,請確認以下事實:

  • 無啓動時代碼:cordis.patch.yml 是一個空補丁。插件不包含任何在 DSH 進程啓動時運行的代碼,避免了以高權限運行可能帶來的安全風險。
  • 非沙箱環境:檢測基於文件頭部的上下文範圍正則表達式,而非沙箱。這意味着針對性的混淆可以規避檢測,報告“無已知信號”不代表“絕對安全”。
  • 掃描範圍:僅掃描文件頭部(1MB 文件,64MB 技能)。
  • 簽名方式:使用 DSSE + in-toto 進行簽名,不涉及 Sigstore(無 Keyless/OIDC 或透明日誌)。
  • 依賴與兼容性:依賴 TypeScript,無構建步驟,需要 Node >= 23.6。與 DSH 的兼容性要求爲 >=0.1.5-rc.1 <0.2.0。
  • 鎖定限制:鎖定文件僅鎖定技能本身,不限制運行時的沙箱行爲。

鏈接

  • GitHub 倉庫: https://github.com/liyixuan201211/dsh-skillnotary
  • 插件目錄: https://www.skillhub.cn/plugins/liyixuan201211/dsh-skillnotary
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜