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

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

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

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

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

Категории

Все категории
Loading categories
LID — LID — Linux Integrity Drift: обход AppArmor через переписывание путей в eBPF. Манипулирование аргументами системных вызовов до LSM с нулевым следом в аудите. «Linux is Dying» | Kitploit
Инструменты/GitHubGitHub/azqzazq1/lid
Повышение привилегийАнализ уязвимостейЭксплуатацияОбход IDS/IPSТестирование на ПроникновениеАнализ Бинарных ФайловСтатьи и ИсследованияОбучение и ОбразованиеRed Teaming
GitHubazqzazq1/lid

LID

LID — Linux Integrity Drift: обход AppArmor через переписывание путей в eBPF. Манипулирование аргументами системных вызовов до LSM с нулевым следом в аудите. «Linux is Dying»

201194 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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


``` ██╗ ██╗██████╗ ██║ ██║██╔══██╗ ██║ ██║██║ ██║ ██║ ██║██║ ██║ ███████╗██║██████╔╝ ╚══════╝╚═╝╚═════╝ ```

Linux Integrity Drift

— «Linux умирает» —


Систематическое обнаружение путей в коде ядра, обходящих гарантии безопасности LSM
Ворота никогда не взламывали. Их просто обошли.



Что такое LID?

У фреймворка Linux Security Module есть одна ключевая гарантия, которая держится уже 20+ лет:

Модули безопасности могут только добавлять ограничения. Они никогда не могут их снимать.

Эта гарантия верна. LID её не нарушает.

LID находит пути в коде ядра, которые полностью обходят хуки LSM — подсистемы, выполняющие чувствительные с точки зрения безопасности операции, не обращаясь к фреймворку LSM. Проверка безопасности корректна. Проблема в том, что ядро её просто не запрашивает.


Понимание того, чем является LID (а чем — нет)

Каждая находка имеет два различных аспекта, которые не следует смешивать:

A) Пробел видимости политики

Архитектурное слепое пятно. Вопрос не в том, «может ли атакующий это эксплуатировать?», а в следующем:

  • Что AppArmor/SELinux на самом деле видит?
  • Что записывает журнал аудита?
  • Что наблюдает ваш SIEM/EDR?
  • Что думает движок политик, что произошло?

Если чувствительная с точки зрения безопасности операция выполняется, а уровень принудительного контроля её даже не оценивает, у вас пробел видимости — независимо от того, может ли атакующий практически злоупотребить этим сегодня. Это имеет значение для комплаенса, криминалистики и предположений об эшелонированной обороне.

B) Практический путь эскалации

Вопрос реальной эксплуатируемости:

  • Пересекает ли это границу привилегий?
  • Нужны ли атакующему существующие root/CAP_BPF для запуска?
  • Требуется ли цепочка эксплойтов или этого достаточно самого по себе?
  • Каково фактическое воздействие — доступ к данным, повышение привилегий, обход политики?

Это две разные вещи. Находка может быть критическим пробелом видимости (ваш мониторинг слеп), не будучи практическим повышением привилегий (атакующему уже нужен root). И наоборот, находка может быть прямым путём эскалации с минимальными предпосылками.

НаходкаПробел видимостиПрактическая эскалация
LID-001Критический — AppArmor ничего не видит, журнал аудита пуст, ноль криминалистических следовОграниченная — требует root или CAP_BPF+CAP_PERFMON (уже привилегирован). Не повышение привилегий. Воздействие: обход политики + слепота аудита.
LID-002Высокий — security_file_receive() никогда не срабатывает, передача fd невидима для всех LSMВысокая — работает из непривилегированного пользовательского пространства через io_uring. Пересекает границу принудительного контроля LSM без каких-либо привилегий.
LID-003Высокий — security_sb_mount() обойдён, политика монтирования AppArmor — мёртвый кодСредняя — требует доступ к namespace монтирования (CAP_SYS_ADMIN в user ns). Доступен во многих конфигурациях контейнеров.
LID-004Критический — AppArmor ничего не видит, ноль BPF-хуков (0/9), нет следов аудита для любой операции с BPF-токеномСредняя — требует делегирования bpffs хостом + CAP_BPF в user namespace. Доступен в контейнерных рантаймах с делегированием BPF (LXD/Incus).
LID-005Средний — классификаторы tc egress на интерфейсе контейнера никогда не оценивают трафик AF_XDPОграниченная — обходит tc egress на eth0 контейнера (подтверждено). Cilium НЕ обойдён — применяет контроль на входящем veth со стороны узла + проверку исходного IP (протестировано). Воздействие ограничено конфигурациями plain-Docker с фильтрацией только через tc egress.

