dsh-cyber-redteam:DSH 上的 CyberOps 运行时与 URL 掩码路由

前言

在 DeepSeek Harness(DSH)里做与安全测试、红队演练相关的对话时,模型和工具往往会直接接触真实 URL。若把内网或敏感目标原样写进上下文,既不利于隔离,也可能让不同会话之间的链接互相「串台」。社区插件 dsh-cyber-redteam(维护者 datawork-technology)在 Harness 内提供一套可选启用的 CyberOps 运行时:按会话、按激活生成本机 loopback 上的掩码路由,并在 Web Composer 提供 Red Team 开关。下面按安装、模式与配置说明其行为边界。

这是什么

dsh-cyber-redteam 是面向 DSH 的 CyberOps 运行时插件(README 归类为带掩码 /cyber、授权直连 /cyber-2 路由及 Composer Red Team 切换)。当前资料中的版本为 0.6.1,许可证 MIT。插件自 v0.5.0 由 dsh-cyber-2 更名而来。

两条设计原则贯穿全文:

  • 掩码为显式加入(opt-in):从未打开 Red Team 的会话中,URL 保持用户输入原样;武装 Red Team 或显式使用 /cyber、/cyber-2 后,该会话才进入掩码逻辑。
  • 每条掩码路由独立源站:各路由在本机独立端口监听,并持有独立不透明 token,不同聊天、同聊天内不同目标也不会共用同一掩码地址。

核心功能

路由与命令

命令 作用
/cyber <URL> 仅经网关:目标只能通过该任务本地的掩码路由访问。
/cyber-2 <URL> 授权直连模式,仍保留 URL 掩码。
/cyberoff 撤销本会话全部路由并关闭两种模式。
/cyber-2 https://exact-host/path 为已授权场景追加另一个目标。

资料说明:登记后的 URL 在发给模型提供商的消息与工具结果中保持掩码;被引用资源允许常规拉取,并非自动扩大攻击性范围;提示词范围不是网络层强制白名单。

掩码身份与本机监听

武装后,掩码基址因会话与路由而异,形态类似:

http://127.0.0.1:52104/_cyberops/<token>/...   chat A -> example.com
http://127.0.0.1:52105/_cyberops/<token>/...   chat B -> example.com
http://127.0.0.1:52106/_cyberops/<token>/...   chat A -> api.example.net

token 由安装密钥 HMAC、128-bit 随机数及所属会话与源站绑定生成。要点包括:同一会话内不同路由不同端口;撤销路由后监听器关闭;端口在重启后可持久化;/cyberoff 或解除武装后同目标再次授权会 mint 新 token;单轮内 agent/pre-step 重投影用户消息时复用存活路由;重启后活跃会话可保持同一掩码 URL(gateway 状态持久化)。

TLS 链补全

对部分仅下发叶子证书的目标(易出现 unable to verify the first certificate),网关会读取叶子证书的 AIA 扩展、拉取缺失颁发者并重试一次,校验仍须落到本地信任根;成功响应可带 x-cyberops-tls-chain: completed-from-aia,其余 TLS 失败上报 upstream-tls-failed。

Red Team 开关

Web Composer 在 conversation.input.right(模型选择器旁)渲染 Red Team chip,是会话级武装开关:

  • Off(默认):不掩码,不登记路由。
  • On:每步注入 CyberOps toolkit 段落(playbook + 工具列表),本会话内 URL 掩码。

武装不自动授权任何目标;仍需显式 /cyber-2 <URL> 才会 attest 掩码路由。掩码与武装状态的关系见 README 表格:未武装会话里粘贴的 URL 保持原样,而 /cyber <URL> 会掩码并同时武装该会话。

等价的文本命令:

/cyber-mode status   # 报告本会话 armed 状态
/cyber-mode on       # 本会话开启 red-team 模式
/cyber-mode off      # 关闭

返回行前缀须为 cyber-mode: on|off|unavailable。武装状态写入 gateway 状态文件,重启后仍有效;新会话默认未武装。

状态、路径与配置

项 默认 可覆盖(bundle config)
Toolkit 根目录 $DSH_HOME/toolkits/my-home-server-toolkit,否则 ~/.dsh/toolkits/... toolkitRoot
Gateway 状态(schema v2) $DSH_HOME/storages/cyberops-gateway.json,否则 ~/.dsh/storages/... statePath
私有目标 关 allowPrivateTargets
开关武装时是否含直连 开 armDirectAccess: false 可关

Toolkit 不随插件捆绑;需在上述路径安装经 verifyToolkit 校验通过的 toolkit,或在 profile 补丁中指定路径(勿直接改 bundle 内 cordis.patch.yml):

# ~/.dsh/profiles/<profile>/cordis.patch.yml
- id: cyberops-runtime
  config:
    toolkitRoot: /Users/you/toolkits/my-home-server-toolkit
    allowPrivateTargets: true   # 仅当授权目标为私有时

资料提醒:config 会被后续 patch 整段替换,需重复写出仍要保留的键。

无 toolkit 或校验失败时,插件记录警告并自行禁用,Harness 仍可启动,开关显示 cyber-mode: unavailable。

状态与 Son of Astra(~/.soa)安装互不共享。

安装与启用

在 DSH 中可通过仓库自带市场索引安装。路径:Plugins → Discover → Manage index sources,添加:

https://raw.githubusercontent.com/datawork-technology/dsh-cyber-redteam/main/index.json

或直接按 commit 规格安装:

dsh plugin --profile <profile> add "github:datawork-technology/dsh-cyber-redteam"

安装后默认为未武装且无 toolkit:Composer 开关为 cyber-mode: unavailable,直到存在已校验 toolkit;在运行 /cyber 或 /cyber-2 之前也没有任何目标被授权。

典型用法流程

  1. 安装插件并(按需)在 profile 中配置 toolkitRoot 与 allowPrivateTargets。
  2. 确认 toolkit 通过校验后,在 Web 会话中打开 Red Team,或使用 /cyber-mode on。
  3. 对具体目标执行 /cyber-2 https://exact-host/path(或仅网关场景用 /cyber <URL>)。
  4. 结束本轮掩码与会话路由时使用 /cyberoff 或 /cyber-mode off。

适用场景与注意

适合需要在 DSH 对话中做授权安全测试、又希望把对外可见 URL 收敛到本机 loopback 掩码源的开发者。插件以当前 DSH 进程权限运行;安装前应自行审阅 GitHub 源码 与 MIT 许可证。社区目录 SkillHub 插件页 为独立站点索引,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-cyber-redteam 把「是否掩码」和「是否注入 CyberOps 工具包」绑在会话级 Red Team 开关上,并为每个授权目标分配独立端口与 token,在 Harness 重启后仍可恢复状态。需要市场入口时可打开 目录页,需要实现细节与变更记录以 GitHub 仓库 README 为准。

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

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

小夜