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

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

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

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

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

Категории

Все категории
Loading categories
ebpf-container-escape-framework — Аудит только eBPF EDR для Linux 5.15+ LTS: 14 хуков ядра, 15 действий (13 техник MITRE), происхождение процессов, экспорт в SIEM, готовность к K8s/Docker. | Kitploit
Инструменты/GitHubGitHub/0xmfbk/ebpf-container-escape-framework
Оборонительные ИнструментыБезопасность контейнеровОбнаружение ВторженийРеагирование на ИнцидентыАнализ Журналов
GitHub0xmfbk/ebpf-container-escape-framework

ebpf-container-escape-framework

Аудит только eBPF EDR для Linux 5.15+ LTS: 14 хуков ядра, 15 действий (13 техник MITRE), происхождение процессов, экспорт в SIEM, готовность к K8s/Docker.

Популярное

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

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

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

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

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

Обнаружение побега из контейнера на основе eBPF и EDR для аудита среды выполнения

CI Go Version Kernel Support Memory Footprint License

Только обнаружение и аудит. Неблокирующий сенсор. Ни одна BPF-программа не возвращает -EPERM; ни один системный вызов не блокируется. Этот агент — плоскость наблюдения за средой выполнения, а не плоскость предотвращения. См. docs/SECURITY.md и THREAT_MODEL.md.

eBPF EDR Demo

Сверхлёгкий EDR-агент для Linux, работающий только в режиме аудита, построенный на eBPF (C) и высокоэффективном демоне на Go. Он ориентирован на ядро Linux 5.15 LTS и выше, отличается горячим путём с нулевым выделением памяти, объёмом памяти менее 30 МБ и глубоким обогащением контекста контейнеров/K8s.

✨ Почему этот фреймворк?

  • 🎯 Канареечные файлы (нулевые ложные срабатывания): размещайте невидимые пути в ядре. Если злоумышленник обращается к ним (например, к токенам сервисных аккаунтов K8s), мгновенно срабатывает оповещение уровня CRITICAL.
  • ☁️ Обогащение контекста K8s: асинхронно опрашивает API Kubelet, чтобы сопоставить cgroup_id с именем Pod, пространством имён и ServiceAccount, не увеличивая 208-байтовый формат передачи данных ядра.
  • 🐧 Совместимость с 5.15 LTS: структурная поддержка Ubuntu 22.04 и Debian 12, протестирована и проверена на ядре 6.12.
  • ⚡ Высокая производительность: 0.40% CPU в режиме простоя и 0 потерь ringbuf при стресс-тесте с 25 000 fork.

Статус: этап 2.7 завершён. 13 техник MITRE ATT&CK в рамках 16 действий. Проверено сквозным образом на ядре 6.12.111 (82 PASS / 0 FAIL).

Покрытие

#ДействиеКритичностьMITREТочка перехвата
1Container_Namespace_UnshareHIGHT1611kprobe/__x64_sys_unshare
2Container_Pivot_Root_EscapeCRITICALT1611kprobe/__x64_sys_pivot_root
3Sensitive_File_AccessHIGHT1003.008tracepoint/sys_enter_openat + open
4Process_ExecutionINFO/MEDIUMT1059.004tracepoint/sys_enter_execve
5Network_ConnectionINFO/HIGHT1071tracepoint/sys_enter_connect
6Process_InjectionHIGHT1055.008tracepoint/sys_enter_ptrace
7Log_TamperingHIGHT1562.001tracepoint/sys_enter_unlinkat
8Ebpf_TamperingHIGHT1562.001tracepoint/sys_enter_bpf
9Perf_Event_OpenMEDIUMT1562.001tracepoint/sys_enter_perf_event_open
10Suspicious_MountHIGHT1611tracepoint/sys_enter_mount
11Namespace_SwitchHIGHT1611tracepoint/sys_enter_setns
12Chroot_EscapeHIGHT1611tracepoint/sys_enter_chroot
13Executable_MemoryMEDIUMT1620tracepoint/sys_enter_mprotect
14Core_Pattern_ModificationCRITICALT1611tracepoint/sys_enter_openat + open
15Cgroup_Release_AgentCRITICALT1611tracepoint/sys_enter_openat + open
16Canary_TriggeredCRITICALT1552.001tracepoint/sys_enter_openat + open

