Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
jailer — Jailer — это система изоляции процессов на основе eBPF, обеспечивающая мандатный контроль доступа (MAC) для Linux. Она отслеживает процессы с помощью BPF-карт task_storage и применяет ролевые политики к доступу к файлам, сетевым операциям и выполнению процессов. | Kitploit
Инструменты/GitHubGitHub/gen0sec/jailer
Оборонительные ИнструментыБезопасность контейнеровСетевая безопасностьБезопасность облачных сред
GitHubgen0sec/jailer

jailer

Jailer — это система изоляции процессов на основе eBPF, обеспечивающая мандатный контроль доступа (MAC) для Linux. Она отслеживает процессы с помощью BPF-карт task_storage и применяет ролевые политики к доступу к файлам, сетевым операциям и выполнению процессов.

Репозиторий
582137 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Сайт
Поделиться

Jailer - обязательный контроль доступа на основе eBPF

Предупреждение: Этот проект находится в активной разработке и НЕ готов к использованию в production. API, форматы политик и поведение могут меняться без уведомления. Используйте только для тестирования и экспериментов.

Благодарности

Примечание: Это независимая реализация и не является тем же проектом, что и решение Meta. Хотя BpfJailer функционально схож и вдохновлён оригинальной идеей и дизайном Лайама Уайзхарта, Джастина Нга, Карла Эль Хури, Манси Чадха из Meta, это отдельная кодовая база, разработанная независимо. Мы выражаем благодарность за видение и основополагающие концепции, вдохновившие эту работу.

Сообщество

Join us on Discord Substack

Jailer — это система изоляции процессов на основе eBPF, предоставляющая обязательный контроль доступа (MAC) для Linux. Она отслеживает процессы с помощью BPF-карт task_storage и обеспечивает применение политик на основе ролей для доступа к файлам, сетевых операций и выполнения процессов.

Возможности (текущая версия)

ФункцияСтатусОписание
Отслеживание процессов✅ РаботаетОтслеживает процессы с помощью BPF-карты task_storage
Регистрация через сокет✅ РаботаетПроцессы регистрируются через API Unix-сокета
Политики на основе ролей✅ РаботаетОграниченные и разрешительные роли
Контроль доступа к файлам✅ РаботаетБлокировка/разрешение операций открытия файлов
Наследование изоляции✅ РаботаетДочерние процессы наследуют изоляцию родителя
Сетевой контроль✅ РаботаетБлокировка/разрешение socket bind/connect
Фильтрация портов/протоколов✅ РаботаетПравила разрешения/запрета TCP/UDP по портам
Контроль выполнения✅ РаботаетБлокировка/разрешение выполнения процессов
Сопоставление путей✅ РаботаетОбход dentry с инвалидацией кэша
Подписанные бинарные файлы🚧 ЗаглушкаПроверка подписи бинарных файлов (не реализовано)
Альтернативная регистрация✅ РаботаетАвторегистрация по исполняемому файлу, cgroup или xattr
Режим без демона✅ РаботаетЗагрузочный бинарный файл закрепляет программы при ранней загрузке
События аудита✅ РаботаетPerf-буфер для интеграции с systemd-journald

Демонстрация Nginx

Nginx demo

Сложная демонстрация

asciicast

Требования к ядру

Минимальная версия ядра

  • Linux 5.11+ (для поддержки BPF_MAP_TYPE_TASK_STORAGE)
  • Рекомендуется: Linux 6.1+ (лучшая поддержка BTF)

Необходимая конфигурация ядра

# Проверка текущей конфигурации ядра
zcat /proc/config.gz 2>/dev/null || cat /boot/config-$(uname -r)

Необходимые параметры:

CONFIG_BPF=y
CONFIG_BPF_SYSCALL=y
CONFIG_BPF_LSM=y
CONFIG_DEBUG_INFO_BTF=y

Включение BPF LSM

BPF LSM должен быть включен в параметрах загрузки ядра:

# Проверка активности BPF LSM
cat /sys/kernel/security/lsm
# В списке должен присутствовать "bpf"

# Если нет, добавьте в параметры загрузки ядра:
# Отредактируйте /etc/default/grub и добавьте в GRUB_CMDLINE_LINUX:
#   lsm=lockdown,capability,landlock,yama,apparmor,bpf

