0xLaiHo/Apolysis
GitHub: 0xLaiHo/Apolysis
Apolysis 是一个基于 eBPF 的 Linux 运行时审计层,用于记录和关联 AI Agent 工作负载在宿主机上的实际执行证据与声明意图,生成可验证的只追加审计时间线。
Stars: 1 | Forks: 0
# Apolysis
[](https://github.com/0xLaiHo/Apolysis/actions/workflows/release-validation.yml)
[](https://github.com/0xLaiHo/Apolysis/releases)
[](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镜像, 可视化界面, 子域名突变, 时序数据库, 请求拦截, 运行时审计, 通知系统