binertia/tracejutsu
GitHub: binertia/tracejutsu
一款基于 eBPF 的 Linux 本地安全监控工具,通过捕获系统调用并将事件分组为 incident,结合本地 LLM 生成安全分析报告。
Stars: 0 | Forks: 0
# Tracejutsu
Tracejutsu 是一款本地 Linux 安全工具。它通过 eBPF 监控 runtime 活动,将相关事件分组为 incident,并将其存储在 SQLite 中,同时还可以请求本地 LLM 来解释 incident。
它遵循本地优先原则:除非您显式配置远程 LLM endpoint,否则事件将保留在本地机器上。
## 捕获内容
默认情况下,实时模式会监控:
- 进程启动 (`execve`)
- 出站网络连接
- 文件写入
- 权限更改 (`chmod`)
对于实验室调查,`--collectors behavior_core` 会添加更广泛的行为信号,例如敏感文件读取、namespace 更改、进程访问以及网络服务器活动。
## 当前发布范围
`v0.1.0` 已针对 **Debian 13 (trixie) amd64** 完成验证。
实时 collector 也可以在 Linux amd64 和原生 arm64 上运行,但其他系统尚未纳入验证的发布目标范围。
## 快速开始
首先运行 demo。它不需要 root 权限,也不使用 eBPF:
```
go run ./cmd/tracejutsu demo
```
运行测试:
```
go test ./...
```
该模块使用 Go 工具链 `go1.26.4`。请保持启用 `GOTOOLCHAIN=auto`,或者安装 Go `1.26.4` 或更新版本。
## 保存 Demo 结果
使用私有的 SQLite 数据库路径:
```
mkdir -p "$HOME/.local/state/tracejutsu"
chmod 700 "$HOME/.local/state/tracejutsu"
DB="$HOME/.local/state/tracejutsu/tracejutsu.db"
go run ./cmd/tracejutsu demo --db "$DB"
go run ./cmd/tracejutsu incidents --db "$DB"
go run ./cmd/tracejutsu show --db "$DB" inc-evt-001
```
实用的数据库命令:
```
go run ./cmd/tracejutsu events --db "$DB"
go run ./cmd/tracejutsu event-summary --db "$DB" --type file_write
go run ./cmd/tracejutsu db-stats --db "$DB"
```
## 实时捕获
实时捕获需要 Linux 和 root 权限,或者同等的 eBPF 能力:
```
sudo go run ./cmd/tracejutsu run
```
保存实时事件和 incident:
```
sudo go run ./cmd/tracejutsu run --db "$DB"
```
要获取 service 风格的输出,请隐藏单条事件的 JSON,并打印 incident 及 runtime 统计信息:
```
sudo go run ./cmd/tracejutsu run --db "$DB" --quiet-events
```
启用更广泛的实验室 collector 集合:
```
sudo go run ./cmd/tracejutsu run --collectors behavior_core
```
按 `Ctrl-C` 停止。Tracejutsu 会在关闭时打印最终的 runtime 统计信息。
## 本地 LLM 分析
LLM 分析是可选的。启动一个与本地 `llama-server` 兼容的 endpoint,然后分析已存储的 incident:
```
llama-server --model /path/to/model.gguf --port 8080
go run ./cmd/tracejutsu llm --db "$DB" inc-evt-001
go run ./cmd/tracejutsu show --db "$DB" inc-evt-001
```
除非您传入 `--allow-remote-endpoint`,否则远程 LLM endpoint 将被拦截。
如果您的本地服务器需要 API 密钥,请设置 `TRACEJUTSU_LLM_API_KEY`。
## 作为 Service 安装
构建二进制文件:
```
go build -trimpath -o ./bin/tracejutsu ./cmd/tracejutsu
```
安装指南:
- [docs/INSTALL.md](docs/INSTALL.md) - 二进制文件、Debian 软件包、systemd service、release 构建和验证
- [docs/OPERATIONS.md](docs/OPERATIONS.md) - 数据库大小、备份、压缩和日志
## 验证
快速本地 release 检查:
```
scripts/release-check.sh
```
全新的临时 Debian/Ubuntu 主机验证:
```
./test.sh --quick --yes
```
完整验证:
```
./test.sh --yes
```
## 命令摘要
```
tracejutsu demo [--db path] [fixture.json]
tracejutsu run [--db path] [--collectors list] [--quiet-events]
tracejutsu events [--db path] [--limit count]
tracejutsu event-summary [--db path] [--type event_type]
tracejutsu db-stats [--db path]
tracejutsu incidents [--db path] [--limit count]
tracejutsu show [--db path]
tracejutsu llm [--db path]
tracejutsu rules
tracejutsu config
tracejutsu version
```
## 更多文档
- [examples/README.md](examples/README.md) - demo fixture 说明
- [docs/TRACEJUTSU_PLAN.md](docs/TRACEJUTSU_PLAN.md) - 架构和路线图
- [docs/HANDOFF.md](docs/HANDOFF.md) - 当前状态和已知限制
- [docs/ARM_TEST.md](docs/ARM_TEST.md) - arm64 验证说明
- [docs/STRESS_VALIDATION.md](docs/STRESS_VALIDATION.md) - 压力验证
标签:C2, Docker镜像, EVTX分析, Go, IP 地址批量处理, Ruby工具, 日志审计, 本地大模型, 网络信息收集, 行为审计