jkt-check/dsh-secret-scrub:DeepSeek Harness 不可逆密文清洗插件

前言

DeepSeek Harness (DSH) 的核心設計理念是「一切皆插件」。在構建智能體應用時,會話日誌和發送給模型的請求中常包含敏感信息(如 API Key、私鑰、Token 等)。dsh-secret-scrub 是一個針對這一場景的不可逆密文清洗插件,它在文本持久化到日誌或發送給模型之前,通過正則匹配將其替換爲佔位符,防止敏感信息泄露。

它是什麼

dsh-secret-scrub 是一個提取自 kaya-ai-terminal 項目的獨立插件。它爲 DSH 提供了密文清洗能力,通過正則匹配密文形狀,將其替換爲 [REDACTED:<category>] 佔位符。該插件由 jkt-check 維護,遵循 MIT 許可證。

核心功能

  1. 不可逆替換:匹配到的密文會被永久替換,無法恢復原文。
  2. 多層級清洗:
    • minimal:僅運行 Tier 0(核心密文規則)。
    • balanced(默認):運行 Tier 0 + Tier 1(環境變量、雲廠商 Key)。
    • aggressive:運行 Tier 0 + Tier 1 + Tier 2(PII 信息、高熵值文本如 SHA256)。
  3. 監聽器掛載:插件掛載了三個前置瀑布流監聽器,分別攔截:
    • 用戶消息(agent/pre-step)。
    • 工具執行結果內容(tools/post-execute)。
    • 工具代碼調度的持久化日誌(tools/ptc-dispatch-log)。
  4. 自定義規則:支持通過配置文件添加自定義的正則規則。
  5. 引擎導出:提供純淨的清洗引擎 scrubText,不依賴 DSH 即可單獨在 Node.js 環境中使用。

安裝與啓用

使用官方 npm 包安裝命令即可激活插件。插件默認使用 balanced 級別,無需額外憑證。

dsh plugin --profile headless add dsh-secret-scrub

若需測試本地修改,可使用 tarball 路徑安裝:

dsh plugin --profile headless add /path/to/dsh-secret-scrub-0.1.1.tgz

典型用法

安裝並重啓對應 profile 後,執行包含密文的命令,文本在到達日誌和模型前已被清洗。

dsh --profile headless "echo AWS AKIAIOSFODNN7EXAMPLE"

若需調整清洗級別或添加自定義規則,需覆蓋默認的 cordis.patch.yml:

- id: secret-scrub
  config:
    level: aggressive
    extra:
      - category: internal-token
        pattern: 'internal-[0-9]{4}'

若不使用 DSH,可直接作爲 Cordis 插件使用:

import { Context } from '@deepseek-ai/cordis'
import * as SecretScrub from 'dsh-secret-scrub'

const ctx = new Context()
await ctx.plugin(SecretScrub, {
  level: 'aggressive',
  disabled: ['env-var-secret'],
  extra: [
    { category: 'internal-token', pattern: 'internal-[0-9]{4}' },
  ],
})

注意事項

  • 不可逆性:清洗過程不可逆,被替換的密文無法找回。
  • 正則侷限:未加前綴的密鑰、跨文本塊的密鑰以及編碼形式(Base64、URL 編碼)可能因保守的規則形狀而無法被匹配。
  • 誤報與漏報:Tier-2 規則匹配的是“形狀”而非“已證明的密鑰”,因此存在誤報(如指令中的郵箱可能被清洗)。高熵值文本(如 git SHA)在 aggressive 模式下會被清洗。
  • 安全依賴:不要僅依賴此插件作爲防泄露的唯一控制手段。

總結

該插件爲 DSH 用戶提供了基礎的敏感信息保護能力,通過分級配置和自定義規則適配不同場景。更多細節與源碼可參考下方鏈接。

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

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

小夜