0xLaiHo/Apolysis

GitHub: 0xLaiHo/Apolysis

Apolysis 是一个基于 eBPF 的 Linux 运行时审计层,用于记录和关联 AI Agent 工作负载在宿主机上的实际执行证据与声明意图,生成可验证的只追加审计时间线。

Stars: 1 | Forks: 0

# Apolysis [![Release Validation](https://static.pigsec.cn/wp-content/uploads/repos/cas/bd/bda9f44b0b0c60dc48881625857adc382d7449a5f4c9d93ca52c3384f534ab7d.svg)](https://github.com/0xLaiHo/Apolysis/actions/workflows/release-validation.yml) [![Latest Release](https://img.shields.io/github/v/release/0xLaiHo/Apolysis?sort=semver)](https://github.com/0xLaiHo/Apolysis/releases) [![License](https://img.shields.io/github/license/0xLaiHo/Apolysis)](LICENSE) [English](README.md) | [简体中文](README.zh-CN.md) Apolysis 是一个用于 AI agent 工作负载的 Linux 运行时审计问责层。它 记录 agent 会话实际执行操作的宿主机端证据,然后 将进程、文件、网络、凭证、运行时、策略和声明的 意图记录相互关联,形成一个只追加的审计时间线。 它不是沙盒、审批 UI、MCP 网关或 SIEM。它是帮助操作员 独立于 agent 控制器来审查 agent 副作用的证据层。 ## 核心功能 - 针对进程、文件、网络、受限的 exec argv 和 凭证路径事件的实时与固定环境观察。 - 具备进程树归因的托管本地 agent 启动,适用于 Codex 和其他 命令行 agent。 - 针对声明的工具调用与观察到的 宿主机端副作用,进行意图摄取与关联。 - 针对本地进程、Docker/containerd 和 Kubernetes 工作负载的运行时元数据关联。 - 只追加的 JSONL 证据、输出轮转、hash-chain 验证、策略 发现、发布验证门控,以及签名的发布构件交接。 ## 架构 ``` Agent / tool runner └─ declared intent logs Apolysis observer ├─ live eBPF events ├─ process tree attribution ├─ runtime metadata └─ policy evaluation Apolysis correlation ├─ intent records ├─ observed host events └─ accountability findings Append-only evidence ├─ JSONL timeline ├─ rotated local files └─ optional hash-chain verification ``` 该设计将三个边界保持分离: - Intent:harness 或工具运行器声明的内容。 - Isolation:运行时允许工作负载触及的范围。 - Evidence:宿主机和运行时实际观察到的内容。 核心 crate: - `apolysis-cli`:命令行入口。 - `apolysis-observer`:固定环境和实时观察器后端。 - `apolysis-core`:共享的 JSONL 记录和 schema 类型。 - `apolysis-runtime`:本地、Docker 和运行时元数据适配器。 - `apolysis-policy`:策略解析器和决策逻辑。 - `apolysis-store`:只追加的 JSONL 和 hash-chain 存储。 - `apolysis-daemon`:用于长时间运行部署的节点本地服务。 ## 构建与测试 ``` make build make test make lint ``` 仅构建 CO-RE eBPF 对象: ``` make build-ebpf ``` 在准备好的 Linux 宿主机上运行具备感知能力的实时观察器冒烟测试: ``` make test-live ``` ## 示例:审计本地 Agent 命令 输入: - 构建好的二进制文件:`target/debug/apolysis` - 构建好的 BPF 对象:`target/ebpf/apolysis_observer.bpf.o` - 策略文件:`policies/local-dev.yaml` - Agent 命令:`codex exec --json "run the project tests"` 命令: ``` sudo -E ./target/debug/apolysis observe \ --backend live \ --session codex-local-audit \ --policy policies/local-dev.yaml \ --output .apolysis/codex-live/timeline.agent-run.jsonl \ --bpf-object target/ebpf/apolysis_observer.bpf.o \ --workspace-root "$PWD" \ --agent-kind codex \ --agent-run -- codex exec --json "run the project tests" ``` 关键参数: - `--backend live`:使用实时 eBPF 观察器。 - `--session`:写入每条记录的稳定会话 ID。 - `--policy`:用于审查和通知发现的策略文件。 - `--output`:JSONL 时间线路径。 - `--bpf-object`:由实时后端加载的 CO-RE 观察器对象。 - `--workspace-root`:用于路径处理的 workspace 边界。 - `--agent-kind`:agent 适配器提示,例如 `codex`。 - `--agent-run -- `:让 Apolysis 启动 agent 并接管根 进程树,而不是要求操作员手动查找 PID。 输出: ``` {"record_type":"event","event_type":"exec","resource":"codex"} {"record_type":"event","event_type":"file_open","resource":"path_token:..."} {"record_type":"policy_violation","rule_id":"credentials.deny_read","decision":"notify"} ``` ## 示例:关联声明的意图 输入: - Codex response-item 日志:`.apolysis/codex-live/codex-response-items.jsonl` - 观察到的时间线:`.apolysis/codex-live/timeline.agent-run.jsonl` - 会话 ID:`codex-local-audit` 命令: ``` ./target/debug/apolysis intent ingest \ --adapter codex-jsonl \ --input .apolysis/codex-live/codex-response-items.jsonl \ --session codex-local-audit \ --output .apolysis/codex-live/intent.codex.jsonl \ --workspace-root "$PWD" ./target/debug/apolysis intent correlate \ --intent-input .apolysis/codex-live/intent.codex.jsonl \ --timeline-input .apolysis/codex-live/timeline.agent-run.jsonl \ --output .apolysis/codex-live/intent-correlation.jsonl ``` 输出: ``` {"record_type":"intent","intent_source":"codex","declared_action":"shell.command"} {"record_type":"intent_correlation","match_basis":"process_executable"} {"record_type":"accountability_finding","kind":"missing_intent","decision":"review"} ``` 将生成的时间线、Codex 日志和报告保存在 `.apolysis/` 或 `target/` 目录下。请勿提交捕获的工作负载数据或凭证。 ## 核心文档 - [JSONL schema](docs/jsonl-schema-v1.md) - [威胁模型](docs/threat-model.md) - [发布构件演练](docs/release-artifact-dry-run.md) - [签名发布构件演练](docs/signed-release-artifact-dry-run.md) - [v0.2.0 版本发布](docs/v0.2.0-release-publication.md) - [Hash-chain 验证](docs/hash-chain-verification.md) - [时间线传输](docs/timeline-shipping.md) - [Codex 实时演示手册](docs/codex-live-demo-runbook.md) - [贡献指南](CONTRIBUTING.md) - [安全](SECURITY.md) - [新手问题](docs/starter-issues.md)
标签:Docker镜像, 可视化界面, 子域名突变, 时序数据库, 请求拦截, 运行时审计, 通知系统