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, 代码分析, 凭证管理, 可视化界面, 形式化验证, 汇编生成, 编译器工具链, 网络流量审计, 自动化控制器, 请求拦截, 通知系统, 风险发现