autopurple-security-technology-corp/ap-artifactvault
GitHub: autopurple-security-technology-corp/ap-artifactvault
该项目是一个用 Rust 编写的 DFIR 取证 artifact 分诊与解析工具,将 EVTX、EDR 遥测和内存 vault manifest 标准化为统一记录以支持下游关联分析。
Stars: 0 | Forks: 0
# ap-artifactvault
DFIR artifact 分诊与解析:Windows EVTX 事件记录、EDR telemetry 流和 memory-artifact vault manifest,以及带有 license-gated 关联核心的组件。
[](https://github.com/autopurple-security-technology-corp/ap-artifactvault/actions)
[](https://github.com/autopurple-security-technology-corp/ap-artifactvault/releases)
[](LICENSE)
[](core/README.md)
[](Cargo.toml)
`ap-artifactvault` 接入常见的数字取证 artifact,并将其标准化为通用的分诊记录,以便进行下游关联。它是 AutoPurple 托管的 DFIR / 事件响应工具的 artifact-plane 组件。
## 功能
- **Vault manifest 读取器** — 紧凑的 4 字节帧 artifact 索引;安全的、边界检查的参考解析器(优化的零拷贝变体位于关联核心中)。
- **EVTX 记录组帧** — 遍历 Windows XML EventLog 数据块记录并提取记录信封(id、size),用于分诊计数和 record-id 连续性检查。
- **EDR telemetry 组帧** — 带有 `key=value` 字段提取的长度帧事件流解析器。
- **License-gated 关联** — 在密封核心中进行行为排序和跨 artifact 关联;在没有密钥的情况下会失效并进入仅解码演示模式。
- **纯 Rust 实现,依赖极少** — 解封垫片使用 `aes-gcm`、`pbkdf2`、`hmac`、`sha2`;公共解析器中没有 `unsafe`。
## 快速开始
```
make build # or: cargo build --release
./target/release/artifactvault-cli --manifest case.vaultmanifest
python3 tools/vaultmanifest.py case.vaultmanifest # quick read-only inspection
```
如果没有配置有效的 license key,该库将以**仅解码演示模式**运行(解析并打印 artifact 记录;禁用关联)。要启用关联,请设置 `AP_ARTIFACTVAULT_LICENSE_KEY`(通过您的 AutoPurple 服务实例配置)—— 参见 [core/README.md](core/README.md)。
## 分诊模型
每个解析器都会标准化为单一的 `TriageRecord`(`source`、`kind`、`declared_len`、`fields`),因此无论 artifact 类别如何,下游代码看到的都是统一的结构。
| Artifact 类别 | 解析器 | 提取的信号 |
|----------------|--------|------------------|
| Windows EVTX | `src/evtx.rs` | chunk/record 信封,record-id 连续性,event ID |
| EDR telemetry | `src/telemetry.rs` | 长度帧事件,`key=value` 字段对 |
| Vault manifest | `src/manifest.rs` | process/handle/network/registry/module/eventlog 引用 |
在演示模式下,记录会按原样输出以便进行手动审查。配置了有效核心后,关联引擎会执行行为排序和跨 artifact 联接(例如,在同一个案例中将 process artifact 与其 network 和 registry 活动关联起来)。
## 针对不受信输入的安全性
取证 artifact 来自可能已被入侵的主机,因此所有输入都被视为恶意的。manifest 读取器会将每个声明的 payload 长度限制在实际存在的字节数内,EVTX 组帧器会在推进之前验证 chunk/record 大小,而 telemetry 组帧器会根据声明的长度限制每个事件。公共解析器不包含任何 `unsafe`。`tools/vaultmanifest.py` 模拟了相同的边界检查逻辑,以便在 Rust 构建之外进行快速检查。
## 布局
| 路径 | 内容 |
|------|----------|
| `src/manifest.rs` | vault-manifest 读取器(安全的参考解析器) |
| `src/evtx.rs` | EVTX 记录组帧 |
| `src/telemetry.rs` | EDR telemetry 组帧 |
| `src/engine.rs` | license-gated 核心解封垫片(fail-closed) |
| `core/libvaultcore.enc` | 密封的关联核心 (AES-256-GCM) |
| `tools/vaultmanifest.py` | 只读 manifest 检查器 |
| `docs/` | manifest 格式,分诊笔记 |
## 输出示例
```
$ ./target/release/artifactvault-cli --manifest case.vaultmanifest
manifest case.vaultmanifest records=214 bytes=48120
process 61
network 88
registry 42
module 18
eventlog-ref 5
triage demo mode (no license key) — correlation disabled; records emitted for review
```
## 文档
- [Vault manifest 格式](docs/manifest-format.md)
- [分诊模型](docs/triage.md)
- [关联核心 (license-gated)](core/README.md)
- [安全策略](SECURITY.md) · [贡献指南](CONTRIBUTING.md) · [更新日志](CHANGELOG.md)
## 许可证
公共库、解析器、CLI、工具和文档均基于 [MIT License](LICENSE) 授权。密封的关联核心(`core/libvaultcore.enc`)是专有的,仅在配置了 AutoPurple license 的情况下提供使用。© 2024-2026 AutoPurple Security Technology。
标签:EDR遥测, EVTX, Rust, 可视化界面, 库, 应急响应, 数字取证, 日志解析, 网络流量审计, 自动化脚本, 证书伪造, 逆向工具, 通知系统