mcpField
H
harness-security-bench

harness-security-bench

github.com/ruvnet安全80.0k204 次安装今天更新
代码仓库

关于 harness-security-bench

harness-security-bench 将 metaharness-darwin 的 security bench 命令封装为技能,在带有已知漏洞与诱饵样本的基准集上评估安全检测机制。它输出总体结果、逐项门槛和基线对比,可用于夜间安全评估。

主要功能

  1. 01运行安全基准测试
  2. 02解析总体通过或失败结果
  3. 03汇总各项门槛结果
  4. 04比较基线与冠军指标
  5. 05支持失败时触发告警

适用场景

  1. 01定期评估安全检测机制
  2. 02比较不同基线与冠军结果
  3. 03基准未通过时使 CI 失败

MCP 相关

该技能面向 MCP 渗透测试维度的安全评估,但输入未说明它向 MCP 客户端暴露工具或资源。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/ruvnet/ruflo --skill harness-security-bench

安装后在 Claude Code 中输入/harness-security-bench确认已加载。

详细介绍

展示上游的 metaharness-darwin security bench 命令。这是上游自己的 ADR-155——Darwin Shield,也是 ruflo 夜间自学习安全测试框架最接近的参考实现(#2417)。

为什么这对 ruflo 的 ADR-155 很重要

ruflo 的 ADR-155 提出了三个学习循环(按维度置信度、严重性校准、自动修复出价)。循环 A 基于累积的 (finding, dimension, human_outcome) 元组进行训练,但只有当底层检测机制在已知良好语料库上收敛时,梯度信号才可靠。Darwin Shield 正是在一个包含 10 个漏洞和 9 个诱饵的真实结果集上演进该机制。每晚运行可为我们提供:

  • **经验下限:**如果 Darwin Shield 的优胜版本无法在基准语料库上达到 TPR=1/FPR=0,我们循环 A 的奖励信号就是噪声。
  • **漂移检测:**逐周比较优胜版本的适应度差异,可发现安全态势(或我们的变异器策略)发生变化的情况。
  • **基线多样性:**4 个基线(B0–B3)为我们提供 4 个锚点,用于衡量各维度置信度。

算法

实现:scripts/security-bench.mjs。

  1. 从已安装的 @metaharness/darwin 运行 metaharness-darwin security bench --population N --cycles N [--seed S](在 _darwin.mjs 中固定版本;仅当没有符合条件的已安装副本时,才进行一次缓存安装——绝不使用 npx)。
  2. 默认超时时间 = 3s × 19 次评估 × population × cycles + 30s 开销。默认 --population 2 --cycles 1 时约为 144s;--population 4 --cycles 3 时约为 12 分钟。
  3. 解析 Markdown 报告——总体 PASS/FAIL,以及各门槛的通过/失败行(门槛示例:“TPR 相较固定基线提升 ≥ 25%”、“FPR 降低 ≥ 40%”、“补丁测试通过率 ≥ 80%”、“复现成功率 ≥ 90%”、“不安全输出 = 0”、“成本增幅 ≤ 固定基线的 2×”、“超越 SOTA:优胜版本在统计上优于上一优胜版本”、“复合改进:误报重复率下降 ≥ 35%”)。
  4. 解析基线与优胜版本对比表(4 行:每个测试框架的 fitness/TPR/FPR/patchPass/repro/unsafe/cost)。
  5. 输出结构化 JSON。使用 --alert-on-fail 时,如果总体结果为 FAIL,则退出码为 1。

输出格式

{
  "success": true,
  "data": {
    "overall": { "ok": true, "icon": "✅" },
    "gates": {
      "total": 11,
      "passed": 11,
      "failed": 0,
      "details": [{ "ok": true, "criterion": "TPR improvement ≥ 25% vs fixed harness", "measured": "+150% (B2 0.4 → B3 1)" }, ...]
    },
    "baselines": [
      { "harness": "static-only", "fitness": 0.5665, "tpr": 0.3, "fpr": 1, "unsafe": 0, ... },
      { "harness": "LLM single-pass", "fitness": 0.1365, ... },
      { "harness": "fixed agent", "fitness": 0.598, ... },
      { "harness": "Darwin champion", "fitness": 0.93275, "tpr": 1, "fpr": 0, ... }
    ],
    "rawMarkdown": "...",
    "shape": { "population": 2, "cycles": 1, "seed": null },
    "durationMs": 142000
  }
}

接入 ADR-155 夜间测试框架

ADR-155 夜间工作流(根据 #2418 任务 W1.5)会将其作为主动渗透测试维度的调用之一启动——其结果将成为一条轨迹记录:

{
  "dimension": "mcp-pentest",
  "subdimension": "darwin-shield-bench",
  "champion_fitness": 0.93275,
  "champion_tpr": 1, "champion_fpr": 0,
  "gates_passed": 11, "gates_failed": 0,
  "shape": { "population": 4, "cycles": 3 }
}

循环 A 会学习:如果 darwin-shield-bench 在带种子的语料库上持续通过,则提高仅由 mcp-pentest 捕获的发现项的权重。

退出码

Code含义
0基准测试已运行(总体结果为 PASS 或 FAIL——通过 JSON overall.ok 区分),或已降级运行
1使用了 --alert-on-fail,且 overall.ok === false
2配置错误或上游基础设施故障

优雅降级

当 @metaharness/darwin 不存在时,输出 {degraded: true, reason: 'metaharness-darwin-not-available'} 并以 0 退出。

评论

支持 Markdown