Матрица воспроизводимости

У каждой находки есть конкретные требования к ядру/конфигурации/привилегиям. Если ваше окружение не совпадает, находка не воспроизведётся.

LID-001: Переписывание пути в eBPF

УсловиеТребуетсяПримечания
Версия ядра5.x+Протестировано на 5.15, 6.1, 6.6, 6.8
CONFIG_BPF_SYSCALL=yПо умолчанию во всех крупных дистрибутивах
CONFIG_BPF_KPROBE_OVERRIDE=yUbuntu/Debian включают, RHEL нет
CONFIG_SECURITY_APPARMOR=yЦелевой LSM должен быть AppArmor
Профиль AppArmorEnforcing, правило deny на целевой путьРаботает с любым правилом deny на основе пути
Привилегииroot или CAP_BPF + CAP_PERFMONНе может работать без привилегий
kernel.lockdownnone или integrityРежим confidentiality блокирует присоединение kprobe
kernel.unprivileged_bpf_disabledНе важноВ любом случае требуется CAP_BPF
fs.protected_hardlinks0 для межпользовательских ссылок1 (по умолчанию) всё ещё разрешает жёсткие ссылки того же пользователя
SELinux вместо AppArmorНе работаетSELinux основан на inode, а не на пути

LID-002: io_uring MSG_RING

УсловиеТребуетсяПримечания
Версия ядра6.0+IORING_MSG_SEND_FD добавлен в 6.0
CONFIG_IO_URING=yПо умолчанию во всех крупных дистрибутивах
ПривилегииНетРаботает из непривилегированного пользовательского пространства
sysctl io_uring_disabled0 (по умолчанию)2 блокирует непривилегированных, 1 блокирует всех
Целевой LSMЛюбой (SELinux, AppArmor, Smack)security_file_receive() — универсальный хук LSM
kernel.lockdownНе важноBPF не задействован

LID-004: Слепота AppArmor к BPF-токенам

УсловиеТребуетсяПримечания
Версия ядра6.9+BPF-токен появился в 6.9
CONFIG_BPF_SYSCALL=yПо умолчанию во всех крупных дистрибутивах
CONFIG_SECURITY_APPARMOR=yПо умолчанию в Ubuntu/Debian
bpffs с делегированиемДаХост должен монтировать с опциями delegate_*
ПривилегииCAP_BPF в user namespaceТривиально доступен для root в userns
SELinux вместо AppArmorНе затронутSELinux реализует все 9 BPF-хуков

LID-003: Новый API монтирования

УсловиеТребуетсяПримечания
Версия ядра5.2+fsopen/fsmount появились в 5.2
CONFIG_SECURITY_APPARMOR=yЗатронут только AppArmor
ПривилегииCAP_SYS_ADMIN в user namespaceДоступно с unshare -m
SELinux вместо AppArmorНе работаетSELinux реализует security_sb_kern_mount()
Контейнерный рантаймЗависит от seccomp-фильтраСтандартный seccomp Docker блокирует fsopen — Podman/LXC могут не блокировать

LID-005: Обход tc egress через AF_XDP

УсловиеТребуетсяПримечания
Версия ядра4.18+AF_XDP появился в 4.18
CONFIG_XDP_SOCKETS=yПо умолчанию во всех крупных дистрибутивах
ПривилегииТолько CAP_NET_RAWПо умолчанию в Docker и подах Kubernetes
Контейнерный рантаймDocker, K8s, LXCСтандартный набор capabilities
Сетевая политика на основе tcДаCilium eBPF, Calico, tc u32/flower

Краткая справка: что блокирует каждую находку

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