Darkroom4364/Mitigrid
GitHub: Darkroom4364/Mitigrid
Mitigrid 是一个已停止的概念验证研究项目,旨在探索如何系统验证补丁和缓解措施能否阻断已知漏洞利用路径并保留合法功能,但其引擎和 CLI 从未实现,仓库仅保留研究文档与历史 OpenCEM 代码。
Stars: 0 | Forks: 0
# Mitigrid
Mitigrid 是一个开源的概念验证/研究构件,旨在
提出一种方法,用于验证声明的补丁或补偿控制
是否能在不破坏既有合法功能的前提下,阻断已声明的漏洞利用路径。
由于错过了 2026-07-24 的就绪期限,V0 闸门在 2026-07-26 记录为 **`stop`**:
Day 0 从未启动,未进行任何 V0 runtime 尝试,
也未授予任何 Docker 授权。它不是安全产品发布,且
并未授权通用的 Mitigrid 引擎、schema、runner 或 CLI。参见
[最终的 V0 闸门决定](docs/product/viability/v0/gate-decision.md)。
该仓库仍然包含历史性的 OpenCEM 实现。
## 提议的研究协议
以下内容保留了提议的实验协议,而非引擎
功能或计划中的产品工作。Mitigrid 引擎和 CLI 从未
被实现。
Mitigrid 实验需要三种类型的输入:
- 描述目标及其声明的处理方式、就绪状态和
安全限制的场景
- 尝试一条特定且已知漏洞利用路径的可信安全探针
- 执行用户仍需行为的独立正常功能测试
实验在隔离环境中启动各项处理,等待就绪,
分别运行安全探针和正常功能测试,
收集有限的观察结果,并销毁其创建的所有内容。
确定性预言机 对这些观察结果进行分类;预期的基准
答案是基本事实,不能用于伪造观察到的判定。
公认的基准参考契约对比了已知漏洞的四种明确处理方式:
- 漏洞基线
- 已修补的目标
- 有效的基础设施缓解措施
- 看似合理但无效的缓解措施
提议的 V0 设计还考虑了更小规模的运营对比:漏洞基线、
正在测试的补丁或缓解措施,以及适用于两者的合法工作流。
其输出仅仅是候选决策证据;它无法得出经过限定的 `patched` 或
`mitigated` 结论。`stop` 决定意味着它不会成为公开的引擎
契约。
对于每种处理,提议的方法会将基础设施有效性、
安全结果和合法功能结果区分开来。失败的
实验、无法访问的目标或崩溃的应用程序,绝不能成为缓解措施
起效的证据。如果就绪、探针交付、证据收集或
其他必需的 runner 操作失败,该单元将被视为基础设施
错误,而不是成功的缓解措施:其执行状态将为
`infrastructure_error`,且其限定分类将保持为
`inconclusive`。
例如,考虑一个具有已知 SSRF 路径的应用程序。安全探针
要求应用程序从私有的金丝雀服务中获取唯一的 URL,而
功能测试则要求其获取允许的内部内容服务。
Mitigrid 将针对以下情况运行相同的两项检查:
1. 易受攻击的目标,金丝雀请求应当到达这里;
2. 已修补的目标,金丝雀请求应被拒绝,但
允许的获取操作应仍然有效;
3. 在有效网络边界后方的未修补目标,金丝雀
无法访问,但允许的服务仍然可以访问;以及
4. 应用了位置错误的看似合理控制措施的未修补目标,
金丝雀请求仍然会到达这里。
金丝雀的接收情况、探针响应、正常获取结果、就绪状态
以及 runner 健康状况将作为独立证据被记录。从这些观察结果中,
分类器可以区分 `vulnerable`、`patched`、`mitigated`
和 `inconclusive`,同时在实验本身失败时单独报告 `infrastructure_error`,
而不是将每一次失败的请求都视为防护成功的证明。
Mitigrid 使用可信的复现环境和现有的 runtime。它不会发现
漏洞、生成任意漏洞利用、替代 Docker 或 VM runtime,也
不会声称系统在全球范围内不可被利用。
## 冻结的 V0 概念验证
以下内容仅作为研究背景保留了 Day 0 之前的 V0 设计;
它并未授权其计划中的工作。V0 被设计为在致力于通用
引擎之前,使用手动编写的 Docker Compose 和最小的固定
结果测试套件。其唯一的提议实验是本地网络边界/SSRF 的走查
骨架:金丝雀服务旨在提供明确的漏洞利用证据,
而单独的允许获取操作则旨在测试必须保留的合法
行为。
由于这个固定的、由仓库控制的测试套件没有实现通用的
Docker 准入边界,任何假设的 V0 结果都将是
临时的开发证据。其 Compose 定义在任何执行之前都需要进行
专门的安全审查;`internal: true` 无法将
普通的网桥与其 Docker host 隔离开来。OrbStack 本应被
排除在 runtime 工作之外,并且闸门证据本应需要一个已签名的
一次性 Linux 主机/防火墙/live-peer 配置文件,以及一个先创建后启动的
生命周期。
不授权也不会发生任何离线或 Docker 的 V0 执行。提议的 V0
主机配置本应是一次性 Linux 上的 rootful Engine;rootless
将需要单独的审查。其计划的生命周期本应
创建停止的容器、检查派生的网络事实、安装运行范围内的
防火墙并验证一个实时拥有的哨兵、启动容器、验证
边界、运行声明的工作流,然后清理并验证 Docker
和主机控制状态。
提议的走查骨架本应运行四次基准测试,并重复三次,
同时注入死目标、功能损坏、证据缺失、超时、
收集和清理失败。这些情况都不能产生 `patched` 或 `mitigated`
声明。最终的 V0 结果是 `stop`;不进行任何产品组合、独立创作或
通用引擎工作。
## 项目文档
- [最终的 V0 闸门决定](docs/product/viability/v0/gate-decision.md) 记录了
已停止、冻结的概念验证/研究状态。
- [V0 可行性冲刺](plans/2026-07-13-mitigrid-v0-viability-sprint.md)
保留了先前的证伪计划和闸门。
- [定位](docs/product/positioning.md)、[路线图](docs/product/roadmap.md)
和 [开发计划](plans/2026-07-12-mitigrid-development-plan.md) 保留了
提议的产品和实现背景;这些均不授权新的工作。
- [实验语义](docs/architecture/mitigrid-experiment-semantics.md)、
[网络边界参考设计](examples/mitigrid/network-boundary/README.md)、
[威胁模型](docs/security/threat-model.md) 和
[V0 安全附录](docs/security/v0-walking-skeleton-safety-addendum.md)
仍然是方法论和安全参考,而非 runtime 授权。
## 冻结状态
M0 保留了旧的产品边界并确定了仓库标识、
基准真实数据分离、稳定的标识符、安全的执行策略
和文档所有权。V0 在 Day 0 之前停止;它没有产生任何 runtime
证据或限定的结果。通用的 schema、Rust 领域类型、
确定性规划、runner 抽象和 Mitigrid CLI 仍未实现,且
并未纳入计划。
以下是保留作为研究背景的未执行的提议序列:
```
preserve and decide
-> falsify or validate the method with a hand-built Docker experiment
-> test one real portfolio decision and independent use
-> define and test generalized experiment semantics
-> migrate the validated experiment into an admitted Docker runner
-> measure method and corpus viability
-> validate one repeated-use integration
-> publish a maintainable benchmark
```
## 历史 OpenCEM v0.1
OpenCEM v0.1 是仓库中保留的历史计算工程
证据工作流。其实现包括 `opencem` CLI、LabTrace、
需求和测试记录导入、报告、来源溯源和证据包。
它不是当前的产品方向。
经过审计的历史快照是提交 `3e03738`,由带注释的
标签 `opencem-v0.1.0` 标记,该标签已发布到 Git 仓库。单独的
正式 GitHub Release 仍是可选的,在此不作声明。验证
细节、测试结果和源存档校验和记录在
[OpenCEM v0.1 存档记录](docs/governance/opencem-v0.1-preservation.md) 中。
历史用法和契约应从该标签中读取,而不应将其视为
Mitigrid 文档。
## 历史 OpenCEM 开发
以下工作区命令仅用于测试保留的历史 OpenCEM
实现:
```
cargo test --workspace --locked
cargo run -p opencem-cli -- --help
```
不授权任何 Mitigrid runtime 或实现命令。
## 治理
该项目采用 [Apache License 2.0](LICENSE) 授权。[CONTRIBUTING.md](CONTRIBUTING.md) 中记录了贡献
期望,[SECURITY.md](SECURITY.md) 中记录了安全
报告指南。
标签:反取证, 可视化界面, 安全评估, 文档结构分析, 概念验证, 测试框架, 漏洞缓解, 版权保护, 研究项目, 补丁验证, 通知系统