megaalive/vaa

GitHub: megaalive/vaa

VAA 是一个实验性的故障封闭控制器,用于在 SemASM 语义验证基础上生成、验证和密封原生汇编代码候选项并产出完整性证据包。

Stars: 0 | Forks: 0

# VAA — 可验证汇编 Agent **状态:** 实验性 **语言:** Rust **形式:** 本地 CLI,包含库模块的二进制 crate VAA 是一个小型、故障封闭(fail-closed)的控制器,它将受控的任务规范转换为汇编候选项,从 [SemASM](https://github.com/megaalive/semasm) 和原生工具链收集证据,并返回证据包。 ## 目前已实现的功能 | 功能 | 状态 | |---|---| | `vaa version` / `vaa status` | 可用 | | `vaa validate ` | 可用(schema **0.1**) | | 任务内容摘要(`sha256:…`) | 在成功 validate 后可用 | | `vaa doctor` | 可用 — SemASM 版本和 schema 兼容性 | | `vaa capabilities --target ` | 可用 — 机器可读的 JSON | | `vaa verify --source --contract ` | 可用 — SemASM 报告 0.4,绑定身份的证据 | | `vaa run --contract … --wrong … --repaired …` | 可用 — 固定的错误→修复循环(无实时 LLM);写入密封证据 | | `vaa ingest --contract … --source …` | 可用 — 与生成器无关的候选存入(无模型) | | `vaa evidence check-seal …` | 可用 — 证据/密封 JSON 完整性(非工件重新哈希) | | `vaa evidence verify-bundle ` | 可用 — 重新哈希任务/契约/源码/报告与密封比对 | | `vaa evidence verify-chain ` | 可用 — 完整的候选哈希链 + 最终密封 | | `vaa generate --output ` | 可用 — 固定模型适配器 | | `vaa build [--target elf64] [--sandbox container]` | 可用 — NASM + 链接器;container = Scaffold | | `vaa inspect ` | 可用 — ELF/PE/MachO 分析 | | `vaa sandbox status` | 可通过 `vaa status` 使用 | | 模型生成 / 修复 | **固定适配器** + 可选 **`--live`**(`live-model` 特性) | | 汇编 / 链接 / 沙箱执行 | **通过 PATH 上的工具链** | 本项目**不**保证安全性、形式化验证、零开销或生产就绪。 HSM 脚手架 ≠ 硬件 HSM;`search --ingest` ≠ CryptOpt;本地透明工件 ≠ 远程仅追加日志;Incomplete ≠ Verified。 ## 构建 要求:带有 `rustfmt` 和 `clippy` 的最新稳定版 Rust 工具链(参见 `rust-toolchain.toml`)。 ``` cargo build cargo test cargo run -q -- status cargo run -q -- validate fixtures/tasks/sum_i64.vaa.toml cargo run -q -- validate fixtures/tasks/sum_i64.vaa.toml --format json ``` ## 任务文件 权威契约格式:`*.vaa.toml`(schema `0.1`)。 - 指南:[`docs/task-schema.md`](docs/task-schema.md) - JSON Schema:[`schemas/task.vaa.schema.json`](schemas/task.vaa.schema.json) - 示例:[`fixtures/tasks/sum_i64.vaa.toml`](fixtures/tasks/sum_i64.vaa.toml) 未知字段将被拒绝。权威测试和预算包含在锁定的任务摘要中,因此修复循环无法悄无声息地削弱契约。 ## 设计基准 在贡献功能代码之前请阅读: 1. [`VAA_REVIEWED_AND_HARDENED_ARCHITECTURE_PLAN.md`](VAA_REVIEWED_AND_HARDENED_ARCHITECTURE_PLAN.md) 2. [`docs/implementation-baseline.md`](docs/implementation-baseline.md) — SemASM 现实检验 3. [`docs/progress.md`](docs/progress.md) — PR / 阶段状态 4. [`docs/task-schema.md`](docs/task-schema.md) 5. [`DEPENDENCIES.md`](DEPENDENCIES.md) 不可协商的方向: - 包含内部模块的一个二进制 crate; - 锁定后任务 / 策略 / 测试 / 预算不可变; - 四种证据结果:`verified`、`violated`、`incomplete`、`failed`; - 绝不将不受支持、缺失或不完整的分析提升为成功; - SemASM 集成通过版本化的进程/JSON 协议(`VerificationReport` schema **0.4**,仅 stdout;身份摘要绑定到证据中); - 动态执行默认禁用(`vaa verify` / `vaa run` 不传递 `--allow-execution`); - SemASM 契约路径是明确的:`--contract <*.sem.toml>`(与锁定的 `*.vaa.toml` 任务区分开); - `vaa run` 使用**固定**模型队列(错误→修复)连接编排器;实时提供程序超出范围; - `vaa ingest` 接受任何外部 `.asm`(固定装置、人类、类 CryptOpt 搜索、LLM 转储),并且始终返回到 SemASM 验证 + 密封证据 — 生成器不会改变接受标准; - seal 是**内容完整性**信封(`acceptance_digest` / `envelope_digest`);通过 `VAA_SEAL_SIGNING_KEY` 进行可选的 Ed25519 真实性验证(练习密钥 ≠ 信任根);参见 [`docs/seal.md`](docs/seal.md); - `vaa build --sandbox container` 通过 Docker/Podman 封装汇编/链接(**Scaffold**,非硬化隔离);默认镜像 `ubuntu:24.04`(`VAA_CONTAINER_IMAGE`)。 ## 退出代码(部分) | 代码 | 含义 | |---:|---| | 0 | 成功 | | 2 | 无效的用户输入或任务 schema | | 3 | 未找到 SemASM 二进制文件或版本不匹配 | | 4 | 验证产生违规或失败 | | 7 | 任务预算耗尽 | 完整表格:架构计划 §19.3。 ## 下一步计划 **`v0.1.1`** 是第一个带有可移植 Win/Linux 二进制文件 + `SHA256SUMS` 的标记版本 (参见[发布](https://github.com/megaalive/vaa/releases))。Alpha **`v0.1.0`** 在历史上保持 仅源码归档。 Alpha 后的 P7 已完成 — [`docs/post-alpha-harden.md`](docs/post-alpha-harden.md)。 已知限制:container ≠ 绝对隔离;Rekor/Sigstore ≠ SemASM Verified; HSM 是脚手架;搜索仅用于暂存(非 CryptOpt 嵌入)。 后续:一次性 VM 模式、Fulcio 无密钥、实时 PKCS#11、更全面的 fuzz。 ## 许可证 根据以下任一许可证授权: - Apache License, Version 2.0(`LICENSE-APACHE`) - MIT 许可证(`LICENSE-MIT`) 由您选择。
标签:Python安全, Rust, 代码分析, 凭证管理, 可视化界面, 形式化验证, 汇编生成, 编译器工具链, 网络流量审计, 自动化控制器, 请求拦截, 通知系统, 风险发现