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工具, 日志审计, 本地大模型, 网络信息收集, 行为审计