DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-armorbreak

d

dsh-armorbreak

Identified★ 2

DeepSeek Harness ArmorBreak (Armor Break Mode): authorized reverse-engineering & security-research agent preset. 39 offline capabilities, L0–L3 policy engine, evidence-chain reports. MIT.

ArmorBreak · 破甲模式

DeepSeek Harness 原生「授权逆向工程与安全研究」Agent 模式:46 个真实可执行的离线分析能力、L0–L3 代码级权限引擎、逐任务证据哈希链与可复核报告。以 Cordis Bundle + Agent preset 形式嵌入 DeepSeek Harness,不修改 Harness 核心。

Authorized Reverse Engineering & Security Research Agent — a native Agent preset for DeepSeek Harness / Cordis.

Slogan:Evidence or it didn't happen. 每一个安全结论,都必须能回到证据。

CI Version License: MIT Node DeepSeek Harness Tests Coverage Runtime deps Security policy Stars Issues

徽章说明:不展示未接入的服务指标(Docker 拉取量、第三方生态评分等);测试数/覆盖率来自本仓库可复现的 node --test 结果,CI 徽章以 GitHub Actions 实际运行为准。


目录


一、项目概览 Overview

1.1 背景与痛点

安全研究 Agent 在 2024–2026 年快速从「调用几个工具的聊天机器人」演进为「带规划与执行闭环的智能体」。但把它真正放进授权研究现场时,四类结构性缺陷会立刻暴露:

维度现有方案的典型做法后果
通用性把几十个安全 CLI 用自然语言包一层工具说明挤占上下文、依赖冲突、模型混淆参数
正确性LLM 自己「总结」工具输出无法区分观测事实与猜测;扫描告警常被当成漏洞
可追溯性日志散落在临时目录报告无法回到原始证据;复测条件不可复现
安全性只在系统提示词里写「不要越界」权限边界不落在执行层,提示注入/提示词漂移即可绕过

技术层面,DSH/Cordis 生态提供了原生扩展点(bundle patch、Agent preset、工具/技能注册、审批服务),但缺少一个把「专业能力 + 权限 + 证据」组合起来的参考实现。 工程层面,安全分析工具链普遍重依赖(JVM/原生库/规则包),在受限主机和宿主进程内不可移植。 业务层面,授权研究者需要的是可复核的结论,而不是更大声的告警;违反授权范围的自动化哪怕只有一次,也会让研究失去合法性。

ArmorBreak 的设计目标因此不是「再加一个安全 AI」,而是:

把授权边界、真实执行、证据链、可复核报告,做成 DeepSeek Harness 里一个可安装、可卸载、可审计的 Agent 模式。

1.2 项目定位

维度定位
技术层级平台扩展(Platform Extension):Cordis Bundle + Agent preset + 可选 Web 面板
运行位置DeepSeek Harness Host 进程内(与 Harness 同生命周期)
目标用户软件安全研究员、逆向工程学习者、CTF 选手、代码审计/安全开发人员、DFIR 分析人员
适用场景本地样本离线静态分析、APK 审计、PCAP 取证、源码/SBOM 审计、CTF/靶场、授权范围内的受控主动测试
不适用未授权目标的扫描/攻击、凭据窃取、隐蔽持久化、恶意代码投递、破坏性操作(L3 永久拒绝)
运行时依赖0(仅 Node 内置模块;无构建步骤、无安装脚本)

1.3 核心价值(全部可量化)

指标数值来源
真实可执行能力(capabilities)46(8 个域)armorbreak_capabilities / registry.list()
模型可见工具10(工具目录而非 42 个适配器逐一暴露)tools.js
内置技能7skills.js
可复用工作流模板9lib/core/workflows.js
自动化测试190 / 190 通过(23 个测试文件)node --test
代码覆盖率行 85.82% / 分支 62.27% / 函数 85.88%;外部适配器行覆盖 99.41%node --test --experimental-test-coverage
运行时依赖0(node:* only)package.json
360 KiB PE 静态解析(p50)binary.identify 1.72 ms / forensics.hash 0.84 msbenchmarks
PCAP 解析吞吐≈ 0.54–0.64 M packets/s(5,000 包 p50 7.8–9.6 ms)同上
目录扫描≈ 2,272 files/s(200 个 JS 文件 p50 88 ms)同上
报告生成(50 findings / 100 evidence)Markdown 4.1 ms / SARIF 3.7 ms同上
权限级别L0/L1/L2/L3 四级,代码强制;L3 无自动执行通道lib/core/scope.js、runner.js

1.4 可视化展示

① 模式状态面板(真实截图,注册在 conversation.composer.dock,读取只读路由 /armorbreak/state):

ArmorBreak status card

② 报告交付物(同一模式下多任务、多格式产出,文件名即工作流+时间戳):

Report deliverables

③ 架构全景(数据流见 §三):

                 ┌──────────────────────── DeepSeek Harness Host ────────────────────────┐
                 │  Loader composition: dsh-base → dsh-web-app → [dsh-armorbreak layer]  │
                 │                                                                        │
  Agent preset ──┼─► 破甲模式 (persona)                                                   │
  「破甲模式」    │      ├─ 8 model-facing tools  (armorbreak_*)                            │
                 │      ├─ 7 bundled skills      (ctx.skills.register)                    │
                 │      └─ standard fs/shell/compaction tooling                            │
                 │                                                                        │
                 │  Host row: armorbreak ──► 运行时单例                                     │
                 │     ├─ Capability Registry (46, contract-validated)                     │
                 │     ├─ Scope Policy (L0–L3, approvals, allowlists, rate limit)          │
                 │     ├─ Execution Runner (bounded I/O, timeout, evidence, audit)         │
                 │     ├─ Task Engine (15 states, 9 workflows)                             │
                 │     ├─ Evidence/Audit hash chains (.armorbreak/)                        │
                 │     └─ GET /armorbreak/state (read-only, redacted) ──► browser card     │
                 └────────────────────────────────────────────────────────────────────────┘

二、设计哲学与原则 Design Philosophy

2.1 核心设计理念

  1. Fail-closed(默认拒绝):没有授权就没有网络,没有审批就没有动态执行,L3 永远拒绝。
  2. Evidence-first(证据优先):任务不是一个聊天回合,而是一份可复核的工件:状态轨迹、步骤结果、证据哈希链、审计哈希链。
  3. Zero-dependency(零依赖可移植):模式必须能在任意 DSH 主机上安装即用;能力实现只使用 Node 标准库。
  4. Additive extension(增量扩展):只 insert 自己的行与 preset,不覆盖、不重构 Harness 核心;卸载后既有模式完整保留。
  5. Untrusted-by-default(被分析内容不可信):样本、日志、PCAP payload、源码注释中的「指令」一律视为数据,不改变任务/范围/安全规则。
  6. Honest verification(诚实的验证等级):observed / corroborated / hypothesis / unverified 四级;扫描告警永远不自动升级为确认漏洞。

2.2 核心设计准则(6 条,含工程落地)

