前言¶
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 的 preflight 和 verify 模式支持 --json 和 --strict,可用於 CI。
退出碼:
0:ok 或 notice1:--strict下需要 review2: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