primitive-0rigins/bar

GitHub: primitive-0rigins/bar

BAR 是一个 Rust 编写的行为保证运行时守护进程,通过学习软件 runtime 的预期行为、检测偏差、准备人工审批的修复并独立验证变更结果,为软件系统提供持续的行为合规保障。

Stars: 0 | Forks: 0

# BAR — 行为保证运行时 [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/ad/ad5834178f7599af9fdda11629d49cae07f2997beec49821b2920eff5bfd50e7.svg)](https://github.com/primitive-0rigins/bar/actions/workflows/ci.yml) 一个轻量级、可选模型的保证 daemon,使用 Rust 编写。你将其指向一个或多个软件 runtime;它会从 runtime 自身学习每个 runtime 的*预期*行为,将这种意图与具体实现和实时执行进行比较,准备就绪的修复发现,等待**人工审批**,将获批的工作交给连接的编码 agent,然后独立验证结果。 **状态概览** - **目前已可用** — 无模型 daemon 引导程序、防篡改的哈希链审计日志([见下方演示](#see-it-catch-tampering))、关系型存储(SQLite/PostgreSQL)、只读目标与修订标识、增量制品清单、带有层级和冲突裁决的源码绑定契约提取、Rust/Python 静态架构事实、确定性的契约到代码可追溯性、带有修订新鲜度策略的证明义务,以及绑定修订的影子发现候选。`cargo test --workspace` 涵盖了所有这些内容。 - **等待人工审查** — Phase 5 静态适配器和 Phase 6 可追溯性、证明义务与新鲜度实现(完成证据位于 `docs/phase-evidence/` 下)。 - **进行中** — 静态发现引擎(Phase 7);其缺失实现的候选基础已经就绪。 - **尚未构建** — daemon 监视器和目标调度、runtime 证据捕获、人工审批工作流、编码 agent 交接以及变更后验证。 构建过程按阶段逐步推进,详见 [`docs/spec.md`](docs/spec.md) §21;[`STATUS.md`](STATUS.md) 记录了当前的工作和完成证据。 ## 它是什么 BAR 是一个持续维护的模型,反映了一个 runtime *声称、允许、执行并能证明* 的内容。其运行的 pipeline 为: ``` target pointer → artifact discovery → contract extraction → hierarchy & adjudication → static/path model → build-deployment identity → runtime evidence → proof-obligation & coverage → finding & causal investigation → repair-ready contract → human approval → coding-agent implementation → pre-merge impact → post-change verification → assurance history ``` ### 职责边界 | BAR 负责 | 人工负责 | 编码 agent 负责 | 外部系统负责 | |---|---|---|---| | 发现、证据、契约、发现结果、修复约束、验证 | 解释裁决、审批、豁免、接受的风险 | 仓库检查、计划、编辑、测试、实现报告 | 源代码控制、CI、制品构建、部署、生产凭证 | ### 设计承诺 - **目标优先资源。** 被监控的工作负载独占机器。BAR 在没有 GPU 的情况下运行,默认不驻留任何模型,在没有任何变化时保持接近空闲状态,并在目标压力下暂停可选的语义工作。 - **并发多 runtime 监控(计划中)。** 一个 daemon 将通过隔离的状态、每个目标的任务串行化以及有限的目标公平共享 worker,同时监视多个已注册的目标。集群级别的模式建议仍然是一个较晚的、独立的功能。 - **模型可选。** 即使禁用所有模型,BAR 依然有用。 - **人工把关修复。** 在获得批准之前,任何修复任务对编码 agent 都是不可见的;审批绑定到确切的任务内容、目标、范围、基础修订版本和有效期。BAR 绝不授予生产部署权限。 - **诚实的证据。** 文档就是证据,但可能已过时、自相矛盾或是错误的——它本身永远不会成为证明。每一项发现都引用确切的证据并说明其局限性。 ### 明确的非目标 它不是个人助手、agent 编排器、调度程序、安全扫描仪、CI/CD 系统、问题跟踪器或可观测性的替代品——并且它不会输出单一的“正确性分数”。参见 [`docs/spec.md`](docs/spec.md) §2.1。 ## 仓库布局 ``` bar/ ├── crates/ │ ├── bar-core/ # IDs, enums, schemas, typed errors │ ├── bar-config/ # configuration contract (spec Appendix C) │ ├── bar-audit/ # append-only hash-chained audit log │ ├── bar-store/ # sqlx store + migrations (SQLite / PostgreSQL) │ ├── bar-target/ # read-only target resolution and revision identity │ ├── bar-discovery/ # incremental inventory and dependency-aware reparse plans │ ├── bar-contract/ # source-bound claims, hierarchy, glossary, conflicts │ ├── bar-static/ # shadow static architecture facts (Phase 5 foundation) │ ├── bar-coverage/ # deterministic contract-to-static-fact traceability │ ├── bar-findings/ # shadow static-finding candidates (Phase 7 foundation) │ ├── bar-bench/ # resource benchmark harness (spec §4, §22) │ └── bar-daemon/ # the mandatory model-free process (spec §5.1) ├── migrations/ # root SQL migrations, embedded at compile time ├── fixtures/ # versioned adversarial and end-to-end test corpora ├── docs/ # normative specification and phase evidence ├── STATUS.md # living project status └── Cargo.toml # workspace root ``` 完整的目标布局(19 个 crate、UI、适配器、测试夹具)定义在 [`docs/spec.md`](docs/spec.md) §5 中。Crate 会随着其所属阶段的实现而加入,因此目录树始终能保持干净构建。 ## 构建 ### 快速开始 BAR 目前提供其无模型的 bootstrap daemon,而其余阶段仍在构建中。在拥有稳定 Rust 工具链(1.85+)的检出版本中: ``` cargo run -p bar-daemon ``` 该命令会初始化结构化日志,报告其无模型就绪状态,并正常退出。它尚未监视目标或公开计划中的 API;这些功能将在后续阶段加入。设置 `BAR_LOG_FORMAT=json` 以获取机器可读的日志。当不存在配置文件时,daemon 使用内置默认值;设置 `BAR_CONFIG=/path/to/bar.toml` 可加载经过明确验证的配置。其完整契约位于 [`docs/spec.md`](docs/spec.md#appendix-c-complete-configuration-contract) 中。 ### 查看它捕获篡改 审计链是 BAR 的信任锚,它可以在三十秒内实现自我防御: ``` cargo run -p bar-audit --example tamper_evidence ``` 该示例将一项裁决、一次审批和一次证据变更封存入链中,验证完整无缺的链,然后通过三种方式篡改“已存储”的记录——重写审批、删除裁决和重排事件顺序——并展示验证过程如何以确切的理由拒绝每一次篡改: ``` sealed #0 ruling ruled ambiguous retry contract as intended-once sealed #1 approval approved repair job within reviewed scope sealed #2 evidence_mutation invalidated stale coverage evidence after repair intact: chain verifies edited record: REFUSED — corrupt input: audit record 1 content does not match its hash deleted record: REFUSED — corrupt input: audit record at position 0 has seq 1 reordered records: REFUSED — corrupt input: audit record at position 1 has seq 2 ``` ### 查看确定性的配置可追溯性 ``` cargo run -p bar-coverage --example config_traceability ``` 该示例将显式的契约引用映射到确切的 JSON 配置路径和源码行,且不会将这种映射视为行为证明: ``` mapping status: Mapped `server.port` → config/runtime.json:1 (Configuration) ``` ### 查看未完成的证明如何保持未证实状态 ``` cargo run -p bar-coverage --example proof_assessment ``` 该示例映射了 `authorize`,但故意遗漏了 `audit`。其评估结果保持未证实状态,并指出了差距所在,而不是将一个匹配的符号视为对整个契约的支持: ``` mapping status: PartiallyMapped proof status: Unproven unresolved: audit ``` ### 验证检出代码 ``` cargo test --workspace --all-targets cargo clippy --workspace --all-targets -- -D warnings cargo fmt --all -- --check ``` CI 会在每个 pull request 上运行相同的格式化、lint 和测试门控。请参阅 [`CONTRIBUTING.md`](CONTRIBUTING.md) 了解贡献期望,并参阅 [`SECURITY.md`](SECURITY.md) 私下报告漏洞。 ## 文档 - [`docs/spec.md`](docs/spec.md) — 完整的、规范化的实现规范和构建手册(本仓库构建所依据的契约)。 - [`STATUS.md`](STATUS.md) — 当前阶段、已交付证据和已知技术债务。 - [`CONTRIBUTING.md`](CONTRIBUTING.md) — 开发和审查期望。 - [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) — 社区参与标准。 - [`SECURITY.md`](SECURITY.md) — 漏洞报告政策。 ## 许可证 基于 [MIT 许可证](LICENSE) 授权。
标签:Rust, 云安全监控, 可视化界面, 守护进程, 开发辅助, 模块化设计, 测试用例, 网络流量审计, 自动化修复, 通知系统, 静态分析