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

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

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

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

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

Категории

Все категории
Loading categories
bpflock — Инструмент безопасности на основе eBPF для блокировки и аудита Linux-машин. Ограничивает возможности ядра, блокирует бесфайловое выполнение, защищает память и укрепляет защиту контейнеров и IoT-устройств с помощью декларативных профилей. | Kitploit
Инструменты/GitHubGitHub/linux-lock/bpflock
Оборонительные ИнструментыБезопасность контейнеровБезопасность IoT
GitHublinux-lock/bpflock

bpflock

Инструмент безопасности на основе eBPF для блокировки и аудита Linux-машин. Ограничивает возможности ядра, блокирует бесфайловое выполнение, защищает память и укрепляет защиту контейнеров и IoT-устройств с помощью декларативных профилей.

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

Популярное

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

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

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

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

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

bpflock - Блокировка Linux-машин

Bpflock Logo

bpflock — безопасность на основе eBPF для блокировки и аудита Linux-машин.

Примечание: bpflock currently находится на экспериментальной стадии, возможны сбои, параметры и семантика безопасности могут измениться, некоторые BPF-программы будут обновлены для использования библиотеки Cilium ebpf.

Sections

  • 1. Введение
  • 2. Обзор функциональности
    • 2.1 Функции безопасности
    • 2.2 Семантика
  • 3. Развертывание
  • 4. Документация
  • 5. Сборка

1. Введение

bpflock использует eBPF для усиления безопасности Linux. Ограничивая доступ к широкому спектру функций Linux, bpflock может уменьшить поверхность атаки и заблокировать некоторые известные методы атак.

Только программы, такие как менеджеры контейнеров, systemd и другие контейнеры/программы, работающие в пространствах имен pid и network хоста, имеют доступ ко всем функциям Linux; контейнеры и приложения, работающие в своих собственных пространствах имен, будут ограничены.

Если BPF-программы bpflock работают в профиле restricted, то всем программам/контейнерам, включая привилегированные, будет отказано в доступе.

bpflock защищает Linux-машины, используя множество функций безопасности, включая Linux Security Modules + BPF.

Заметки по архитектуре и дизайну безопасности:

  • bpflock не является решением для мандатного контроля доступа с метками и не предназначен для замены AppArmor, SELinux и других MAC-решений. bpflock использует простой декларативный профиль безопасности.
  • bpflock предлагает множество небольших BPF-программ, которые можно повторно использовать в различных контекстах: от развертываний Cloud Native до устройств Linux IoT.
  • bpflock способен ограничить доступ root к определенным функциям Linux, однако он не защищает от злонамеренного root.

2. Обзор функциональности

2.1 Функции безопасности

bpflock предоставляет множество защитных мер, которые можно классифицировать следующим образом:

  • Защита памяти

    • Блокировка образа ядра
    • Защита модулей ядра
    • Защита BPF
  • Защита процессов

    • Безфайловое выполнение в памяти
    • Защита пространств имен
  • Атаки с добавлением оборудования

    • Защита от добавления USB
  • Трассировка системы и приложений

    • Трассировка выполнения приложений
    • Трассировка привилегированных системных операций
  • Защита файловой системы

    • Защита корневой файловой системы в режиме только чтения
    • Защита sysfs
  • Сетевая защита

    • bpflock может включить в будущем простую сетевую защиту, которую можно использовать в одиночных машинах или на устройствах Linux-IoT, но не будет включать защиту для Cloud Native. Cilium и другие решения, связанные с CNI для Kubernetes, намного лучше.

2.2 Семантика

bpflock сохраняет семантику безопасности простой. Он поддерживает три глобальных профиля для широкого охвата спектра безопасности и ограничения доступа к определенным функциям Linux.

  • profile: это глобальный профиль, который может быть применен к каждой BPF-программе; он принимает одно из следующих значений:

    • allow|none|privileged: они одинаковы и определяют наименее безопасный профиль. В этом профиле доступ регистрируется и разрешается для всех процессов. Полезно для регистрации событий безопасности.
    • baseline: ограничительный профиль, в котором доступ запрещен для всех процессов, кроме привилегированных приложений и контейнеров, работающих в пространствах имен хоста, или профилей, разрешенных для каждой cgroup в BPF-карте bpflock_cgroupmap.
    • restricted: строго ограничительный профиль, в котором доступ запрещен для всех процессов.
  • Разрешенные или заблокированные операции/команды:

    В профилях allow|privileged или baseline можно указать список разрешенных или заблокированных команд, и они будут применены.

    • --protection-allow: список разрешенных операций, разделенных запятыми. Действителен в профиле baseline, полезен для приложений, которые слишком специфичны и выполняют привилегированные операции. Это уменьшит использование профиля allow | privileged, поэтому вместо использования профиля privileged мы можем указать baseline и добавить набор разрешенных команд для определения таких приложений в каждом конкретном случае.
    • --protection-block: список заблокированных операций, разделенных запятыми. Действителен в профилях allow|privileged и baseline, позволяет ограничить доступ к некоторым функциям без использования полного профиля restricted, который может нарушить работу некоторых специфических приложений. Использование профилей baseline или privileged открывает доступ к большинству функций Linux, но с опцией --protection-block можно заблокировать часть этого доступа.

Примеры безопасности BPF см. в примерах конфигурации bpflock

3. Развертывание

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

bpflock требует следующего:

  • Версия ядра Linux >= 5.13 со следующей конфигурацией:

    CONFIG_BPF_SYSCALL=y
    CONFIG_DEBUG_INFO=y
    CONFIG_DEBUG_INFO_BTF=y
    CONFIG_KPROBES=y
    CONFIG_LSM="...,bpf"
    CONFIG_BPF_LSM=y
    
  • Очевидно, ядро с поддержкой BTF.

Включение поддержки BPF LSM

Если ваше ядро было скомпилировано с CONFIG_BPF_LSM=y, проверьте /boot/config-*, чтобы подтвердить, но при запуске bpflock выдается ошибка:

must have a kernel with 'CONFIG_BPF_LSM=y' 'CONFIG_LSM=\"...,bpf\"'"

Затем, чтобы включить BPF LSM, например в Ubuntu:

  1. Откройте файл /etc/default/grub, естественно, с привилегиями.
  2. Добавьте следующее в переменную GRUB_CMDLINE_LINUX и сохраните.
    "lsm=lockdown,capability,yama,apparmor,bpf"
    
    или
    GRUB_CMDLINE_LINUX="lsm=lockdown,capability,yama,apparmor,bpf"
    
  3. Обновите конфигурацию grub с помощью:
    sudo update-grub2
    
  4. Перезагрузитесь в ваше ядро.

3.2 Развертывание в Docker

Для запуска с профилем по умолчанию allow или privileged (наименее безопасный профиль):

docker run --name bpflock -it --rm --cgroupns=host \
  --pid=host --privileged \
  -v /sys/kernel/:/sys/kernel/ \
  -v /sys/fs/bpf:/sys/fs/bpf linuxlock/bpflock

Безфайловое выполнение бинарных файлов

Скачать инструмент