anulum/rigor-foundry
GitHub: anulum/rigor-foundry
RigorFoundry 是一款证据绑定的 Git 仓库审计与修复规划工具,通过将审查决策锚定到确切的内容寻址证据,确保审计候选对象的生成、审查和提升过程可重现且可验证。
Stars: 2 | Forks: 0
# RigorFoundry
[](https://github.com/anulum/rigor-foundry/actions/workflows/ci.yml)
[](https://github.com/anulum/rigor-foundry/actions/workflows/docs.yml)
[](LICENSE)
[](pyproject.toml)

证据绑定的代码库转换。
RigorFoundry 会对 Git 跟踪的仓库内容进行盘点,生成可重现的审计候选对象,将审查决策绑定到确切的证据上,并准备修复输入,而不会将静态启发式方法视为缺陷判定。
## 操作契约
- `scan` 是只读的,仅检查确切的 Git 跟踪清单。
- 在针对生产面进行审查之前,发现结果仍为候选对象。
- 缺失的证据是明确的;它永远不会判定为通过。
- 报告会绑定仓库 HEAD、tree、Git 对象格式、跟踪内容、策略、rule-pack,以及确切的 Git 可执行文件/版本来源。
- 每个候选对象都会针对缺失或全仓库搜索绑定确切的扫描 blob 和包含的行范围,或者确切的仓库 tree 和跟踪内容摘要。人类可读的证据是有边界的。
- 提升操作会拒绝过时的报告、过时的策略、更改的 Git 来源、重复的发现结果以及不匹配的仓库。
- Pack 和审查者的签名使用不同的版本化 Ed25519 消息域;旧版的原始摘要签名将被拒绝,而不是被重新解释。
- 原生审计适配器使用经过验证的 argv、有界的执行时间和 `shell=False`。
- 内部活动记录仅写入被 Git 忽略的路径下。
## 架构
```
flowchart LR
A[Git repository] --> B[Fail-closed inventory]
B --> C[Portable scanners]
B --> D[Declared native adapters]
C --> E[Content-addressed AuditReport]
D --> F[Adapter evidence]
E --> G[Evidence review]
E --> L[SARIF candidate export]
G --> L
F --> G
G --> M[Adjudicated rule maturity]
M --> H[Enforcement decision]
G --> H
G --> I[Verified TODO promotion]
E --> J[Independent campaign attestations]
J --> K[Divergence comparison]
```
目标配置文件模型将五条记录分开保存:
1. `StandardPack` — 版本化的控制措施、许可证、签名和来源。
2. `ProjectProfile` — 选定的控制措施、适用性、目标和带类型的项目变量。
3. `EffectiveProfileLock` — 解析后的输入、摘要、适配器和矛盾证据。
4. `ControlAssessment` — 绑定证据的状态,例如 `needs-evidence`、`blocked`、`fail`、`pass` 和 `accepted-risk`。
5. `TargetGap` / `RemediationPlan` — 观察到的状态与声明目标之间存在依赖顺序的差异。
这些记录及其 fail-closed 解析器是作为本地类型化 API 实现的。它们不授予执行权限,不使 RigorFoundry 成为整体审计权威,也不证明在外部语料库上的有效性。请参见 [ARCHITECTURE.md](ARCHITECTURE.md)。
## 安装已发布的版本
当确切版本出现在 [PyPI 发布历史](https://pypi.org/project/rigor-foundry/#history) 后,使用以下命令安装:
```
python -m pip install "rigor-foundry==0.1.1"
```
## 从源码快速开始
```
git clone https://github.com/anulum/rigor-foundry.git RIGOR-FOUNDRY
cd RIGOR-FOUNDRY
python3 -m venv .venv
.venv/bin/python -m pip install --require-hashes -r requirements/ci.txt
.venv/bin/python -m pip install --no-build-isolation --no-deps -e .
.venv/bin/rigor --version
```
对于采纳者仓库,请遵循明确的[首个仓库教程](docs/getting-started.md)。Bootstrap 需要 policy、canonical TODO、review-ledger、source-root 和 test-root 路径;它从不猜测或覆盖它们。[消费者集成指南](docs/integrations.md)提供了不可变 SHA 的 GitHub Action 和 pre-commit 配置,这些配置具有明确的策略/证据路径,并且没有修复权限。
## 命令概览
| 命令 | 契约 |
| --- | --- |
| `rigor bootstrap` | 创建一个明确的策略和被忽略的 canonical TODO,不进行猜测或覆盖。 |
| `rigor scan` | 生成确定性的 JSON 或 Markdown 候选报告。 |
| `rigor review-template` | 创建明确的 `needs-evidence` 审查记录。 |
| `rigor validate-review` | 针对一份确切的报告验证审查。 |
| `rigor sarif` | 将每个候选对象和可选的审查结论导出为确定性 SARIF 2.1.0。 |
| `rigor maturity-evaluate` | 从明确的裁定审查案例中推导出试用或活跃状态。 |
| `rigor promote` | 预览或追加来自经过验证的跨模型提升活动的一个发现结果。 |
| `rigor gate` | 应用 observe、ratchet 或 zero 强制模式;非 observe 模式需要一份其策略摘要与仓库绑定的成熟度报告。 |
| `rigor campaign-create` | 冻结一个独立审计输入契约。 |
| `rigor campaign-run` | 执行并证明一次独立运行。 |
| `rigor campaign-compare` | 记录分歧和未解决的证据。 |
`rigor --version` 报告规范的已安装软件包版本。确切的稳定/临时顶级导入清单和弃用策略记录在[公共 API 稳定性](docs/api-stability.md)中。
声明的原生适配器仅在 `--allow-native-audits` 同意后运行。它们在无网络、只读的沙箱中执行,环境不包含凭据,具有硬性的输出和时间限制、进程树终止以及结构化的持久证据。原生执行目前需要在基于 dpkg 的主机上位于 `/usr/bin/bwrap` 的 Bubblewrap、`/usr/bin/dpkg-query` 以及兼容的 Bubblewrap 0.9.x 安装。被动扫描和报告审查不需要这些原生接口。
经验证的内置 Semgrep 和离线 Trivy 配置文件还会绑定不可变的命令/解析器契约、确切的仅跟踪输入快照、配置和可执行字节、工具版本、结构化状态以及配置文件证据摘要。部分或不可用的证据永远不会提供域覆盖。有关严格的策略形式、安装边界、覆盖限制和基准测试,请参见[内置适配器配置文件](docs/adapter-profiles.md)。
## 模块职责
| 接口 | 模块 | 职责 |
| --- | --- | --- |
| Git 信任 | `git_provenance` | 固定根的可执行文件选择、支持的版本、替换检测和内容寻址来源。 |
| 清单 | `git_inventory` | 通过受信任的 Git runner 获取确切的跟踪路径、内容类型、扫描的 blob 标识和摘要。 |
| 候选锚点 | `candidate_anchor` | 严格的 blob/tree 锚点 schema、包含的行范围、有界的摘录和锚点验证。 |
| 候选集合 | `architecture`, `godfiles`, `polyglot_architecture`, `test_authenticity` | 需要审查的静态信号,每个信号都绑定到一个经过验证的锚点。 |
| 策略和记录 | `rules`, `domains`, `audit_primitives`, `policy_models`, `models` | 版本化规则、严格的协议原语、适用性、仓库策略以及内容寻址的报告/审查记录。 |
| 审查和执行 | `review`, `enforcement` | 证据验证、过时状态拒绝和受控的提升。 |
| 规则校准 | `rule_maturity`, `rule_maturity_manifest` | 明确的激活阈值、绑定源的裁定、审查者工作证据和试用安全的门控输入。 |
| 交换格式 | `sarif` | 保持候选对象、审查和确切锚点状态的确定性 SARIF 2.1.0 投影。 |
| 原生边界 | `adapters`, `adapter_runtime`, `adapter_profiles`, `adapter_workspace`, `sandbox_provenance`, `trusted_executable` | 描述符固定、时间/输出受限的仓库命令;不可变的内置配置文件;仅跟踪快照;结构化证据;以及版本化的 Bubblewrap 兼容性。 |
| 外部来源 | `source_capture`, `source_provenance` | 内容寻址的建议/版本/标准/摘要声明、有界的捕获元数据、稳定的保留文件读取和确定性的离线验证。 |
| 活动 | `campaign_identity`, `campaign_evidence`, `campaign_models`, `campaign_store`, `campaign_workflow`, `campaign_compare`, `campaign_promotion` | 推理和工具链身份、相关见证合并、持久来源、分歧和提升资格。 |
| 配置文件原语 | `model_primitives`, `condition_language` | 类型化变量、不透明的 secret 引用、严格的值和有界的条件。 |
| 期望状态 | `standard_pack`, `project_profile`, `effective_profile`, `profile_resolution`, `trust` | 版本化控制措施、明确的 Ed25519 信任存储、采纳者意图、确切的 pack 锁定、矛盾证据和 fail-closed 解析。 |
| 评估和规划 | `control_assessment`, `review_attestation`, `remediation_plan`, `_remediation_graph` | 签名的新鲜证据、经过加密验证的审查者分离、目标差距、绑定适配器的流程和冲突安全批次。 |
| 工作生命周期 | `internal_storage`, `work_models` | 被忽略的崩溃安全存储和绑定摘要的任务/事件闭包记录。 |
## 容器使用
```
docker build -t rigor-foundry:local .
docker run --rm --read-only \
--mount type=bind,src=/path/to/repository,dst=/workspace,readonly \
rigor-foundry:local scan --root /workspace
```
容器以非 root 用户身份运行,并包含 Git,因为仓库清单是 CLI 的生产依赖项。
## 验证和可重现性
- 声明支持的 Python 版本仅为 3.11、3.12 和 3.13,并已在 CI 矩阵中体现。
- CI 依赖项被解析为 hash-locked 的 requirements 文件。
- 本地工作使用 GOTM 工作磁盘上由仓库拥有的 `.venv`。
- GOTM 创作策略在本地使用专注于单文件的测试;CI 负责详尽的测试和覆盖率门控。外部贡献者可以明确选择加入相同的本地矩阵。
- 发布版本在公开仓库提升并获得授权后,会构建 wheel 和 source 发行版,运行元数据检查,生成 CycloneDX SBOM,创建 Sigstore 签名和来源,并通过所有者门控的 OIDC 环境进行发布。
- 基准测试和有效性声明需要提交的方法论和测量证据。迁移基线不做出此类性能声明。
有关门控矩阵,请参见 [VALIDATION.md](VALIDATION.md);有关威胁边界,请参见 [SECURITY.md](SECURITY.md)。
## 开发
```
make install
make lint
make typecheck
make audit
make preflight-fast
```
使用 `pytest tests/test_name.py` 运行专注于特定文件的测试。除非所有者为当前会话明确授权,否则 GOTM 操作员不会运行本地全套测试;外部贡献者可以按照 `CONTRIBUTING.md` 中的说明选择加入。
请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 许可证
RigorFoundry 采用 [Apache License 2.0](LICENSE) 许可证。该许可证包含明确的限定贡献范围的专利授权;除非许可证允许,否则不授予使用 RigorFoundry 名称或标记的权利。
Developed by ANULUM / Fortis Studio
标签:Python, 云安全监控, 无后门, 网络安全研究, 请求拦截, 逆向工具, 静态分析