
Kunai 是一款强大的工具,旨在为 Linux 系统上的 安全监控 和 威胁狩猎 等任务提供可操作的分析洞察。你可以将其视为 Windows 系统上的 Sysmon 在 Linux 系统中的对应物,专为全面而精准的事件监控而设计。
Kunai 利用 eBPF(扩展的伯克利数据包过滤器)技术,通过内核级探针捕获关键事件。这些探针将数据发送到用户空间程序,由该程序负责对收集到的事件进行重排序、丰富化和关联处理。
在实现层面,Kunai 主要用 Rust 编写,并使用了强大的 Aya 库。这种设计使其成为一个独立的二进制文件,将 eBPF 探针和用户空间处理逻辑都嵌入其中,便于部署。
在继续之前,请注意:Kunai 的独立于发行版的预编译版本可在发布页面获取。如果你只是想尝试 Kunai,很可能不需要自己构建项目。
你可以使用一个包含构建项目所需全部依赖的 Docker 镜像:Kunai 构建 Docker 镜像。
这种“一刀切”的解决方案应适用于任何 Linux 发行版。
在构建一切之前,你需要安装一些工具。
rustupclang、libbpf-dev 和 bpf-linker在 Ubuntu/Debian 上安装依赖的示例命令:
sudo apt update
sudo apt install -y clang libbpf-dev lld musl-tools
# 假设你已经安装了 rustup 和 cargo
cargo install bpf-linker
一旦你安装了以上需求,就可以开始了。
cargo build
# 可执行文件位于:./target/debug/kunai
对于生产部署,我们建议使用 MUSL 构建静态二进制文件:
# 构建静态发布二进制文件
cargo build --release --target x86_64-unknown-linux-musl
# 静态二进制文件将位于:
./target/x86_64-unknown-linux-musl/release/kunai
为什么选择 MUSL? MUSL 生成的静态二进制文件在不同 Linux 发行版之间更具可移植性,避免了 glibc 版本的依赖问题。这对于你可能无法控制目标环境的生产部署尤其重要。
为 aarch64 交叉编译 kunai:
添加 aarch64 musl 目标:
rustup target add aarch64-unknown-linux-musl
安装交叉编译工具链(Ubuntu/Debian 示例):
sudo dpkg --add-architecture arm64
sudo apt update
sudo apt install -y git clang libbpf-dev lld musl-tools
sudo apt install -y crossbuild-essential-arm64 musl-tools:arm64
为 aarch64 构建:
cargo build --release --target aarch64-unknown-linux-musl
交叉编译后的二进制文件将位于:
./target/aarch64-unknown-linux-musl/release/kunai
如果你认为 Kunai 存在内存问题,这里有一种分析方法。
# 为所有包编译带有调试信息的 kunai
RUSTFLAGS="-g" cargo build
# 使用 heaptrack
sudo heaptrack kunai
Sysmon For Linux: https://github.com/Sysinternals/SysmonForLinux
NGSOTI 项目致力于培养下一代安全运营中心(SOC)操作人员,重点关注网络安全中人的因素。该项目强调为 SOC 操作人员提供必要的技能和开源工具,以应对检测工程、事件响应和威胁情报分析等挑战。项目涉及 CIRCL、Restena、Tenzir 和卢森堡大学等关键合作伙伴,旨在建立一个用于实践培训的真实运营基础设施。该计划将学术课程与行业洞察相结合,提供网络靶场中的动手实践经验。
NGSOTI 由欧洲数字计划(DEP)通过 ECCC(欧洲网络安全能力网络和能力中心)共同资助。