#准则工程化落地
1权限必须由代码而非提示词强制ScopePolicy 校验路径/网络/审批;ExecutionRunner 是唯一执行入口;测试覆盖允许与拒绝分支
2每次执行都必须可重放每条证据记录目标 SHA-256 + 摘录;JSONL 哈希链(prevHash)防篡改;报告引用 evidence id
3输入与输出都必须有界输入默认 32 MiB、单文件 4 MiB、结果 256 KiB、findings 200、字符串 1,000;超限标注 truncated
4命令必须参数化,不拼 shell外部进程只用 execFile(argv);镜像/命令模板固定;子进程环境变量白名单
5目录读取必须 realpath 收敛目录根与读取目标均 realpath 双向校验;符号链接/junction 逃逸拒绝;listFiles 不枚举符号链接
6模式必须可拆卸bundle 只 insert 两行;remove_bundle 后 4 个 shipped preset 完整保留(生命周期测试覆盖)

2.3 技术选型与 Trade-off

决策选型备选方案取舍理由
实现语言纯 ESM JavaScript(Node 24)TypeScript + 构建DSH 直接加载源码,零构建链意味着安装/升级/审计路径最短;JSDoc 提供类型信息
运行时依赖0js-yaml / schema 校验库 / SQLiteprofile 安装时会执行 pnpm,依赖会引入网络/版本冲突;用内置实现换取可移植性
持久化工作区内 JSONL + 原子写SQLite / 外部 DB无原生模块依赖;证据按工作区存储、可直接审计;用哈希链补偿无事务
权限边界进程内策略引擎 + 平台审批依赖 OS 沙箱Host 进程本身在宿主沙箱内;ArmorBreak 在宿主之上再加任务级范围与审批,纵深防御
外部工具探测 + 安装指引(v1)立即封装 Ghidra/JADX 等外部工具版本/许可证/输出格式差异大;先把纯 JS 能力与证据链接通,再逐个适配
UIcomposer dock 状态卡独立全屏工作台不替换 app root、不独占导航;v1 只读展示,操作通过对话工具完成
目录型能力显式 targetKind 契约运行时猜测v1.0.2 的真实缺陷证明猜测会静默失败;显式声明 + 规划期校验

三、核心架构 Core Architecture

3.1 分层架构

