DeepSeek Harness Hub
← 返回列表

提示注入防御PerryLink/dsh-defend

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
✓ 可直接安装

🛡️ dsh-defend

自动检查通过:npm 包已发布且 engines 声明满足基线(声明 Node ^22.19.0 || >=24.0.0);该结论来自程序自动检查,未经人工实机验证。 · 最近上游提交 2026/9/19 · 已提供中文文档

针对DeepSeek Harness的提示注入、越狱和机密泄露防御:基于Aho-Corasick检测,配合允许/询问/阻止拦截以及经过净化的审计事件

综合分
40.8
GitHub 分
40.8
用户评分
★ Stars
16
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add dsh-defend
npm 包 dsh-defend 已校验归属本仓库,走 npm 安装最省事
数据截至 2026/9/19(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查✓ 自动检查通过

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-defend @ 0.3.10
Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/12 22:11:23

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-attachment@deepseek-ai/cordis@deepseek-ai/cordis-plugin-include@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-commands@deepseek-ai/dsh-llm@deepseek-ai/dsh-session@deepseek-ai/dsh-system-prompt@deepseek-ai/dsh-tools@deepseek-ai/dsh-user-approval@deepseek-ai/schemastery
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

🛡️ dsh-defend
- 1024 商店渠道:先执行一次 npm i -g dsh1024,然后执行 dsh1024 plugin --profile web add dsh-defend(计入 deepseek1024.com 安装排名)。
Gitee

面向 DeepSeek Harness 的提示注入、越狱与密钥泄露防御。

规则决定已知。拦截决定其余——而一切皆有审计。

License
DSH plugin
dsh-doctor
Node
CI
Version
npm version
npm downloads

English · 简体中文 · Español · Português · हिन्दी

兼容性

| 层面 | 状态 |
|---|---|
| Harness | DeepSeek Harness dsh-v0.1.6-alpha.2(2026-09-18 验证;peer 范围 >=0.1.2-rc.1 =0.1.5-alpha.1 =0.1.6-0 =24.0.0 |
| 平台 | 全部(纯宿主;无原生代码,无网络) |
| 模型 | 任意(检测在内容到达模型之前运行) |

你将获得

dsh-defend 在 agent 之前放置了两个独立的层:

1. 破坏性删除防护——8·14/8·16 事后复盘教训的可执行形式。在 tools/pre-execute 上,递归删除的 shell 命令会被拒绝,除非每一个目标都是会话工作区内、且在受保护前缀(主目录配置、.dsh/.claude、系统目录)之外的显式绝对路径。Dry-run 标记(-WhatIf、--dry-run、git clean -n)会通过,因为它们正是该教训所要求的检查。
2. 检测层——移植自四个上游资产(均为 Apache-2.0,参见 THIRD_PARTY_NOTICES.md):25 条 Prompt-Injection-Payloads 规则、25 个通过纯 TypeScript Aho-Corasick 自动机实现的 Jailbreak-Detector 模式、来自 Secret-Key-Leaker-Detect 的 12 个密钥语法以及发行方的公开引用,还有逐字保留作为回归基准的 Prompt-Attack-Dataset。

三个拦截点,各有一个决策模型:

| 拦截点 | 扫描对象 | 决策 |
|---|---|---|
| agent/pre-step | 入站用户消息 | allow → next();ask → 审批;block → 拒绝该步骤 |
| tools/pre-execute | 工具参数 | allow → next();ask → 审批;block → 拒绝 |
| tools/post-execute | 工具结果 | allow → next();ask → 审批;block → 纠正性反馈 |

默认值:所有族均为 ask,critical 密钥为 block(上游的见即中断语义)。无审批应答器 = 失败关闭。每次放行都会调用 next()——下游策略插件绝不会被短路。

inbound message ── agent/pre-step ── scan ── clean → next()/enter
tool arguments ── tools/pre-execute ── scan ── allow → next()
tool results   ── tools/post-execute ── scan ── block → feedback
│
└─ defend/detection audit (rule id, family,
severity, decision — never matched text)

快速开始

1. install the bundle into your profile
dsh plugin --profile web add "github:PerryLink/dsh-defend#main"

or from npm (published releases)
dsh plugin --profile web add dsh-defend

2. restart and verify the row
dsh --profile web --dump-config | grep -A3 'id: dsh-defend'

安装与卸载

- git 渠道(最新 main):dsh plugin --profile web add "github:PerryLink/dsh-defend#main"——prepare 脚本仅使用生产依赖进行构建。
- npm 渠道(已发布版本):dsh plugin --profile web add dsh-defend。
- tarball 渠道:在本仓库中运行 pnpm pack,然后执行 dsh plugin --profile web add ./dsh-defend-.tgz。
- 卸载:dsh plugin --profile web remove dsh-defend(或从 profile patch 中移除该行)。

配置

所有可调项均为 Schemastery Config 字段(可从 cordis.yml 更改)。以 id 为目标的覆盖会替换整行——请重新声明你需要的每个键。cordis.patch.yml 以内联方式记录了每个键。

| 键 | 默认值 | 含义 |
|---|---|---|
| enabled | true | 两层的总开关 |
| action | deny | 破坏性删除防护动作(deny / ask) |
| toolNames | ['bash','persistent-bash','terminal-bash'] | 其命令参数会被防护审查的工具名称 |
| detection.enabled | true | 检测层开关 |
| detection.maxScanChars | 10000 | 每次拦截的扫描上限(仅头部) |
| detection.normalizeUnicode | true | 扫描前对文本进行 NFKC 规范化(阻止相似 Unicode 绕过) |
| detection.secretMinEntropy | 3.0 | 允许密钥正则命中所需的最小香农熵(比特/字符);0 表示禁用 |
| detection.injectionAction | ask | 注入类:allow / ask / block |
| detection.jailbreakAction | ask | 越狱类:allow / ask / block |
| detection.secretAction | ask | 密钥类:allow / ask / block |
| detection.secretBlockCritical | true | 关键密钥始终阻止,无论 secretAction 如何设置 |
| detection.audit | true | 写入 defend/detection 会话审计事件 |
| detection.allowUnmarkedAudit | false | 在 Session.append 早于 ignorable 标记的主机上(目前所有已发布版本),或在遇到未知事件类型时故障关闭的主机上(主机 0.1.2-rc.1+),继续写入会话审计,接受不可恢复会话的风险 |
| detection.maxReportEntries | 200 | 内存中报告环形缓冲区上限 |
| registerCommand | true | 注册 /defend 命令 |
| registerTool | true | 注册 defend_report 工具 |

工具与界面

| 界面 | 类型 | 说明 |
|---|---|---|
| defend_report | 工具 | 总计(已记录/已阻止/已询问)、按类别计数,以及最近 20 条匹配——绝不包含匹配文本 |
| /defend | 命令 | 与文本形式相同的摘要 |
| agent/pre-step | 监听器 | 入站消息扫描(进入/拒绝) |
| tools/pre-execute | 监听器 | 工具参数扫描(拒绝/询问)+ 破坏性删除防护 |
| tools/post-execute | 监听器 | 工具结果扫描(阻止反馈) |

权限与数据

- 权限:询问决策依托官方审批接缝;不重新实现或绕过任何内容。该插件在其 workshop 清单中声明 session:append 和 network:none。
- 数据:磁盘上不存储任何内容;报告环形缓冲区位于内存中且有界。无网络请求,无子进程。
- 会话日志:defend/detection 事件携带规则 ID、类别、分类、严重性、密钥类型、决策和扫描事实——匹配文本绝不会进入日志,且密钥匹配在构造上仅记录类型。

安全边界

- 检测,而非强制执行。 防护和检测层仅在官方接缝上产生拒绝/询问/阻止决策;沙箱和审批系统仍是强制执行权威。
- 故障关闭。 缺少审批应答器、缺少会话或缺少服务界面时,降级为最严格的决策——绝不静默放行。
- 无内容离开进程。 扫描在本地进行;审计事件已脱敏;密钥绝不会被记录、显示或报告。
- 有界工作。 扫描上限、每条规则一次匹配以及环形缓冲区边界,可防止恶意输入消耗无界资源。

已知限制
- 检测缺口。 规则库能捕获移植的词汇表及其宽容变体;新颖措辞、形似 Unicode 编码(NFKC 规范化被列为未来工作)以及多步攻击可以绕过它。基准测试固定了实测下限(在上游数据集上为 27/28),以便回归可见。
- 无模型级裁决。 dsh-defend 是确定性的;它从不调用模型,无法判断新颖意图。
- 消息拒绝是静默的。 agent/pre-step 拒绝不会向模型传递原因(该接缝没有原因字段);审计事件记录规则事实。
- 会话审计与 ignorable 标记。 审计追加请求信封的 ignorable: true 标记,以便任何 harness 构建都能加载日志。迄今为止发布的每个 harness 版本(0.1.0-rc.1–0.1.0-rc.8、0.1.1-rc.1–0.1.1-rc.2)都会静默丢弃它——事件落地时未标记,并导致会话在更严格的构建上无法恢复;宿主 0.1.2-rc.1 仅为存储日志读取兼容性保留信封字段,但 Session.append 仍无法为其打上标记,且读取路径会拒绝未标记的未知事件类型(defend/detection 未注册),因此在那里写入也会使会话无法加载。因此 dsh-defend 在首次追加之前就做出决定(对等版本预检查;无法解析的版本按失败关闭处理),并禁用会话日志审计,同时发出一次性警告。设置 detection.allowUnmarkedAudit: true 可重新启用。参见 issue #2。

开发

pnpm install        # node ^22.19 || >=24
pnpm run typecheck  # tsc: src + tests against the local harness checkout
pnpm run typecheck:ci  # tsc against the published 0.1.5-rc.2 types (no paths)
pnpm test           # vitest: 75 tests, 8 suites (detection benchmark incl.)
pnpm run build      # tsdown bundle + tsc declarations (lib/)
pnpm run verify:self-contained  # dependency specs resolve from the registry
pnpm run verify:artifacts       # built ESM face + shipped files present
pnpm pack           # the published tarball

基准测试

红队基准测试(在 105 个样本上按类别计算 P/R/F1,外加 27/28 的固定装置下限)发布在 benchmark/RESULTS.md 中;使用 node --experimental-strip-types benchmark/run.mjs 重新生成它(零新增依赖,无需构建步骤)。

主题

dsh、dsh-plugin、deepseek-harness、deepseek、cordis、security、prompt-injection、jailbreak、secret-scanning、ai-safety

贡献者

- @PerryLink — 创建者兼维护者:破坏性删除防护、四资产检测移植、拦截接线、审计界面以及五种语言的文档。
- @cuohua — 关于 defend/detection 事件在更严格的构建中未标记落地并导致会话无法恢复的精确报告(#2);运行时宿主能力检测与 ignorable 标记规范直接源自该分析。

PerryLink DSH 插件家族

本项目是由 PerryLink 维护的 40 个 DeepSeek Harness 插件之一。如果这个对你有帮助,其他的很可能也会:

| 插件 | 一句话简介 |
|---|---|
| dsh-auto-review | 审批链上的第二模型自动审查,默认故障关闭 | |
| dsh-background-agents | 持久化后台子代理,带 Web UI 侧边栏、消息传递和中断 | |
| dsh-budget | DeepSeek Harness 的成本治理:预算、碳排和延迟集于一个面板。 | |
| dsh-checkpoint-rewind | 等同于 Claude Code /rewind:快照、会话分叉、一次性恢复 | |
| dsh-claude-move | 将 Claude Code 会话、记忆、技能和 CLAUDE.md 迁移到 DSH | |
| dsh-click | DeepSeek Harness 的跨平台原生桌面控制——Windows 优先。 | |
| dsh-composer-history | Web 编辑器的终端风格输入历史:方向键、Ctrl+R 搜索 | |
| dsh-data-quality | 数据集质量检查和引用交叉核对(此处消费的可选数值桥接) | |
| dsh-doublecheck | 工程纪律守卫:需求拷问、测试门禁、对抗性审查 | |
| dsh-draw | DeepSeek Harness 的统一静态图像生成路由。 | |
| dsh-fast | DeepSeek Harness 的只读性能诊断。 | |
| dsh-fund-research | 中国公募基金的确定性研究报告 | |
| dsh-github | DSH 的 GitHub PR/issue 集成,每次写入均需审批 | |
| dsh-industry-research | 行业研究编排,通过本插件的 ctx.researchReport.assemble 封存其交付物 | |
| dsh-library | DeepSeek Harness 的本地文档知识库。 | |
| dsh-local-ai | DeepSeek Harness 的本地模型(Ollama)集成。 | |
| dsh-lsp-actions | 通过语言服务器实现 LSP 诊断、格式化、补全、代码操作和重命名 | |
| dsh-mask | PII 脱敏中间件:在模型边界处匿名化,在展示层还原 | |
| dsh-mcp-panel | 只读 MCP 运行时面板:/mcp 命令 + 设置选项卡,显示状态、工具和错误 | |
| dsh-memento | 需审批的跨会话记忆:ctx.memory 接缝 + SQLite + memory 工具 | |
| dsh-observe | 面向 DeepSeek Harness 的 OpenTelemetry 和 Langfuse 可观测性导出器。 | |
| dsh-output-styles | 与 Claude Code outputStyles 等效的运行时样式切换 | |
| dsh-reach | 多渠道审批/提问桥接:微信/Telegram/飞书,会话控制台 | |
| dsh-permission-rules | Claude Code 风格的声明式 allow/deny/ask 权限规则,带审计 | |
| dsh-personal-directive | 带顶栏开关的个人指令注入器(框架版) | |
| dsh-plugin-guide | 以按需智能体技能形式提供的插件开发知识库 | |
| dsh-plugin-doctor | 面向 DSH 插件的零依赖静态 + 沙箱冒烟检测器 | |
| dsh-research-report | 可验证的研究报告引擎:内容寻址的证据账本和密封版本 | |
| dsh-score | 面向 DeepSeek Harness 插件的多维度质量评分。 | |
| dsh-session-pin | 在 Web 侧边栏中固定会话,并保持持久排序 | |
| dsh-session-sync | 面向 DeepSeek Harness 的跨设备会话同步——会话存储的专用 git 镜像。 | |
| dsh-skill-pack-security | 安全审计技能包:密钥扫描、依赖项和供应链审查 | |
| dsh-talk | 面向 DeepSeek Harness 的语音优先会话循环:对它说话,听它回答。 | |
| dsh-test-drive | 面向 DeepSeek Harness 插件的隔离安装与冒烟测试驱动。 | |
| dsh-ticktick | TickTick/滴答清单任务桥接:会话头部面板 + 11 个工具 | |
| dsh-translate | 面向 DeepSeek Harness 的供应商参数转换和确定性 JSON 修复。 | |
| dsh-wechat | 微信 ↔ DSH 桥接(腾讯 iLink 机器人):文本/图片/文件/语音,聊天内审批 |
| dsh-autotier | 自动强/廉价模型层级路由,带确定性风险防护和 /tier 命令 | |
| dsh-catalog | PerryLink 系列的 DSH Desktop Market 标准目录源 | |
| dsh-cert-mcp | 只读 MCP 服务器,暴露认证注册表:等级、快照和五维证据 | |
| dsh-kit | 一键启动包,安装核心系列 | |
| dsh-plugin-certification | 社区认证注册表,带可复现检查的等级和徽章 | |
| dsh-plugin-kit | PerryLink DSH 插件共享的零运行时依赖工具包 | |
| dsh-plugin-portal | 零依赖静态门户,将整个插件系列渲染为单个页面 | |
| dsh-plugin-upgrade-015 | 合并的 0.1.3-alpha.1 → 0.1.5-rc.1 升级通道卡片,外加零依赖接缝扫描器 | |
| dsh-team-rooms | 跨会话团队房间:共享消息总线、任务板和时线 | |

从 DSH Desktop Market 安装

所有 PerryLink 插件均可在内置的 DSH Desktop Market 中浏览:Market → Sources → add source → 粘贴 https://perrylink-dsh-catalog.perrylink.workers.dev/catalog-source.json → 选择它。安装仍会经过 Market 的 npm 身份验证和你的确认。

许可证

Apache License 2.0 © 2026 dsh-defend 贡献者

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群