Современные средства безопасности, например EDR (Endpoint Detection and Response), не обходятся без применения технологии eBPF. EDR-системы требуют глубокого анализа поведения операционной системы, включая системные вызовы, сетевую активность и взаимодействие процессов.
Традиционные подходы часто требуют установки дополнительных модулей ядра или изменений в его коде, что может привести к снижению стабильности и безопасности системы. eBPF выглядит привлекательно: технология позволяет извлекать множество полезной информации из ядра ОС, при этом гарантируя безопасность (eBPF-программы проходят стадию верификации при загрузке в ядро). Разработка EDR-решений ведется не только крупными ведущими коммерческими компаниями, но и в open-source-сообществе. Вот примеры SoTA open-source-проектов:
Tetragon использует низкоуровневые контекстные политики, которые учитывают процессы, файлы, сетевые соединения, метаданные Kubernetes (Pod, namespace). Falco — YARA-like-правила с поддержкой логических операций и переменных. Tracee позволяет реализовывать пользовательские сигнатуры на Go, имеет библиотеку готовых сигнатур.
Актуальные задачи по направлению. Крупные технологические компании основательно подходят к внедрению open-source-инструментов, предъявляя высокие требования к надежности и производительности.
Задача сравнительного анализа SoTA-инструментов (Tetragon, Falco, Tracee) необходима для понимания возможности их масштабного внедрения. Сравнительный анализ производительности агентов (потребления CPU, памяти) осложняется тем, что агент — не только приложение в user mode, но и eBPF-программы, которые работают в контексте ядра.
Часть нагрузки, которая производится агентскими eBPF-программами, растворяется в общем потреблении ресурсов ядром и привычными способами мониторинга не выявляется. Поэтому актуальна задача по измерению потребления ресурсов eBPFпрограммами на высоко нагруженных системах и разработке соответствующего инструментария для измерения.