前言¶
DeepSeek Harness(DSH)是一个以插件为核心的生态。在安全开发流程中,被动等待告警往往滞后,无法及时掌握系统状态。Dolphin(小海豚)将渗透测试的方法论(信息收集、漏洞探测、利用验证、报告)转化为主动防御巡检流程,填补了 DSH 生态中“主动防御巡检”的空白。它像海豚巡游一样,定期、主动地对目标主机做安全扫描与评估。
核心能力¶
Dolphin 主要提供以下能力:
- 基于 Semgrep 的扫描:利用静态分析引擎进行规则匹配。
- 基于 SSH 的远程巡逻:通过 SSH 将扫描命令下发至远程主机执行,回收结果并本地存档。
- 结构化报告生成:输出统一的 SecurityFinding 数据模型,存档为 JSON 报告。
- 跨平台支持:支持 Windows / Linux / macOS / WSL2。
- 隔离部署:自动在目标端隔离部署 semgrep,避免污染生产环境(支持 pipx / venv / 便携包)。
- 零硬编码路径:所有数据路径由运行时 API 推导,兼容 Windows 与 POSIX 路径。
- SSH 层纯 JS:基于 ssh2,控制端与目标端可以是任意操作系统组合。
- 自动健康检查:巡逻前自动探测远端环境。
- 远程命令 POSIX 化校验:下发命令前进行语法校验,防止注入。
安装与依赖¶
本插件由 ccr-wer 维护,采用 MIT 协议。
- 安装插件
通过 npm registry 安装:
npm install dsh-dolphin-security
-
环境要求
- Node.js >= 20
- npm 包管理器
-
前置依赖
Dolphin 依赖 semgrep(LGPL-2.1)。必须先安装 semgrep 并确保其可在命令行中直接调用:
pip install semgrep
安装后可通过 `semgrep --version` 验证。
使用方式¶
Dolphin 既可在 DSH 宿主中作为插件运行,也可作为独立 CLI 脚本使用。
本地扫描
对指定目录执行静态扫描:
node dolphin-patrol.js --local <目录>
# 示例
node dolphin-patrol.js --local D:/your-project/src
远程巡逻
通过 SSH 对远程主机进行巡检。需先定义目标主机信息(通常参考 test-ssh-hosts.js 模板),然后执行:
node dolphin-patrol.js --patrol <alias> <远程目录>
# 示例
node dolphin-patrol.js --patrol server01 /srv/app
远端未安装 semgrep 时,插件会自动在隔离环境(如 ~/.local/share/pipx 或 /tmp)中部署并执行扫描。
自测与调试
# 运行自检
node dolphin-patrol.js
# 模拟数据自测
node dolphin-core.js --mock [目录]
# SSH 引擎自检
node dolphin-ssh-core.js
# 测试主机库与健康检查
node test-ssh-hosts.js
# 起本地 ssh2 服务端验证完整闭环
node test-ssh-hosts.js --live
技术细节与架构¶
- 架构:采用“眼睛(扫描层)、手脚(执行层)、大脑(融合控制器)”三层架构。
dolphin-core.js负责扫描封装,dolphin-ssh-core.js负责 SSH/SFTP 能力,dolphin-patrol.js负责下发命令与结果聚合。 - 安全部署:远端工具部署采用隔离技术(pipx / venv / 便携包),严禁使用
sudo或写入系统 site-packages。远端命令经严格 POSIX 语法校验。 - 跨平台:SSH 层基于纯 JS 实现,支持任意操作系统组合的控制端与目标端。
注意事项¶
- 免责声明:本项目严禁用于非法渗透测试。仅限用于你拥有合法所有权或已获得明确书面授权的系统与代码。使用本工具对第三方系统发起扫描可能违反相关法律法规。
- 权限要求:必须先安装 semgrep 并加入 PATH。
- 安装方式:请务必通过
npm install安装,不要手工拷贝目录,以免缺失运行文件。
资源¶
- 官方目录:https://www.skillhub.cn/plugins/ccr-wer/dsh-dolphin-security
- 源码仓库:https://github.com/ccr-wer/dsh-dolphin-security