层组件职责边界交互协议
L-Agent Personacordis.patch.yml → @deepseek-ai/dsh-persona身份、硬边界、证据纪律、工作方法system prompt sections
L-Skillsskills.js + skills/*.md7 个专业领域方法论,按需加载ctx.skills.register
L-Toolstools.js10 个模型工具:参数校验、审批桥、结果渲染ctx.tools.register
L-Corelib/core/*能力注册、策略、任务状态机、执行、证据、报告、健康纯 JS API(无 Cordis 依赖)
L-Analyzerslib/analyzers/<domain>/manifest.js46 个能力实现,统一 run(input) 契约进程内函数调用
L-Hostindex.js运行时单例接线 + 只读状态路由ctx.webServer.register
L-UIclient.js状态卡(能力/隔离/策略/任务)window.__ModuleLoader__ + Slot
L-Storage工作区 .armorbreak/任务、证据、发现、报告、审计原子写 + JSONL

3.2 核心数据流(一次真实分析的生命周期)

sequenceDiagram
    autonumber
    participant U as Operator / Model
    participant T as Tool (armorbreak_analyze/workflow)
    participant R as ExecutionRunner
    participant P as ScopePolicy
    participant A as ApprovalService
    participant C as Capability
    participant E as EvidenceStore
    participant D as AuditLog
    participant F as Files (.armorbreak)

    U->>T: capability + target + workspace
    T->>R: runCapability(task, capabilityId, ...)
    R->>R: prepareTask: CREATED→SCOPE_VALIDATION→ENVIRONMENT_CHECK→PLANNING
    alt L0 offline
        R->>P: checkFile(realpath containment)
    else L1 dynamic
        R->>P: checkExecution(isolation available?)
        R->>A: request(allowed-once)
        A-->>R: grant / reject
    else L2 active
        R->>P: checkNetwork(target, authorization, approval, rate)
    else L3
        R-->>T: PolicyDenied(L3_DENIED)
    end
    R->>C: run(boundedInput)
    C-->>R: {summary, data, findings, evidence}
    R->>E: appendEvidence (SHA-256 + hash chain)
    R->>E: addFinding (fingerprint dedupe)
    R->>D: append capability.run.start/end (redacted)
    R->>F: atomic writes
    R-->>T: normalized result
    T-->>U: bounded Markdown + structured data
    Note over R,F: finalize: VERIFYING→REPORTING→COMPLETED/PARTIAL_SUCCESS

异常路径:策略拒绝 → 任务 REJECTED(不执行);能力抛错 → 步骤 FAILED,其余独立步骤继续, 最终 PARTIAL_SUCCESS 且证据保留;超时/取消 → TIMED_OUT / CANCELLED。

3.3 核心模块拆解

模块文件职责关键实现
Runtimeruntime.js进程级单例、工作区上下文、状态快照globalThis[Symbol.for('dsh.armorbreak.runtime')] 防重复模块代际
Registrycapabilities.js扫描/校验 manifest、诊断、依赖描述契约校验:id/title/description/riskLevel/params/run;失败不阻断其他域
Scopescope.js授权记录签名、路径/网络校验、审批、限速realpath 边界、CIDR/通配符/端口匹配、token bucket
Runnerrunner.js唯一执行入口策略门 → 有界输入 → 超时/取消 → 结果归一化 → 证据/审计
Taskstasks.js15 状态机、步骤、持久化合法迁移表;非法迁移抛错;原子写 + 文件互斥
Evidenceevidence.js证据链、发现去重/验证指纹 `sha256(title
Auditaudit.js审计哈希链、脱敏prevHash 链;敏感键/值统一 REDACT
Reportsreports.jsMD/HTML/JSON/SARIF/PDFSARIF 2.1.0;PDF 经本地 LibreOffice;时间戳命名不覆盖
Healthhealth.js外部工具探测、隔离检测、环境快照PATH/GHIDRA_HOME 探测;Docker daemon 探活;版本探测超时 1.5s
Workflowsworkflows.js9 个可复用模板目录/文件/无目标三类;规划期 target-kind 校验

3.4 关键时序:审批与拒绝

flowchart TD
    A[工具调用 L1/L2 能力] --> B{审批服务可用?}
    B -- 否 --> R1[FAIL CLOSED: APPROVAL_REJECTED]
    B -- 是 --> C[ctx.approval.request]
    C --> D{outcome == allowed-once?}
    D -- 否 --> R1
    D -- 是 --> E[ScopePolicy.recordApproval]
    E --> F{scope 校验通过?}
    F -- 否 --> R2[PolicyDenied: OUT_OF_SCOPE / APPROVAL_MISMATCH]
    F -- 是 --> G[consume approval + rate token]
    G --> H[execute capability]

四、核心技术原理 Technical Principles

4.1 创新点总览

创新点与业界现有方案的本质差异
Capability Contract + Runner 单一咽喉大多数 Agent 工具直接调 CLI;这里所有执行经过一个可测试的策略/证据管线
证据哈希链 + 审计哈希链扫描器通常只有日志;这里每个结论可回到带 SHA-256 的不可静默篡改记录
L0–L3 四级能力闸常见做法是 shell 审批 + 提示词;这里按能力风险级别做结构化策略(路径/网络/隔离/审批/限速)
Directory-target 规划期校验从真实缺陷中提炼:能力显式声明 targetKind,规划阶段 fail-fast,而不是运行时猜
零依赖纯 JS 解析器族在 Harness 进程内直接可用,无 JVM/原生依赖;外部工具作为可选增强

4.2 策略引擎的代数模型

风险格:能力风险 r ∈ {L0, L1, L2, L3},任务风险取步骤最大值:

riskMax = max_{s ∈ steps} risk(capability(s))        // L0 < L1 < L2 < L3

执行许可(allow(task, cap)):

allow = 
  (r = L0) ∧ (pathAllowed(target) ∨ authorizedPath(target))
∨ (r = L1) ∧ isolationAvailable ∧ approvalGranted(task, target) ∧ pathAllowed(sample)
∨ (r = L2) ∧ authorizedNetwork(target) ∧ approvalGranted(task, target) ∧ rateToken(target)
∨ false                                    // r = L3 恒 false

路径约束(防符号链接/目录穿越):

resolved = realpath(target exists ? target : resolve(target))
allowedPath ⇔ inside(realpath(workspace), resolved) ∨ ∃ a ∈ authorizations: inside(realpath(a.path), resolved)
denySensitive(resolved) ⇔ resolved ∈ {System32, SysWOW64, /proc, /sys, /dev, /etc/shadow, …}

网络匹配支持精确主机、*.domain、IPv4/IPv6 CIDR、可选端口;端口作用域模式不匹配端口未知的目标:

match(pattern, target) =
  portOK(pattern.ports, target.port)
  ∧ ( target ∈ CIDR(pattern)                      if pattern is CIDR
      ∨ target.host = pattern.host                 if exact
      ∨ target.host endswith "." + pattern.domain  if "*.domain" )
portOK(ports, p) = ports = ∅ ∨ (p ≠ null ∧ p ∈ ports)

令牌桶限速(每 host,容量 20,补充 0.5 token/s):

tokens(t) = min(C, tokens(t₋₁) + elapsed × ρ)
allow = tokens ≥ 1; tokens -= 1

4.3 哈希链结构

审计与证据都是追加 JSONL;第 n 条记录:

record_n = { seq:n, at, prevHash: hash_{n-1}, payload }
hash_n   = SHA256(prevHash + "\n" + canonicalJSON(record_n \ {hash}))

verify: ∀n: record_n.prevHash = hash_{n-1} ∧ SHA256(...) = hash_n

canonicalJSON 对对象键排序,避免序列化差异导致误判。并发安全由按文件互斥队列保证:

mutex(file):  tail = prior.then(() => gate)
append:       await prior; tail' = readTail + compute + write; release

4.4 无损 JSON 净化(Tool Output Contract)

Harness 的审计通道只接受无损 JSON。工具输出在出口执行深度投影:

toLosslessJson(value):
  null | string | finite number | boolean | array | plain object → 保留
  function | symbol | undefined → 丢弃
  bigint → decimal string
  Date → ISO string
  TypedArray → { type:'bytes', length }
  cycle → "[circular]";   depth > 12 → "[depth-limit]"

该函数由 tests/tools-lossless.test.mjs 递归验证;它也是真实故障(value is not lossless JSON)的修复产物。

4.5 有界解析与复杂度

能力族算法复杂度硬上限
哈希crypto.createHash 流式O(n)输入 32 MiB
PE/ELF/Mach-O头/节表线性扫描 + 字符串提取/排序O(n log n)字符串 1,000
PCAP/PCAPNG单遍包解析 + 5 元组哈希表O(packets + flows)items 300
SAST逐行 59 条规则 × 文件O(files × rules)files 2,000 / file 4 MiB
CTF 解码变换链,深度上限O(depth × n)depth 8
YAML 子集递归下降,深度上限O(tokens)flow 64 / node 128

4.6 性能优化(含实测收益)

优化机制实测效果
单遍解析binary.identify 一次扫描完成格式/节/导入/字符串索引360 KiB PE 1.72 ms
哈希复用forensics.hash 一次遍历喂多个 hash 实例360 KiB 0.84 ms ≈ 417 MB/s
目录扫描按需读取env.listFiles 只枚举、env.readFile 按文件大小上限读取200 文件 88 ms ≈ 2,272 files/s
有界结果输出 256 KiB 截断 + 深度裁剪,避免大对象序列化报告生成 4 ms 级
原子写<file>.tmp + rename,避免半写文件崩溃后 JSON 可解析
进程内互斥按文件 promise 队列,取代跨进程锁并发 30 次审计 append 链仍连续(测试)
惰性能力加载manifest 动态 import,按域加载冷启动 62.8 ms(39 能力)

已知性能瓶颈(诚实记录):一次完整的 runner 调用约 36 ms,其中解析仅 0.8 ms, 其余是任务状态/证据/审计的持久化。批量场景应复用任务而非每样本建任务(路线图 R1)。

4.7 高可用与一致性(单进程语义)

ArmorBreak 不是分布式服务;它的一致性模型是单 Host 进程内的顺序持久化:

  • 任务状态机非法迁移直接抛错,不会产生「不可能状态」;
  • 证据/审计链只追加,篡改可检测;链损坏会在报告与工具结果中显著标注;
  • 原子写保证崩溃后文件要么是旧版要么是新版;
  • 进程内互斥保证并发工具调用不 fork 链;
  • 不支持多 Host 进程同时写同一工作区(未加跨进程文件锁);已知限制见 docs/known-issues.md。

五、安全设计 Security

5.1 威胁模型

资产威胁等级缓解
宿主文件系统路径穿越 / 符号链接 / junction 逃逸高realpath 双向校验、敏感路径拒绝、目录枚举跳过链接
宿主网络未授权主动探测高L2 授权目标白名单 + 平台审批 + 限速;默认拒绝
样本执行未知样本在宿主执行高L0 不执行;L1 仅一次性容器(network none/read-only/cap-drop)+ 审批
模型上下文被分析内容提示注入高内容视为数据;persona 约束;输出控制字符剥离;工具不做内容驱动的范围变更
证据/审计完整性静默篡改、并发断链中高哈希链 + 并发互斥 + 链校验
凭据/敏感数据日志、报告、UI 泄露中高统一脱敏 [REDACTED];状态路由只读脱敏;无凭据入参设计
审批伪造模型自我批准高只有平台 ctx.approval.request 的 allowed-once 才记录;无通道 fail-closed
L3 能力误用破坏/外传/持久化严重无授权路径、恒拒绝、无自动通道

5.2 纵深防御体系

  1. 身份层:mode 选择 + persona 硬边界(但边界执行不依赖它)。
  2. 策略层:ScopePolicy 路径/网络/审批/限速。
  3. 执行层:ExecutionRunner 单一咽喉;能力无法绕过 runner 获得输入。
  4. 数据层:有界读取、输出截断、脱敏、哈希链、原子写。
  5. 展示层:只读路由 + 脱敏快照;不提供任何执行入口。
  6. 宿主层(委托):DSH 自身的 sandbox/approval/persistence;ArmorBreak 不替代宿主沙箱。

5.3 安全审计与合规

  • 代码审计:node --test(146 用例)覆盖策略允许/拒绝、路径逃逸、并发链、脱敏、YAML 原型污染;
  • 依赖漏洞:零运行时依赖,无第三方供应链面;
  • 数据合规:全部数据留在本机工作区,不上传;报告可导出;
  • 参考标准映射:OWASP ASVS(输入校验/访问控制/日志)、CWE 映射、CVSS 4.0 评分依据、SARIF 2.1.0 输出; 不宣称通过等保/GDPR/SOC2 认证(本地工具,无云服务)。

5.4 漏洞披露

见 SECURITY.md:GitHub 私密安全公告或邮件;72h 确认、7 天分诊、高危 30 天内修复计划、默认 90 天协调披露;致谢机制。


六、关键特性 Key Features

6.1 基础能力层(离线、零依赖)

能力技术实现要点适用场景
PE/ELF/Mach-O 识别头/节/架构/入口/导入导出/加壳启发式/overlay样本初筛、格式确认
字符串与熵ASCII + UTF-16LE 分类提取;块/节熵加壳/混淆判断(hypothesis)
哈希与元数据MD5/SHA-1/SHA-256/SHA-512;PE/ELF/ZIP/PNG/JPEG/PDF 元数据证据固定、时间线
APK 审计ZIP 中央目录 + AXML + DEX + v1/v2/v3 签名块移动应用静态评估
PCAP 取证pcap/pcapng、Ethernet/raw-IP/SLL、TCP/UDP、DNS/TLS 元数据/明文 HTTP流量取证、IOC
HAR/OpenAPI安全头/Cookie/CORS/认证/参数审计;YAML 子集解析Web API 审计
SAST/供应链59 条规则、7 语言、密钥检测、依赖盘点、CycloneDX SBOM、补丁建议代码审计
CTF编码分类/递归解码/哈希识别/古典密码/flag 扫描CTF/靶场
# 例:单能力执行(模型工具调用)
armorbreak_analyze {
  "capability": "binary.identify",
  "target": "D:\\work\\sample.exe",
  "workspace": "D:\\work"
}

6.2 高级能力层(差异化)

  • 9 个工作流:BinaryStaticAnalysis、AndroidAPKReview、WebCodeSecurityReview、 PCAPInvestigation、DependencyAudit、CTFArtifactAnalysis、ForensicFileReview、 WebAPIReview、SecurityReportGeneration。
  • 15 状态任务机:规划期 target-kind 校验、失败保留、部分成功、取消/超时。
  • 证据/审计双哈希链:报告自动附带链校验结果。
  • 授权 + 平台审批:真实 ctx.approval.request 桥接,无通道 fail-closed。
  • 状态卡:宿主 Web UI 内展示能力/隔离/最近任务(只读、脱敏)。
armorbreak_workflow action=start workflow=WebCodeSecurityReview \
  target="D:\\repo" workspace="D:\\work"
→ plan: 4 steps (sast.scan/secrets/deps/sbom), targetKind=directory
armorbreak_workflow action=run taskId=task_...
→ 4/4 DONE, evidence N, findings M, report path

6.3 企业级特性(可运维、可审计)

特性实现
可复核性任务 JSON + 证据 JSONL + 审计 JSONL + 报告(时间戳命名,不覆盖)
可运维性健康检查(环境/隔离/外部工具/策略)、能力诊断、清理脚本
可扩展性新增能力只需新增 manifest + 测试(契约校验自动接入)
可拆卸性bundle remove 后既有 preset 完整保留
升级安全源码安装语义清晰:link/reinstall + 重启模块代际

6.4 生态扩展能力

  • DSH 生态:作为 Cordis Bundle / Agent preset 注册,见 docs/marketplace.md。
  • 外部工具适配:探测 + 安装指引(当前版本);适配器接口已在契约中预留。
  • UI 扩展:dsh.client + Slot 注册;可继续扩展任务工作台/工具中心。
  • 报告互操作:SARIF 2.1.0(CI/代码扫描平台)、CycloneDX SBOM、Markdown/HTML/JSON。

七、技术栈 Tech Stack

层技术版本选用原因
语言/运行时JavaScript (ESM) / Node.jsNode ≥ 22(验证于 24.21 / 24.16)DSH 同运行时;零构建;node: 内置即可完成所有解析
扩展框架Cordis4.0.xDSH Host 的组合/服务/生命周期模型;只用其稳定契约
Harness 集成@deepseek-ai/dsh-agent-preset, dsh-tools, dsh-skill, dsh-host-webserver, dsh-user-approval0.2.1-rc.2官方扩展点:preset、工具、技能、审批、Web 路由
持久化文件系统 JSON/JSONL + 原子 rename—无原生模块;可直接审计;工作区自包含
测试node:test + node --experimental-test-coverage24与运行时同栈;零依赖;CI 无安装步骤
CI/CDGitHub Actionsactions/checkout@v4, setup-node@v4双平台(Ubuntu/Windows)跑测试、覆盖率与基准
可观测性审计/证据 JSONL、任务状态轨迹、报告、/armorbreak/state—本地优先:无外部 APM/遥测依赖;数据不出机器
UIdsh.client 浏览器模块(React from module table)—与官方 UI 同栈、同 Slot 机制;主题 token 自动适配
外部工具(可选)Ghidra / Rizin / YARA / JADX / apktool / adb / Frida / Semgrep / CodeQL / Trivy / Syft / Gitleaks / TShark / Zeek / Suricata / Nmap / Volatility3 / capa / FLOSS / Docker / LibreOffice探测不打包、不静默安装;缺失时给出安装指引与内置替代

八、性能基准 Benchmarks

完整方法、环境与复现命令见 docs/benchmarks.md;原始数据 benchmarks/results.json。

8.1 测试环境

Intel Core Ultra 9 290HX Plus(24C/24T,2.70 GHz)· 63.68 GiB RAM · Windows 11 x64 · Node v24.16.0 · ArmorBreak v1.0.3(39 capabilities / 8 domains)· 样本 notepad.exe 360,448 B · 合成 PCAP 5,000 包/700,024 B · 合成 JS 项目 200 文件。

8.2 核心结果(p50,parser 级)

路径p50p95吞吐推导单位成本
forensics.hash 360 KiB0.842 ms0.956 ms1,157 ops/s≈ 417 MB/s
binary.identify 360 KiB PE1.718 ms2.349 ms545 ops/s≈ 210 MB/s
binary.strings1.631 ms2.309 ms569 ops/s≈ 221 MB/s
binary.entropy2.558 ms2.878 ms386 ops/s≈ 139 MB/s
network.pcap_overview 5k 包7.770 ms10.605 ms121 ops/s≈ 643k packets/s
network.flows 5k 包9.592 ms11.201 ms108 ops/s≈ 540k packets/s
sast.scan 200 文件88.020 ms123.599 ms10.7 ops/s≈ 2,272 files/s

8.3 端到端与报告

路径p50p95说明
forensics.hash 经 runner36.379 ms40.448 ms含任务状态/证据/审计持久化
BinaryStaticAnalysis(7 步)483.186 ms492.990 ms含默认报告生成
能力注册表冷启动62.83 ms—39 能力契约校验
报告 Markdown / HTML / SARIF4.1 / 4.0 / 3.7 ms≤5.2 ms50 findings + 100 evidence
进程内存RSS 257.3 MiB / heap 26.3 MiB—全量基准后

8.4 横向与纵向对比

  • 横向:本机未安装 Ghidra/Semgrep/TShark 等外部工具,因此只做架构维度定性对比(依赖、离线默认、证据链、策略、可移植性),不伪造性能数字;见 benchmarks 文档 §5。
  • 纵向:v1.0.0 → v1.0.3 测试 128→146,核心覆盖率 84.9%→85.6%,runner 覆盖率 88.55%→93.65%,并发互斥引入的额外开销为每次 append 一次 promise 队列(µs 级,低于文件 I/O 抖动)。

8.5 复现

node benchmarks/bench.mjs --sample /path/to/sample.exe --out benchmarks/results.json
node --test --experimental-test-coverage

九、快速开始 Quick Start

9.1 环境要求

  • DeepSeek Harness Desktop 0.2.1-rc.2(或同版本 CLI profile);Node 24 随 Harness 提供。
  • 本机文件系统可写(任务数据写在工作区 .armorbreak/)。
  • 可选:Docker(L1)、LibreOffice(PDF)、外部安全工具(增强)。

9.2 一分钟安装(Desktop)

git clone https://github.com/LYL-Z/dsh-armorbreak.git D:\tools\dsh-armorbreak
# 打开 DeepSeek Harness → 设置 → 插件 → 添加插件 → 选择 D:\tools\dsh-armorbreak
# 或让 Agent 执行:plugin_manager action=install_bundle target="D:\\tools\\dsh-armorbreak"

新建会话 → 模式选择 → 破甲模式。输入框下方会出现状态卡。

9.3 第一个分析

调用 armorbreak_health 检查环境;
然后创建任务并用 BinaryStaticAnalysis 工作流分析 D:\samples\hello.exe;
最后生成 markdown 报告并汇报:任务 id、状态、证据数、发现数、报告路径。

预期(真实输出形状):

任务 task_xxx → COMPLETED;证据 ≥7;发现 ≥0;
报告:D:\work\.armorbreak\tasks\task_xxx\reports\binarystaticanalysis_<ts>.md

9.4 常见启动问题

症状原因处理
模式列表没有「破甲模式」bundle 未安装/未选择,或未重启加载新模块代际plugin_manager list_bundles;安装返回 applied;完全重启 Harness
状态卡不出现非 Web 组合(headless/TUI)或路由未注册桌面/Web profile 才有该卡片;/armorbreak/state 应 200
安装报 already-installed同版本已安装先 remove_bundle 再安装新版本
目录工作流失败v1.0.0 的已知缺陷升级到 v1.0.2(TARGET_KIND_MISMATCH 规划期校验 + 目录能力声明)

十、安装与部署 Installation & Deployment

10.1 多形态安装

形态命令/入口说明
DSH 面板设置 → 插件 → 添加插件 → 本地目录 / github:LYL-Z/dsh-armorbreak推荐;安装后 applied 即可用
plugin_managerplugin_manager action=install_bundle target=...Agent 会话内安装;返回 application 为准
CLI(非 desktop profile)dsh plugin --profile <p> add github:LYL-Z/dsh-armorbreak开发/测试 profile
本地源码(开发)克隆后 install_bundle/link:零构建步骤,改完重启即生效

为什么没有 Docker / Kubernetes / Helm 部署:本项目是 Agent 宿主进程内的扩展, 不是独立网络服务。它的「部署拓扑」就是 DSH 本身的拓扑(单 Host 进程 + 一个 profile)。 容器化的合理形态是把「DeepSeek Harness + profile + 本 bundle」整体放进容器,而不是单独容器化本 bundle; 本仓库不发布 Docker 镜像,也不宣称支持 K8s——这是设计边界,不是待办事项。

10.2 生产部署建议(单机研究工作站)

┌─────────────── Workstation ───────────────┐
│ DeepSeek Harness Desktop (single process) │
│  ├─ profile: desktop                      │
│  ├─ dsh-armorbreak bundle (source-linked) │
│  ├─ workspace: D:\research\case-001       │
│  │    └─ .armorbreak/{tasks,audit.jsonl}  │
│  ├─ isolation: Docker (optional, L1)      │
│  └─ reports: per-task reports/ (MD/HTML/…)│
│                                            │
│ external tools: optional, PATH-detected    │
└────────────────────────────────────────────┘
  • 数据目录:任务/证据属于用户资产,随工作区管理;不要把 .armorbreak/ 提交到仓库。
  • 权限:L1/L2 依赖平台审批策略;桌面默认权限预设可能为 danger-full-access,但 ArmorBreak 的 L0–L3 闸门独立生效(不继承宽松策略)。
  • 容量规划:每任务证据/报告通常为 KB–MB 级;批量分析需定期清理旧任务(见 known issues)。
  • 灾备:备份工作区即可;证据哈希链可独立校验(armorbreak_evidence action=chain)。

10.3 配置全解

配置位置默认说明
Personacordis.patch.yml → persona.prefix内置专业身份、硬边界、证据纪律
工具集cordis.patch.yml → preset pluginsfs/shell/skills/compaction + armorbreak可按需裁剪/扩展
客户端面板package.json → dsh.clientweb/immediatelyclient.js 状态卡
Runner 限制lib/core/runtime.js → limits32 MiB / 4 MiB / 256 KiB / 60s输入、单文件、结果、超时
策略状态$DSH_HOME/armorbreak/policy.json空授权与审批记录(带签名)
工作区工具参数 / process.cwd()会话目录回退任务数据根
外部工具PATH / GHIDRA_HOME自动探测缺失仅提示,不阻断 L0

10.4 升级与回滚

  1. 升级:remove_bundle → install_bundle(或替换源码后重启);新版本会保留既有工作区数据。
  2. 回滚:重新安装旧 tag 源码;任务/证据格式向后兼容(JSON),报告可重新生成。
  3. 兼容性:docs/compatibility-matrix.md 记录已验证的 DSH/Cordis/Node 版本;低版本 DSH 缺少 dsh-agent-preset 时 preset 行无法加载(明确失败,不静默降级)。

十一、使用指南 Usage

11.1 9 个模型工具(API 摘要)

工具关键参数行为
armorbreak_healthworkspace?, probeVersions?环境/隔离/策略/外部工具探测
armorbreak_capabilitiesdomain?, capability?, probeDependencies?能力目录/单能力 schema
armorbreak_scopeaction=list/authorize/revoke, purpose, operator, paths?, networkTargets?, riskCeiling?授权记录管理
armorbreak_taskaction=create/list/get/cancel/note/finalize, targetPath?, workflow?任务生命周期
armorbreak_analyzecapability, target?, options?, taskId?, workspace?单能力执行(L0 自动 / L1-L2 需审批)
armorbreak_workflowaction=list/start/run/status/cancel, workflow, target, maxSteps?多步骤模板执行
armorbreak_evidenceaction=list/get/verify/chain, taskId, findingId?, verification?证据/发现/链校验
armorbreak_reporttaskId, format=markdown/html/json/sarif/pdf报告导出

11.2 工作流清单

工作流目标类型步骤输出重点
BinaryStaticAnalysisfile7格式/结构/符号/字符串/熵/哈希/IOC
AndroidAPKReviewfile5APK 结构/Manifest/DEX/签名/发现
WebCodeSecurityReviewdirectory4危险调用/密钥/依赖/SBOM
PCAPInvestigationfile7总览/会话/DNS/TLS/HTTP/IOC/异常
DependencyAuditdirectory3依赖盘点/SBOM/密钥
CTFArtifactAnalysisfile4分类/哈希/古典密码/flag
ForensicFileReviewfile6类型/哈希/元数据/时间线/IOC/规则
WebAPIReviewfile2OpenAPI/HAR
SecurityReportGenerationnone0报告生成

扫描降噪(v1.0.3+):sast.scan / sast.secrets / sast.deps / sast.sbom 支持可选 excludePaths(按路径子串、大小写不敏感),用于排除规则文件、测试夹具、文档示例等已知噪声,例如:

{ "capability": "sast.scan", "target": "D:\\repo", "workspace": "D:\\work",
  "options": { "excludePaths": ["tests/", "lib/analyzers/sast/rules.js", "docs/known-issues.md"] } }

排除只影响文件枚举,不改变规则、不降低其他文件的覆盖;被排除数量可在结果 data.excludedCount 核对。

11.3 典型场景

场景 A:恶意样本初筛(离线,不执行)
1) armorbreak_workflow action=start workflow=BinaryStaticAnalysis target="D:\samples\x.exe" workspace="D:\cases\001"
2) armorbreak_workflow action=run taskId=<id>
3) armorbreak_report taskId=<id> format=markdown

关注:加壳启发式(hypothesis)、导入 API 组合、IOC、overlay;报告会标注 verification。

场景 B:Web 源码与依赖审计
armorbreak_workflow action=start workflow=WebCodeSecurityReview target="D:\repo" workspace="D:\cases\repo-audit"
armorbreak_workflow action=run taskId=<id> maxSteps=4
armorbreak_report taskId=<id> format=sarif

目录型能力会扫描多文件并给出 CWE 映射;扫描告警默认 hypothesis,需在 armorbreak_evidence action=verify 中复核后才升级。

场景 C:授权内主动验证(L2)
armorbreak_scope action=request purpose="authorized lab validation" operator="alice" \
  networkTargets=["10.20.0.0/16"] riskCeiling=L2
# 平台向用户确认并返回 allowed-once 后:
armorbreak_scope action=activate requestId=<authreq_id>
armorbreak_analyze capability=live.http_probe taskId=<id> options={"url":"http://10.20.0.5/health"}

无授权 → NETWORK_OUT_OF_SCOPE;无平台审批 → NETWORK_APPROVAL_REQUIRED;超限 → NETWORK_RATE_LIMITED。

11.4 报告格式

格式用途备注
Markdown人读、仓库内审阅默认,含证据附录/审计摘要
HTML浏览器阅读自包含、深浅色
JSON机器处理armorbreak/report/v1 schema
SARIF 2.1.0CI/代码扫描平台每条 finding 一个 result + rule
PDF归档交付依赖本地 LibreOffice;缺失时明确报错,不伪造

11.5 错误码体系(策略与执行)

Code含义处理建议
OUT_OF_SCOPE文件目标在工作区外且无授权armorbreak_scope authorize 或复制进工作区
SENSITIVE_PATH_DENIED宿主敏感路径不允许直接分析,复制样本
TARGET_KIND_MISMATCH任务 targetKind 与能力声明不符换匹配工作流/能力(v1.0.2 规划期拦截)
TARGET_NOT_FILE / TARGET_NOT_DIRECTORY目标类型错误按提示选择目录/文件能力
ISOLATION_UNAVAILABLE无隔离提供者启动 Docker 或保持离线分析
APPROVAL_REJECTED / NETWORK_APPROVAL_REQUIRED审批拒绝/缺失通过平台审批;不要用其他工具绕过
NETWORK_OUT_OF_SCOPE网络目标未授权先授权精确目标
NETWORK_RATE_LIMITED触发限速等待补充或减少请求
TIMEOUT / CANCELLED超时/取消拆分任务/调整预算
PATH_ESCAPE目录读取越界(含链接)视为安全事件,检查样本目录
L3_DENIEDL3 操作永远拒绝,无替代通道

十二、治理与社区 Governance

  • 贡献流程:阅读 CONTRIBUTING.md → fork → 分支 → node --test 全绿 → PR; PR 必须包含问题、根因、修复、验证命令与真实结果、剩余限制。
  • 提交规范:Conventional Commits(feat(domain): / fix(core): / docs: / test:)。
  • 贡献者阶梯:Contributor(被合并 PR)→ Reviewer(持续高质量评审)→ Maintainer(发布与安全响应); 安全修复遵循 SECURITY.md 私有渠道。
  • 行为准则:CODE_OF_CONDUCT.md(Contributor Covenant 2.1)。
  • 交流渠道:GitHub Issues(缺陷/功能)、Discussions(问答/设计讨论)、安全公告(私密)。
  • 响应期望:issue 首次响应 ≤ 3 个工作日;安全报告按 SECURITY.md 时效。
  • 版本策略:SemVer;PATCH=修复,MINOR=新能力,MAJOR=破坏性契约变更;每个 release 附验证结果。

十三、路线图 Roadmap

13.1 已完成

版本主题关键结果
v1.0.0最小可用模式 + 离线能力核心bundle/preset/工具/技能/39 能力/策略/证据/报告/状态卡;128 测试
v1.0.1真实会话缺陷修复无损 JSON、会话工作区解析;132 测试
v1.0.2目录路由 + 并发 + 加固目录工作流可用、targetKind 规划校验、哈希链并发安全、UTF-8/realpath/端口/YAML 加固;145 测试
v1.0.3扫描降噪sast.* 新增可选 excludePaths(按路径子串排除规则文件/测试夹具/文档示例);146 测试,向后兼容
v1.0.4安全维护(Stage A)移除绕过 L0–L3 的通用工具、新增策略内 armorbreak_files、授权 request→平台审批→activate、HTTP 固定 IP/流式截断、容器镜像 digest/allowlist、状态接口 loopback-only;153 测试
v1.1.0 Stage B(分支)外部工具适配器首批sast.semgrep / sast.trivy JSON 归一化;L1 Docker 真机验证通过(busybox digest,非 root/只读/无网络);160 测试
v1.1.0 Stage C/D/E(分支)DAG/后台任务/恢复 + 只读工作台 + CI/E2E依赖图、队列、取消/恢复、任务/工具路由、三页签状态卡、Docker CI job、mock-model E2E;174 测试
v1.1.0 Stage D2(分支)工作台写操作/证据/报告/工具探测L0 新建/取消/重试/恢复、证据中心、报告预览、工具版本探测;177 测试
v1.1.0(发布)Research WorkbenchA/B/C/D/D2 全部合并;会话级工作区绑定(首次工具调用后生效);178 测试;真实模型 GUI/浏览器视觉验证未完成
v1.2.0(发布)Advanced Research4 个真实适配器、provider-backed L1 门、真实 L2 loopback、工作台环境/证据/报告、190 测试
v2.0.0(发布)Security Research V2L0–L3 策略网关、46 能力/9 工作流、真实 Garak/PyRIT/JailbreakBench、Ed25519 供应链、事务化安装/回滚、真实 Desktop GUI E2E;278 测试
v1.1.1(发布)热修复修复状态卡 TDZ 崩溃与 external 分析器诊断;真实模型 GUI 验证 armorbreak_health 成功;178 测试

13.2 当前规划(v1.1)

  • 模型驱动 E2E:headless + 本地 LLM mock(OpenAI-compatible SSE)验证「模式选择 → 工具调用 → 证据/报告」全链路。
  • 外部工具适配器 v1:Ghidra/JADX/Semgrep/TShark/Trivy/Syft 的 argv 数组调用 + JSON 输出解析 + 版本依赖检查。
  • UI 工作台:任务/工具/证据中心页面(基于现有 Slot 体系),报告预览。
  • 批量分析:一个任务多目标,减少 per-sample 任务持久化开销(当前 36 ms/次)。
  • 报告 i18n:英文报告模板。

13.3 中长期

  • 隔离提供者抽象(Docker/Podman/WSL2/VM),容器网络 egress 白名单;
  • L2 主动测试能力扩展(模板化 HTTP 探测、速率/并发策略、Nmap/Nuclei 适配);
  • 可选的离线漏洞库接入(OSV/NVD),在此之前永不输出「已确认 CVE」;
  • 跨平台真机验证(macOS/Linux)、Windows junction/reparse point 完整语义;
  • 证据包导出(可独立验证的审计包)与团队审批记录。

13.4 待探索

  • 与 DSH 上游的 dsh-plugin-market 索引标准化;插件签名/来源校验;
  • 模型侧上下文预算自适应(按任务复杂度选择能力描述粒度);
  • 结构化「假设 → 验证」记录(把 hypothesis 的复核过程也纳入证据链)。

十四、架构决策记录 ADR

ADR-001:零依赖纯 ESM JavaScript,而不是 TypeScript + 构建

  • 背景:DSH profile 安装会执行 pnpm;插件在被加载前需要可预测的模块形态。
  • 备选:TypeScript + 打包(类型安全);纯 JS + JSDoc(零构建)。
  • 决策:纯 ESM + JSDoc + node --test。
  • 影响:安装/升级/审计路径最短、无供应链面;代价是类型检查弱于 tsc(以契约测试补偿)。

ADR-002:Host 服务 + preset 子插件分层,而不是单插件

  • 背景:工具必须只对「破甲模式」可见;运行时状态需要进程级共享。
  • 备选:全部放 preset(每会话重复实例化);全部放 Host(污染标准模式工具目录)。
  • 决策:Host 行提供运行时/状态路由;preset 子插件注册模式专属工具/技能。
  • 影响:标准模式零污染;代价是跨作用域解析需遵循 Cordis 服务规则(已验证)。

ADR-003:代码级策略引擎,而不是提示词约定

  • 背景:安全研究的核心风险是越权;提示词可被注入/漂移绕过。
  • 决策:ScopePolicy + ExecutionRunner 作为唯一执行咽喉;L3 无代码路径。
  • 影响:模型无法通过换工具/换参数绕过;代价是策略变更需要发版(而非改提示词)。

ADR-004:工作区 JSONL + 哈希链,而不是数据库

  • 背景:需要可审计、可携带、零依赖的持久化。
  • 备选:SQLite(事务/查询)vs JSONL(可读/可校验)。
  • 决策:原子写 JSON/JSONL + 哈希链 + 进程内互斥。
  • 影响:证据可直接审计/迁移;代价是复杂查询需工具层聚合、跨进程并发不支持。

ADR-005:目录型能力显式 targetKind + 规划期校验

  • 背景:v1.0.0 因隐式默认 file 导致目录工作流 4/4 步失败(真实会话复现)。
  • 决策:能力必须声明 targetKind;规划阶段校验任务与步骤的兼容性,TARGET_KIND_MISMATCH fail-fast。
  • 影响:缺陷在规划期暴露而非运行期;代价是新能力必须正确声明类型。

十五、故障排查与 FAQ

15.1 日志与数据定位

位置内容用途
<workspace>/.armorbreak/audit.jsonl工作区审计(哈希链、脱敏)谁在何时执行了什么、策略拒绝
<workspace>/.armorbreak/tasks/<id>/task.json任务/步骤/状态轨迹失败点、耗时、计划
<workspace>/.armorbreak/tasks/<id>/evidence.jsonl证据(哈希链)结论溯源、篡改检测
<workspace>/.armorbreak/tasks/<id>/findings.json发现(验证状态)报告与复核
<workspace>/.armorbreak/tasks/<id>/reports/报告文件交付/归档

15.2 常见问题

Q1:为什么 `armorbreak_health` 曾报 “value is not lossless JSON”?

v1.0.0 的状态快照含 registry.list()(capability 对象携带函数),违反 Harness 的无损 JSON 校验。 v1.0.1 已从快照移除该字段,并在工具出口增加 toLosslessJson() 深度净化;有回归测试。

Q2:为什么目录工作流全部 TARGET_NOT_FILE?

v1.0.0 的 sast 能力未声明 targetKind,runner 默认按文件处理。v1.0.2 已声明目录能力、 规划期校验、并修正 env.readFile 返回 Buffer;真实多文件工作流测试 4/4 步通过。

Q3:为什么并发执行偶尔导致证据链断裂?

v1.0.1 及之前 read-tail → append 无序列化。v1.0.2 引入按文件互斥;并发 30 次 append 的链完整性测试通过。 仍不建议多 Host 进程同时写同一工作区(未实现跨进程锁)。

Q4:为什么需要 Docker 才能做动态分析?

L1 的执行语义是「未知样本不得在宿主执行」。没有隔离提供者时一律拒绝(ISOLATION_UNAVAILABLE), 不会降级为宿主执行。容器参数固定为无网络、只读根、丢能力、非特权。

Q5:扫描器报告了很多“漏洞”,能直接提交吗?

不能。规则命中默认 hypothesis;需要在 armorbreak_evidence action=verify 中记录复核依据后升级。 扫描自身仓库时还会命中规则定义/测试夹具(known issue),属于已知噪声。

Q6:报告 PDF 失败怎么办?

PDF 依赖本机 LibreOffice(soffice)。未安装时明确报错并建议 html/markdown;也可以安装后重试。

Q7:状态卡显示“0 个任务 / 隔离环境:docker”是什么情况?

v1.0.1 之前:隔离未可用仍显示提供者;任务按默认 cwd 统计。v1.0.2 修复为「不可用」+ 最近使用工作区。

15.3 性能排查

  • 解析慢:先用 benchmarks/bench.mjs 定位是 parser 还是持久化;
  • runner 调用慢(≈36 ms):属设计内持久化成本,批量场景复用任务;
  • 大文件:检查 truncated 标记与 limits.maxInputBytes(默认 32 MiB);
  • 目录扫描慢:调整 maxFiles/maxBytes,排除 node_modules/.git/dist(默认已排除)。

十六、生态与集成 Ecosystem & Integrations

16.1 DeepSeek Harness 生态

ArmorBreak 是 DSH 的 原生扩展:Cordis Bundle(dsh.bundle.patch)+ Agent preset (@deepseek-ai/dsh-agent-preset)+ 可选 Web 面板(dsh.client)。安装、市场指引与上游链接见 docs/marketplace.md,包括:

16.2 外部工具矩阵(可选增强)

工具用途当前接入缺失时
Ghidra / Rizin / radare2反编译/反汇编探测 + 安装指引内置结构/字符串/熵分析
YARA规则匹配探测内置简化规则匹配(hypothesis)
JADX / apktool / adb / FridaAndroid探测内置 ZIP/AXML/DEX/签名解析
Semgrep / CodeQL / Trivy / Syft / GitleaksSAST/供应链探测内置 59 规则/依赖盘点/SBOM/密钥检测
TShark / Zeek / Suricata / Nmap网络探测内置 pcap/pcapng 解析;Nmap 未接入
Volatility3 / capa / FLOSS取证探测内置文件级取证/启发式
DockerL1 隔离实际使用(需审批)L1 拒绝
LibreOfficePDF实际使用其他报告格式

16.3 扩展点

新增能力 = 新增 lib/analyzers/<domain>/manifest.js + 测试;核心通过契约自动发现。 详见 docs/CONTRACT.md。


十七、案例研究 Case Studies

以下为真实会话/路由执行记录(参考主机,非企业生产环境);数据来自任务证据与报告, 不做匿名化之外的夸张修饰。

案例 1:真实 PE 样本的 7 步静态分析

  • 目标:notepad.exe(360,448 B,SHA-256 468ffe12…4577e)
  • 路径:armorbreak_workflow BinaryStaticAnalysis
  • 结果:7/7 步 DONE,证据 21 条,发现 6 条(全部 hypothesis 或 info),报告生成; 上下文补证(Authenticode 有效、Microsoft 签名)用于降低误报而非制造结论。
  • 经验:证据链 + 验证等级让「合法系统组件」与「可疑行为组合」的区分可复核。

案例 2:目录型工作流缺陷的发现与修复

  • 现场:对源码目录执行 WebCodeSecurityReview,4 步全部 TARGET_NOT_FILE。
  • 根因:sast 能力未声明 targetKind;规划器默认 file;错误提示自相矛盾。
  • 修复:目录声明 + 规划期 TARGET_KIND_MISMATCH + env.readFile Buffer 契约 + 集成测试。
  • 经验:隐式默认值在安全工具中是缺陷源;契约显式化 + 规划期 fail-fast 比运行期试错更可靠。

案例 3:工具输出无损 JSON 故障

  • 现场:armorbreak_health 连续 3 次失败,value is not lossless JSON。
  • 根因:状态快照携带 capability 函数字段,Harness 审计通道拒绝非 JSON 值。
  • 修复:移除冗余字段 + 工具出口深度净化 + 4 个回归测试。
  • 经验:工具输出是安全边界的一部分;无损 JSON/循环引用/undefined 必须在出口统一治理。

十八、许可证 License

  • MIT License — 见 LICENSE。Copyright (c) 2026 LYL-Z。
  • 第三方组件:本项目零运行时依赖,不打包第三方库;外部工具(Ghidra/JADX/…)由用户自行安装, 各自遵循其许可证,本项目不重新分发。
  • 文档截图:docs/media/ 中的截图由项目作者/测试环境提供,随 MIT 文档许可使用。
  • 徽章服务(shields.io)与 GitHub Actions 为外部服务,不在本仓库许可范围内。

十九、致谢 Acknowledgments

  • DeepSeek Harness / Cordis 团队:提供了可扩展的 Host、Agent preset、工具/技能/审批、Web 插件体系; 本项目的全部集成点均来自其公开源码与文档。
  • 真实会话测试者 LYL-Z:在安装后的真实会话中报告了目录型工作流、并发哈希链、UTF-8、realpath、 端口匹配、YAML 原型污染等缺陷;这些反馈直接塑造了 v1.0.2。
  • 并行分析能力实现小组:binary/forensics、android/network、web/sast/ctf 三个域的实现与测试由 子代理协作完成(按 Lead 契约集成与复核)。
  • 社区生态:awesome-deepseek-harness-plugins、awesome-dsh-plugin、dsh-plugin-market 等 社区索引与市场为本项目的分发路径提供参考。
  • 灵感来源:Cordis 组合模型、OWASP ASVS/CWE/CVSS/SARIF 标准、DFIR 工具链的「证据优先」实践。

附录:文件结构与文档索引

dsh-armorbreak/
├── package.json              # Bundle 清单 + dsh.bundle/topic metadata
├── cordis.patch.yml          # Host 行 + preset-armorbreak 声明
├── index.js                  # Host:/armorbreak/state 只读路由
├── client.js                 # 浏览器:composer dock 状态卡
├── tools.js                  # 9 个模型工具 + 审批桥 + 无损 JSON 出口
├── skills.js                 # 7 个内置技能注册
├── lib/core/                 # 运行时(策略/任务/证据/审计/执行/报告/健康)
├── lib/analyzers/            # 8 个域、39 个能力(各自 manifest.js)
├── skills/*.md               # 技能正文
├── locale/{en,zh}.json       # 插件显示元数据
├── icon.svg
├── docs/                     # 审计/架构/安全模型/验收/兼容性/已知问题/路线图/市场/基准
├── benchmarks/               # 可复现基准脚本与结果
├── scripts/                  # 文件清单生成、测试临时目录清理
├── tests/                    # 178 个 node:test 用例
└── .github/workflows/ci.yml  # 双平台 CI
文档内容
环境与架构审计0.2.1-rc.2 实测 API 基线、兼容性事实
架构设计分层、Cordis 组合、执行管线、数据模型
安全模型L0–L3、授权/审批、路径/命令、隔离、审计
验收报告v1.0.3 基线:146 测试、覆盖率、安装/运行实测
v1.0.4 / Stage A 验收153 测试、P0 安全边界修复、未实现项
安全边界审计权限覆盖矩阵、SB-1..6、残余限制
迁移 v1.0.3→v1.0.4升级、回滚、兼容性
适配器契约 v2 · 工作流 v2 · 隔离提供者v1.1.0 B–E 设计(未实现)
兼容性矩阵运行时/API/平台/外部工具
已知问题25 条已确认限制与运营注意事项
性能基准环境、数据、方法、复现、限制
安装/卸载三种安装路径、故障排查
使用指南工具/工作流/场景/证据约定
市场与生态DSH 生态、市场提交、版本策略
适配器契约新增能力的接口与测试要求
版本说明v1.0.0 / v1.0.1 / v1.0.2 / v1.0.3 / v1.0.4 里程碑
贡献指南 · 安全政策贡献流程、漏洞披露
变更记录 · 文件清单版本变更、全量文件

ArmorBreak · 破甲模式
Authorized reverse engineering & security research, native to DeepSeek Harness.
Evidence or it didn't happen.

MIT © 2026 LYL-Z

Comments

Loading…