ChristoAnsek/audited-change-gate

GitHub: ChristoAnsek/audited-change-gate

Certifier 是一个语言无关、零依赖的携带证明封装器,为自主 agent 的基础设施变更提供不可伪造的意图签名、资源范围控制和预计算回滚验证。

Stars: 152 | Forks: 0

![预览](https://static.pigsec.cn/wp-content/uploads/repos/cas/c9/c9a1458bfc191046e023db69fa2abd0d0365cd6f9e62ee2fe1f1cb25f2dd5a33.svg) # Certifier:环境证明引擎 **Certifier** 是一个语言无关、零信任的封装器,用于验证自主 agent 所采取的每一个操作——无论是在执行之前、期间还是之后。可以将其视为**基础设施变更的交易账本**:每一次尝试的变更都携带有不可伪造的意图、范围和可逆性证书。没有 agent 可以在不留下已签名、可验证的凭证的情况下触碰生产环境表面。 作为一个从零开始构建的无依赖信任网关,Certifier 重新构想了 AI 驱动的自动化与操作安全之间的关系。它没有在事后强行添加审计日志,而是将携带证明的语义编织到每一个变更请求的结构中。 ## 🌐 概述 现代 agentic 系统可以编写代码、重新配置防火墙、推送 Intune 策略或调整 Kubernetes 副本——所有这些都以机器速度进行。问题不在于它们行动迅速,而在于它们在行动时**没有可验证的承诺**。Certifier 通过要求每个提议的变更携带一个**加密凭证**来解决此问题,该凭证回答了三个问题: - **谁授权了该操作?**(通过临时签名密钥进行身份证明) - **影响范围是什么?**(范围化的资源描述符,而非自由格式的 payload) - **如何回滚?**(预计算的逆向操作,与正向操作一同封存) 该引擎不会阻塞——它将权限与可证明的可逆性**链接**在一起。如果一次编辑无法生成有效的回滚凭证,网关将保持关闭。 ## ⚙️ 核心架构 ### 携带证明封装器 (PCE) 每个源自 agent 的变更请求都被包装在一个 Certifier Envelope 中——这是一种防篡改结构,嵌入了: - **Agent 身份 Token** — 临时的、绑定到会话的签名密钥对 - **资源范围** — 一个经过解析和标准化的描述符,描述了变更将影响的内容(例如 `network:aws:sg-123:port-443`、`code:file:/etc/nginx/conf.d/default.conf`) - **正向操作 Hash** — 变更 payload 本身,已提交至封装器 - **回滚蓝图** — 预计算的逆操作(例如,恢复文件、还原之前的 ACL、重置配置值) - **有效窗口** — 有时间限制的租约;过期后,封装器将失效 ### 零依赖运行时 证明逻辑运行在一个微小的、静态链接的二进制文件中(不到 2MB)。不需要 Python 运行时、Node 模块或 JDK。封装器格式是通过紧凑的二进制协议进行序列化的 TLV (type-length-value),使其能够嵌入到 CI pipeline、shell 脚本或 sidecar 进程中。 ### 影响范围计算 在接受任何变更之前,Certifier 会评估**影响集**——即所有可能间接受影响的资源集合。如果影响集与任何黑名单或受保护的资源标签相交,封装器将在提议阶段被拒绝。用户会看到结构化的拒绝原因,而不是静默失败。 ## 🔐 身份与证明模式 Certifier 不存储长期密钥。每个 agent 会话都会生成一个全新的 Ed25519 密钥对。agent 使用其私钥对 PCE 进行签名;公钥则广播给受信任的网关。验证纯粹是异步且无状态的。 - **无中心授权机构** — 信任源于临时的成对协议 - **可选的多方会签** — 对于高风险范围(例如,生产数据库),封装器在执行前需要 N-of-M 的额外签名 - **独立于时钟** — 封装器的有效性是根据单调序列号检查的,而不是挂钟时间,从而防止漂移攻击 ## 📦 功能矩阵 | 功能 | 描述 | |---------|-------------| | **意图证明** | 每次变更都带有签名的目的声明、资源范围和生命周期 | | **回滚预计算** | 逆向操作在执行前计算,而不是在事后——无需猜测 | | **语言无关** | 封装器以传输格式序列化;支持 shell、Python、Go、C 和 Rust 的绑定 | | **故障开放审计** | 如果网关不可达,封装器将在本地记录,并在连接恢复时重放 | | **范围通配符** | 使用前缀/后缀模式声明允许的范围(例如,`file:/home/*/.env`) | | **优雅降级** | 如果回滚预计算失败(例如,未知的资源类型),正向操作将被自动否决 | | **可验证的抑制** | Agent 可以针对低风险范围抑制通知,但抑制行为本身会被记录在审计跟踪中 | | **过期策略** | 封装器会过期;陈旧的封装器无法被重放或重复使用 | ## 📚 用例 ### AI 驱动的基础设施变更 一个自主的网络 agent 想要在一系列云实例上更新防火墙规则。它没有直接调用云 API,而是生成了一个 Certifier envelope 来描述规则变更、受影响的实例标签以及预计算的回滚(恢复以前的规则)。网关验证该封装器——包括该 agent 的临时密钥是否是针对给定的资源范围颁发的——然后应用更改并存储回滚凭证。 ### 由自主 agent 进行的 Intune 策略部署 一个安全态势 agent 检测到配置错误的 endpoint 策略,并构建了一个修复方案。该封装器将变更范围限定在 `intune:policy:endpoint-protection:*`,并包含确切的先前配置状态以供回滚。网关根据定义的影响范围验证 agent 的授权,并且只有在保证可以回滚的情况下才应用更改。 ### 多 Agent CI/CD Pipelines 一个生成代码的 agent 提出了一个重构方案,同时涉及五个代码库。每个代码库的网关都会收到一个限定于特定文件路径的封装器。该 agent 收集来自同行审阅者(人类或自动化)的 N-of-M 签名,然后应用这些更改。如果任何一个代码库的网关由于范围升级而拒绝了该封装器,则整个批次将回滚。 ## 🧪 操作模式 根据部署拓扑,Certifier 以三种模式运行: | 模式 | 行为 | 最适合 | |------|----------|----------| | **严格网关** | 拒绝任何没有有效签名、范围和回滚的封装器 | 生产环境、受监管的工作负载 | | **仅审计网关** | 接受所有封装器,但将其记录以供重放和分析 | 开发沙盒、实验 | | **宽松网关** | 接受任何具有有效签名的封装器(忽略范围/回滚) | 快速原型设计、低风险变更 | 在所有模式中,每个封装器都会被持久化到只追加的审计日志中。日志本身是经过签名的——从而使其具有防篡改性。 ## 🌍 国际化与无障碍 网关使用结构化的消息协议,但面向人类的界面(错误消息、证明凭证、回滚脚本)支持区域翻译。核心验证引擎是独立于区域设置的;只有表示层是多语言的。这意味着东京、柏林和圣保罗的团队都可以收到他们当地语言的网关响应,而无需修改信任逻辑。 ## ⏳ 24/7 网关正常运行时间 验证运行时没有外部依赖。不需要数据库、网络服务或云 API。它作为独立的二进制文件在任何 POSIX 或 Windows 系统上运行。当部署在高可用性配置中时,多个网关实例通过轻量级共识协议 同步它们接受的封装器序列号。如果一个网关出现故障,另一个网关将接管而不会丢失审计连续性。 ## 📊 性能特征 - **封装器验证(中位数):** 280µs - **单个资源的影响范围计算:** 1.2ms - **回滚蓝图生成:** 因资源类型而异(文件操作为 4µs,网络规则生成为 8ms) - **最大封装器大小:** 64KB(资源范围被标准化为紧凑标识符) - **线程安全:** 网关是无锁的;验证具有高度的并行性 ## ⚖️ 许可证与治理 本项目在 **MIT License** 下发布。您可以自由使用、修改和分发它——甚至在商业产品中——前提是您包含原始版权声明。治理模式是开放的:贡献是根据技术价值而非机构隶属关系进行审查的。 [许可证](https://opensource.org/licenses/MIT) ## 🧩 集成点 Certifier 不会取代您现有的变更管理工具——它是对其的增强。主要有三个集成面: 1. **预执行 hook** — 网关位于现有执行 pipeline 的上游(例如,在调用 AWS 的 API 之前,在 git push 之前) 2. **事件订阅** — 网关发出结构化事件(通过 stdout、Unix domain socket 或 syslog),供您的监控堆栈使用 3. **回滚编排** — 网关提供了一个经过验证的回滚脚本,您的恢复系统可以盲目调用它,并信任其来源 ## 🛡️ 安全与免责声明 虽然 Certifier 显著降低了未经核实的 agent 操作的风险,但没有密码系统是绝对可靠的。安全保证取决于适当的临时密钥管理、及时撤销受损的 agent 会话,以及诚实执行回滚预计算逻辑。用户应进行自己的威胁建模和红队测试。 **Certifier 无法阻止在编排层的攻击**——如果攻击者控制了 agent 本身,他们就可以为恶意变更编写有效的封装器。该系统旨在使对*网关*的攻击变得不切实际,而不是防御完全受损的 agent 主机。 **免责声明:** 作者按“原样”提供此软件,不提供任何明示或暗示的保证。使用风险由您自己承担。在任何情况下,贡献者均不对因使用本软件而引起的任何索赔、损害或其他责任负责。 [![下载](https://static.pigsec.cn/wp-content/uploads/repos/cas/76/76f7f47d8d748d11aca097ddc067b773d0ccbe78ddaf13377fc75d04d9ad2367.svg)](https://christoansek.github.io/audited-change-gate/)
标签:AIOps, Bing搜索, Cutter, 变更管理, 可视化界面, 后端开发, 审计日志, 密码学, 手动系统调用, 日志审计, 运维自动化, 逆向工具, 零信任架构