# Затем обновите grub и перезагрузитесь:
sudo update-grub
sudo reboot

Для систем Ubuntu/Debian также можно использовать:

# Создайте скрипт для включения BPF LSM
cat > /tmp/enable_bpf_lsm.sh << 'EOF'
#!/bin/bash
GRUB_FILE="/etc/default/grub"
if grep -q "lsm=" "$GRUB_FILE"; then
    sudo sed -i 's/lsm=[^""]*/lsm=lockdown,capability,landlock,yama,apparmor,bpf/' "$GRUB_FILE"
else
    sudo sed -i 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="\1 lsm=lockdown,capability,landlock,yama,apparmor,bpf"/' "$GRUB_FILE"
fi
sudo update-grub
echo "BPF LSM включён. Пожалуйста, перезагрузитесь."
EOF
chmod +x /tmp/enable_bpf_lsm.sh
sudo /tmp/enable_bpf_lsm.sh

Сборка

Предварительные требования

# Установка Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# Установка зависимостей сборки (Ubuntu/Debian)
sudo apt-get install -y clang llvm libelf-dev linux-headers-$(uname -r)

# Установка цели BPF для Rust
rustup target add bpfel-unknown-none

Сборка всех компонентов

cd bpfjail

# Сборка BPF-программ
cd bpfjailer-bpf && cargo build --release && cd ..

# Сборка демона и клиента
cargo build --release

Быстрый старт

1. Запуск демона

# Запуск от root (загружает config/policy.json, если присутствует)
sudo RUST_LOG=info ./target/release/bpfjailer-daemon

Ожидаемый вывод:

[INFO] BpfJailer daemon starting...
[INFO] Loading BpfJailer eBPF programs with libbpf-rs...
[INFO] ✓ pending_enrollments map available for enrollment
[INFO] ✓ network_rules map available for port/protocol filtering
[INFO] ✓ task_storage map created successfully
[INFO] ✓ Program task_alloc attached
[INFO] ✓ Program file_open attached
[INFO] ✓ Program socket_bind attached
[INFO] ✓ Program socket_connect attached
[INFO] ✓ Program bprm_check_security attached
[INFO] Initialized with default roles: restricted (1), permissive (2)
[INFO] Loaded policy from config/policy.json
[INFO] Loaded 5 roles
[INFO] Enrollment server listening on /run/bpfjailer/enrollment.sock

2. Запуск тестов безопасности

# Запуск тестов уязвимостей БЕЗ изоляции (показывает успешные атаки)
sudo python3 tests/vulnerable_apps/run_tests.py

# Запуск тестов уязвимостей С ограниченной ролью (показывает заблокированные атаки)
sudo python3 tests/vulnerable_apps/run_tests.py --role 1

# Запуск конкретного теста
sudo python3 tests/vulnerable_apps/run_tests.py --role 1 --test path

# Список доступных тестов и ролей
sudo python3 tests/vulnerable_apps/run_tests.py --list

Пример вывода с ограниченной ролью:

============================================================
TEST: Path Traversal / Arbitrary File Read
============================================================
Attempting to read /etc/passwd via path traversal...
BLOCKED - Permission denied (BpfJailer blocked file access)

============================================================
TEST: Command Injection
============================================================
Attempting command injection...
BLOCKED - Permission denied (BpfJailer blocked exec)

============================================================
TEST: Reverse Shell / Data Exfiltration
============================================================
Test 1: Reverse shell connection to 127.0.0.1:4444
BLOCKED - Permission denied (BpfJailer blocked connect)

Доступные тесты безопасности

ТестУязвимостьСмягчается ролью
path_traversalЧтение произвольных файлов через ../restricted, isolated
command_injectionВыполнение команд оболочкиrestricted, webserver, isolated
reverse_shellИсходящие соединения к атакующемуrestricted, isolated
ssrfДоступ к внутренним сервисам/метаданным облакаrestricted, isolated
arbitrary_writeЗапись в критически важные путиrestricted
crypto_minerСкачивание + выполнение + соединение с пуломrestricted, webserver
privilege_escalationЧтение shadow, запись в sudoersrestricted

3. Ручное тестирование регистрации

#!/usr/bin/env python3
import socket
import json
import os

# Connect to daemon
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock.connect("/run/bpfjailer/enrollment.sock")
Скачать инструмент