前言¶
在 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 之前也沒有任何目標被授權。
典型用法流程¶
- 安裝插件並(按需)在 profile 中配置
toolkitRoot與allowPrivateTargets。 - 確認 toolkit 通過校驗後,在 Web 會話中打開 Red Team,或使用
/cyber-mode on。 - 對具體目標執行
/cyber-2 https://exact-host/path(或僅網關場景用/cyber <URL>)。 - 結束本輪掩碼與會話路由時使用
/cyberoff或/cyber-mode off。
適用場景與注意¶
適合需要在 DSH 對話中做授權安全測試、又希望把對外可見 URL 收斂到本機 loopback 掩碼源的開發者。插件以當前 DSH 進程權限運行;安裝前應自行審閱 GitHub 源碼 與 MIT 許可證。社區目錄 SkillHub 插件頁 爲獨立站點索引,與 DeepSeek / 幻方無官方從屬關係。
結尾¶
dsh-cyber-redteam 把「是否掩碼」和「是否注入 CyberOps 工具包」綁在會話級 Red Team 開關上,併爲每個授權目標分配獨立端口與 token,在 Harness 重啓後仍可恢復狀態。需要市場入口時可打開 目錄頁,需要實現細節與變更記錄以 GitHub 倉庫 README 爲準。