前言¶
在 CTF 或攻防演练里做蓝队,告警、日志、样本和结论常常散落在不同工具与聊天里;指挥官一边盯告警一边自己翻日志,很容易漏资产、漏任务。子智能体口头说「处理完了」,若本地没有结构化记录,复盘和写报告都缺依据。
DeepSeek Harness(DSH)社区里维护者 FGCGDroid 发布的 dsh-blue-team-mode(仓库 FGCGDroid/blue,目录分类为 admin-security)把 Harness 收成一套防守侧闭环:SQLite 事实库、任务队列、六个执行角色预设,以及独立右侧栏「蓝队控制台」。下面按安装、开局门禁和日常工作流说明用法;插件以当前 DSH 进程权限运行,仅限已获授权的靶场或自有资产防守场景。
它是什么¶
npm 包名 dsh-blue-team-mode,当前版本 1.0.0,许可证 MIT。一句话定位:把 DeepSeek Harness 变成 CTF 网络攻防蓝队指挥台——对一个防守目标拉起监控值守、情报分析、威胁狩猎、应急响应、取证分析、加固修复六个执行角色;资产、告警、发现、IOC、任务与时间线写入本地 SQLite($DSH_HOME/blue/blue.db),并在独立右侧栏控制台可视化,由指挥官按并发名额派发任务。
README 明确:仅限已获授权的 CTF 靶场、攻防演练或自有资产防守;只做防守侧采集、比对、编排、取证与记录,不包含攻击、漏洞利用或未授权探测代码。
核心功能¶
事实库与编排闭环¶
手工防守常见的三个痛点——信息散、派活乱、没证据——插件用「一个事实库 + 一个任务队列 + 六个角色预设」固定流程:告警/日志/样本经 blue_autopilot 与 plan / next / complete 进入子智能体派发,执行结果落库。
事实库表包括:assets、alerts、findings、iocs、tasks、timeline、engagements。
独立蓝队控制台¶
挂在 shell.overlay 上的右侧常驻面板(非普通文件 tab),有态势、告警、资产、发现、任务、IOC、时间线、报告等页签;可从会话头部 「蓝队」 按钮打开。Host 通过同源 POST /blue/api 桥接读写 ctx.blueTeam 的 SQLite。会话与目标绑定镜像到 $DSH_HOME/blue/session-bindings.json。
领取任务 会把任务置为 dispatched 并生成含 agent_preset 的任务书;控制台不直接代替 Agent 调用 subagent,需由指挥官继续派发。
六个执行角色¶
| agent_preset | 角色 | 主要职责 |
|---|---|---|
blue-worker-monitor |
监控值守 | 告警研判、可用性、首轮止血 |
blue-worker-intel |
情报分析 | IOC、检测规则、误报评估 |
blue-worker-hunt |
威胁狩猎 | WebShell、横向、持久化、外带 |
blue-worker-ir |
应急响应 | PICERL、隔离、清除、恢复 |
blue-worker-forensics |
取证分析 | 磁盘/内存/日志/样本、时间线 |
blue-worker-hardening |
加固修复 | 修入口、收敛暴露面、补检测 |
blue-worker |
全工具执行 | 角色不确定时的兜底 |
执行角色为叶子节点,预设内无 subagent / workflow;需要其他角色时在回报里写 needs: 交给指挥官。
工具与风险审批¶
README 列出约 30 个 blue_* 工具,覆盖目标绑定、blue_preflight 自检、资产与告警、IOC 与发现、任务队列,以及核心编排器 blue_autopilot(status / plan / next / cycle / complete / set_slots)。
任务按 low / medium / high 分级;high 级(如隔离主机、改防火墙、杀进程等)只能进入 pending_approval,须经控制台或 blue_task_approve 人工放行后才会进入自动 cycle 派发。
红队社工与注入防护(设计要点)¶
主会话与执行角色默认不挂 bash / pwsh / fs / web 等通道;宿主访问走 blue_* 工具。blue_log_scan / blue_artifact_triage 对不可信数据打标并做注入信号检测;报告仅写入 $DSH_HOME/blue/reports。这些措施降低「模型直接读源码并 HTTP 外传」的现成路径,不能替代 OS 级沙箱;生产或高对抗环境仍建议 Docker/VM、只读挂载证据目录、默认无出站网络。
安装与启用¶
依赖 Node.js ≥ 22.13(node:sqlite),dsh ≥ 0.2.1-rc.5。插件不下载外部工具;缺项可用 blue_preflight 查看。
从 npm 安装(发布后)¶
dsh plugin --profile desktop add dsh-blue-team-mode
等价的 plugin_manager 写法:
plugin_manager action=install_bundle target="dsh-blue-team-mode"
包内 dsh.bundle 指向 cordis.patch.yml;npm 安装不需要 allowBuilds。
从本地 tarball 或目录安装¶
打包后安装示例:
npm pack --pack-destination dist
dsh plugin --profile desktop add .\dist\dsh-blue-team-mode-1.0.0.tgz
本地目录作为 bundle 时(需 Full access 或逐次批准):
dsh plugin --profile desktop add "C:\Users\86186\Desktop\蓝队防御插件"
安装后重启一次 dsh web,在界面助手栏选择预设 「蓝队防御模式」。会话头部会出现 「蓝队」 按钮,右侧栏引导页有 「蓝队控制台」 卡片。
典型用法¶
开局门禁(必须)¶
在「蓝队防御模式」会话里,第一条用户消息必须是:
防御自检
未自检前,除 blue_session_info / blue_preflight / blue_defense_selfcheck 外,其他 blue_* 工具会返回 SELF_CHECK_REQUIRED。用户发送上述四字后,指挥官调用:
blue_defense_selfcheck phrase="防御自检"
门禁会校验会话中最后一条用户消息去除首尾空白后恰好为「防御自检」;仅模型填对参数而用户消息不符仍会被拒绝。执行角色 worker 不走此门禁。
绑定目标并自主派活¶
自检通过后,可发送类似内容:
防守目标:example-ctf 靶场,范围 10.10.0.0/24 和 *.example.test。
先盘点资产、接入告警,然后自主派活。
指挥官侧典型顺序:blue_engagement_open 绑定目标 → blue_preflight → 派 monitor 盘点与接告警 → blue_autopilot action=cycle → subagent + 对应 agent_preset → 子智能体回报后核对库、complete 回收,进入下一轮。
也可手动指挥,例如:
看一下现在什么态势
把这条 critical 告警转成应急任务
对 10.10.0.5 做失陷痕迹核查
生成报告并写到文件
适用场景与注意¶
适合谁:已在 DSH 上跑多智能体、需要在授权范围内做蓝队防守编排的 CTF 队员或演练指挥;希望告警、资产、IOC、任务与时间线落在同一套本地库并可视化复盘。
使用前请确认:
- 对目标拥有书面授权,并遵守比赛或演练规则。
- 安装前阅读仓库源码与 MIT 许可证;插件能力受 DSH 进程文件与网络权限约束,不要把 Harness 跑在能看见无关生产密钥或客户数据的账户下。
- 移除 worker 的
web后,外部情报需由主会话或人工经受控通道查询后再下发(worker 回报needs:),勿随意加回未审查的外联工具。
DSH 生态主张「一切皆插件」;SkillHub 目录页 为社区收录,与 DeepSeek / 幻方无法定从属关系。仓库 README 为功能与命令的权威说明。