dsh-provenance:在 DeepSeek Harness 插件安裝前做來源校驗

前言

DSH 的理念是「一切皆插件」。對智能體開發者來說,插件通常要先讀倉庫,再執行安裝。這裏有一個順序問題:如果安裝命令先執行,插件裏的安裝鉤子可能已經運行;等安裝後掃描文件時,已經晚了。

dsh-provenance 針對這個順序問題。它在 DeepSeek Harness 插件安裝前檢查即將安裝的 tarball 是否與已讀源碼一致,並在代碼運行前給出 ok、review 或 block 的結果。

這是什麼

dsh-provenance 是 Darren Tang 維護的 DSH 插件,許可證爲 MIT。它做安裝前的供應鏈來源檢查,不執行被審計包,也不替代代碼行爲掃描。

運行要求是 Node.js >=22.19.0。README 說明它沒有運行時依賴;@deepseek-ai/cordis@deepseek-ai/dsh-tools 是可選 peer dependencies。

核心檢查

下面介紹它檢查的幾類來源問題。

來源固定性

檢查安裝說明符是否指向不可變內容。可重解析的名稱或分支,可能在同一名稱下解析到不同內容。

註冊表完整性

比對收到的字節與註冊表發佈的 digest。

安裝鉤子

檢查在 dsh plugin add 過程中會執行的安裝鉤子。這類代碼可能在安裝後掃描之前運行。

構建來源

通過 SLSA attestation 檢查製品是否能關聯到特定 commit 和 CI workflow。它解析 attestation payload,但不做 sigstore 簽名驗證。

製品與源碼比較

比較已發佈文件與指定 commit 的上游源碼,並檢測發佈時是否新增了文件。

如果沒有已發佈文件可以匹配,它會報告 diff.nothing-verified,而不是報告 0 mismatch

使用方式

dsh-provenance 爲 DSH agent 註冊兩個工具:

  • provenance_preflight:安裝前審計一個來源
  • provenance_verify:檢查某個 profile 中已安裝的插件

它也提供 CLI。CLI 的 preflightverify 模式支持 --json--strict,可用於 CI。

退出碼:

  • 0:ok 或 notice
  • 1--strict 下需要 review
  • 2:block

安裝與啓用

作爲 DSH 插件:

dsh plugin --profile web add dsh-provenance

作爲獨立 CLI:

npm install -g dsh-provenance

啓用前確認 Node.js >=22.19.0,並檢查源碼和 MIT 許可證。DSH 插件一般以當前 dsh 進程權限運行,因此建議先審後裝。

典型用法

安裝前檢查

先做 preflight:

dsh-provenance preflight some-plugin@1.2.3
dsh-provenance preflight github:owner/repo
dsh-provenance preflight some-plugin --json

檢查已安裝插件

再對某個 profile 做 verify:

dsh-provenance verify --profile web

CI 門禁

在 CI 中使用 --strict

dsh-provenance preflight some-plugin@1.2.3 --strict
dsh-provenance preflight github:owner/repo#<sha> --strict

安裝攔截

在 DSH 會話中,dsh-provenance 會攔截安裝嘗試:如果來源沒有先在會話中通過 preflight,它會拒絕安裝。需要時,應先用 provenance_preflight 審計該來源,再重試安裝。

如果這個安裝攔截影響流程,可以用以下配置關閉:

{ guardInstalls: false }

邊界與注意事項

它的邊界比較明確:

  • 不驗證 sigstore 簽名;只解析 attestation payload,不做密碼學驗證。
  • 不能驗證構建產物;lib/dist/ 和壓縮文件會報告爲 unverifiable,不會報告爲 match
  • 乾淨報告不等於安全證明;只表示當前規則沒有發現問題。
  • 不是代碼行爲掃描器;它檢查代碼從哪裏來,不判斷代碼做什麼。
  • 不是 runtime ledger;不觀察、不記錄安裝後的行爲。
  • 不執行被審計包;archive 在內存中解析。

結尾

dsh-provenance 的價值是把“源碼是否一致”這個問題提前到安裝前處理。它可以和代碼行爲掃描配合使用:前者回答來源是否對得上,後者回答代碼行爲是否可信。

GitHub 倉庫:https://github.com/Darren-Tang/dsh-provenance

羽毛球分组比赛记分
小程序二维码

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

小夜