Действия 9 и 13 подключены, но по умолчанию подавляются на стороне ядра через disabled_actions в config.toml.

Архитектура

Хуки ядра (14) подают данные в фильтр по comm/cgroup, затем в O(1)-поиск по хешу canary_paths, затем в поиск action_enabled. События помещаются в ringbuf размером 1 МиБ, переносящий 208-байтовые записи. Пользовательское пространство читает в фиксированный пулированный буфер, применяет token bucket для каждого действия, обогащает данными о происхождении процесса и пути cgroup, а также метаданными Pod K8s из ограниченных LRU-кэшей, и маршрутизирует через Encoder + Sink к любому получателю.

Полные сведения: docs/ARCHITECTURE.md.

Интеграция с SIEM

ebpf edr экспортирует оповещения в любую SIEM через слой формата + транспорта.

[output]
format = "ecs"        # json | ecs | ocsf | cef | leef
target = "webhook"    # file | stdout | syslog | webhook

[output.webhook]
url         = "https://splunk.internal:8088/services/collector/event"
auth_header = "Splunk ${SPLUNK_HEC_TOKEN}"
splunk_hec  = true

Поддерживаемые транспорты: file, stdout, syslog (UDP/TCP/TLS), HTTPS webhook. Поддерживаемые форматы: native JSON, ECS 8.11, OCSF 1.3.0, CEF, LEEF 2.0.

Рецепты для Splunk, Elastic, Sentinel, QRadar и generic syslog: docs/SIEM_INTEGRATION.md.

При отсутствии [output] поведение побайтово идентично v1.x.

Требования

  • Linux Kernel >= 5.15 LTS с CONFIG_DEBUG_INFO_BTF=y (/sys/kernel/btf/vmlinux)
  • Протестировано на Debian 13 (Kernel 6.12). Полная матрица — в docs/KERNEL_COMPATIBILITY.md.
  • clang, gcc, Go >= 1.21, bpftool, заголовочные файлы libbpf
  • Root с CAP_BPF CAP_PERFMON CAP_SYS_ADMIN

Сборка

make kernel        # kernel/bpf_program.o
make userspace     # userspace/ebpf_controller
make emulation     # emulation/adversary

Проверка (15 основных этапов + 2 этапа SIEM)

sudo -E make verify

Выполняет проверку окружения, сборку, проверку раскладки структур C/Go, пробный прогон BPF-верификатора, runtime smoke-тест, эмуляцию противника, тест производительности, матрицу конфигураций, перезагрузку по SIGHUP, простой CPU, обогащение lineage, границы кэша, новые хуки, матрицу форматов и доставку webhook.

Установка (systemd)

sudo ./install.sh --dry-run
sudo ./install.sh
sudo ./install.sh --uninstall

Устанавливает /usr/local/sbin/ebpf-edr, /usr/local/lib/ebpf-edr/bpf_program.o, /etc/ebpf-edr/config.toml (существующий сохраняется; новый по умолчанию в .new), /etc/systemd/system/ebpf-edr.service, /etc/logrotate.d/ebpf-edr.

Конфигурация

TOML в /etc/ebpf-edr/config.toml. Приоритет: CLI > env (EDR_*) > файл > значения по умолчанию.

mode = "audit"

disabled_actions = [
    "Perf_Event_Open",
    "Executable_Memory",
]

[log]
path        = "/var/log/ebpf_edr.json"
max_bytes   = 52428800
max_backups = 5
level       = "info"

[filter]
comm_allowlist   = []
cgroup_allowlist = []
canary_paths     = ["/var/run/secrets/kubernetes.io/serviceaccount/token"]

[k8s]
enrichment = true

[rates]
events_per_sec = 200
burst          = 400

[container]
cache_max_entries = 5000

[context]
lineage_max_depth  = 16
lineage_cache_size = 20000
cgroup_cache_size  = 5000

Перезагрузка: sudo systemctl reload ebpf-edr. mode = "enforce" отклоняется; эта сборка работает только в режиме аудита.

Схема событий (v3, 208 байт в проводном формате)

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