Prashant-koi/Lavender

GitHub: Prashant-koi/Lavender

基于 eBPF 的轻量级 Linux 端点检测响应工具,通过内核级监控追踪进程行为。

Stars: 0 | Forks: 0

# Lavender Lavender 是一个我正在从零开始构建的用户态 EDR(Endpoint Detection and Response,端点检测与响应)工具。它包含用 Rust 和 C 编写的小型安全代理,通过 eBPF 挂钩到 Linux 内核以检测异常行为。我还计划添加一个实时仪表板来显示威胁事件。 ## 项目布局 - ebpf: C eBPF 程序和 Makefile - common: 内核和用户态共用的 Rust 事件结构体 - agent: Rust 用户态加载器,用于附加 eBPF 并读取 ring buffer 事件 ## 前置条件 - 启用了 BTF 的 Linux 内核(检查 `/sys/kernel/btf/vmlinux` 是否存在) - `bpftool` - 支持 BPF 目标的 `clang` - `libbpf` 开发头文件(`bpf_helpers.h` 和 `bpf_core_read.h` 所需) - Rust 工具链和 `cargo` - 用于加载/附加 eBPF 程序的 sudo 或 root 权限 - `llvm-objdump`(可选,用于反汇编) ## 构建 eBPF 程序 在仓库根目录下执行: ``` cd ebpf make vmlinux make build ``` 这将生成: - ebpf/vmlinux.h - ebpf/execve.bpf.o ## 运行用户态加载器 在仓库根目录下执行: ``` sudo cargo run --manifest-path agent/Cargo.toml ``` 或在 agent 目录下执行: ``` cd agent sudo cargo run --manifest-path Cargo.toml ``` 成功后,你应该会看到: ``` Lavender is watching. Ctrl+C to stop ``` ## 保存输出为 JSON 在 `agent` 目录下,直接运行编译好的二进制文件,以便重定向能够正常工作: ``` cd agent cargo build ``` 将所有 exec 事件捕获到 `events.json`,并将所有告警捕获到 `alerts.json`: ``` sudo ./target/debug/lavender-loader > events.json 2> alerts.json ``` 仅将告警捕获到 `alerts.json`(丢弃正常的 exec 流): ``` sudo ./target/debug/lavender-loader 1>/dev/null 2>alerts.json ``` 仅捕获告警并在终端中实时查看: ``` sudo ./target/debug/lavender-loader 1>/dev/null 2> >(tee alerts.json >&2) ``` 注意:除非你将二进制文件复制到当前目录,否则 `./lavender-loader` 可能会提示 "command not found"。默认的 Cargo 路径是 `./target/debug/lavender-loader`。 ## 为什么会出现 `exec format error`?(我的经验总结) `execve.bpf.o` 是用于 eBPF 虚拟机的 ELF 目标文件,而不是原生可执行文件。它不能直接通过 `./execve.bpf.o` 运行。 正确使用方式是通过用户态加载器(例如使用 libbpf 的 Rust/C 程序)加载它,或者使用 `bpftool` 的 attach/load 命令。 ## 事件流与 Map 名称 用户态加载器从两个 ring buffer map 读取数据: - `exec_events`:进程 execve 事件(`pid`、`ppid`、`comm`、`filename`) - `exit_events`:进程退出事件(仅 `pid`) 当前的 eBPF map 名称在 `ebpf/execve.bpf.c` 中定义为 `exec_events` 和 `exit_events`。 ## 常用命令 ``` make help make disasm make clean ```
标签:AMSI绕过, BTF, CCTV/网络接口发现, Docker镜像, EDR, libbpf, Linux内核, Rust, 可视化界面, 威胁检测, 子域名枚举, 安全代理, 安全渗透, 实时仪表盘, 开源安全工具, 异常行为检测, 时间线生成, 端点检测与响应, 系统安全, 网络安全, 网络流量审计, 脆弱性评估, 脱壳工具, 请求响应过滤, 逆向工程平台, 通知系统, 隐私保护