88nonog-dev/nono-gate
GitHub: 88nonog-dev/nono-gate
一个面向 CI/CD 流水线的确定性安全治理架构,将发布决策转化为可密码学验证、可独立审计、可重放验证的证据制品。
Stars: 0 | Forks: 0
# Nono-Gate
确定性 CI/CD 安全治理架构
Nono-Gate 是一种用于 CI/CD 流水线的确定性治理架构,它使安全发布决策变得可证明、可重放验证且可独立审计。
它不替代扫描器。
它作为安全发现(例如 SARIF 输出)与发布边界之间的决策验证层运行。
## 问题
现代 CI/CD 安全工作流产生的结果:
- 难以复现
- 难以审计
- 难以事后论证
- 无法独立验证
Nono-Gate 通过将决策本身转换为可验证的制品来解决这个问题。
## 核心能力
- 基于确定性策略的决策评估
- 密码学绑定的证据制品
- 证据根生成
- 可重放验证的决策输出
- 仅追加治理账本
- 基于 Merkle 的透明度完整性
- 独立审计员验证
## 架构
安全发现 -> 策略评估 -> 确定性决策 -> 证据包 -> 账本条目 -> 重放验证
## 关键制品
decision.json
decision-attestation.json
decision-provenance.json
EVIDENCE_ROOT_SHA256.txt
governance-ledger.ndjson
LEDGER_MERKLE_ROOT_SHA256.txt
## 演示
运行演示:
./demo/RUN_PROOF_DEMO.ps1
验证决策:
./demo/VERIFY_ONLY.ps1
## 仓库结构
engine/ 核心治理引擎
demo/ 可运行演示
docs/ 架构文档
tests/ 验证测试
examples/ 样本证据
## 状态
用于确定性 DevSecOps 治理的研究原型。
## 从这里开始
参见 START_HERE.md
## 架构概览
Nono-Gate 位于安全扫描器和发布边界之间。
扫描器输出 (SARIF / Signals)
?
策略评估
?
确定性决策引擎
?
证据生成
?
治理账本条目
?
独立重放验证
此架构使安全决策能够:
- 可复现
- 可独立验证
- 通过密码学与证据绑定
- 事后可审计
与其单纯信任扫描器或 CI 日志,Nono-Gate 能够验证最终的安全决策制品本身。
## 安全模型
Nono-Gate 假设 CI 环境和扫描器输出不能总是作为最终证明被信任。
因此,系统专注于**可验证的决策制品**,而非信任执行环境。
架构旨在实现的安全属性:
- 确定性决策复现
- 通过加密哈希进行证据绑定
- 仅追加治理账本
- 决策历史的基于 Merkle 的完整性
- 过往决策的重放验证
- 审计员可读的制品
此模型允许安全审查人员独立于原始 CI 流水线对决策进行验证。
换句话说,验证不需要信任产生该决策的系统。
## 为什么这很重要
许多安全工具专注于检测:扫描器、分析器和策略引擎。
然而,CI/CD 中的最终**发布决策**通常基于日志、审批或工具输出,这些在事后往往无法独立验证。
Nono-Gate 专注于**决策边界本身**。
系统不再是询问“扫描器报告了什么?”,而是使团队能够询问:
“我们能验证允许此发布的安全决策吗?”
通过将决策与可复现的证据和账本完整性绑定,该架构实现了:
- 发布后验证
- 对审计友好的安全决策
- 可复现的治理制品
- 更强的供应链透明度
- CI 环境中的信任最小化
这种方法对于那些运行高保障 DevSecOps 流水线、且发布决策必须在数月或数年后仍具有可辩护性的组织尤为重要。
标签:AI合规, CI/CD 安全, DevOps 工具链, DevSecOps, Homebrew安装, SARIF, 上游代理, 不可篡改日志, 事件溯源, 代码安全, 发布控制, 可验证性, 合规自动化, 安全治理, 审计追踪, 密证绑定, 工件证明, 数据投毒防御, 漏洞枚举, 确定性构建, 策略即代码, 聊天机器人安全, 自定义脚本, 软件供应链安全, 远程方法调用, 默克尔树