
Монитор безопасности и охотник за угрозами на основе eBPF для Linux, предоставляющий хронологически упорядоченные события с учетом контейнеров и корреляцией на хосте для реагирования на инциденты и криминалистического анализа.
Kunai — мощный инструмент, предназначенный для получения практических сведений при выполнении таких задач, как мониторинг безопасности и охота за угрозами в системах Linux. Воспринимайте его как аналог Sysmon для Windows, адаптированный для всестороннего и точного мониторинга событий.
Kunai использует технологию eBPF (Extended Berkeley Packet Filter) с зондами на уровне ядра, которые захватывают критические события. Эти зонды отправляют данные пользовательской программе, отвечающей за такие задачи, как переупорядочивание, обогащение и корреляция собранных событий.
С точки зрения реализации Kunai в основном написан на Rust с использованием мощной библиотеки Aya. Такая архитектура обеспечивает самодостаточный автономный двоичный файл, объединяющий как зонды eBPF, так и логику обработки в пользовательском пространстве для простоты развёртывания.
Прежде чем продолжить, обратите внимание, что существует не зависящая от дистрибутива предварительно скомпилированная версия Kunai, доступная на странице релизов. Если вы просто хотите попробовать Kunai, вам, скорее всего, не нужно собирать проект самостоятельно.
Вы можете использовать Docker-образ, который включает всё необходимое для простой сборки проекта: Docker-образ для сборки Kunai.
Это универсальное решение должно работать в любом дистрибутиве 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. Это особенно важно для продакшен-развёртывания, где вы можете не контролировать целевую среду.
Для кросс-компиляции kunai под aarch64:
Установите цель 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 софинансируется в рамках программы Digital Europe Programme (DEP) через ECCC (Европейская сеть и центр компетенций в области кибербезопасности).