
Монитор безопасности ядра времени выполнения на основе eBPF, обнаруживающий эксплойты и руткиты посредством целостности потока управления (wCFI) и обнаружения повышения привилегий (PSD) для систем Linux.
VED (Vault Exploit Defense)-eBPF использует eBPF (extended Berkeley Packet Filter) для реализации мониторинга безопасности ядра в реальном времени и обнаружения эксплойтов для систем Linux.
eBPF — это внутриядерная виртуальная машина, которая позволяет выполнять код в ядре без изменения самого исходного кода ядра. Программы eBPF могут быть прикреплены к точкам трассировки, kprobes и другим событиям ядра для эффективного анализа выполнения и сбора данных.
VED-eBPF использует eBPF для отслеживания поведения ядра, чувствительного к безопасности, и обнаружения аномалий, которые могут указывать на эксплойт или руткит. Он предоставляет два основных метода обнаружения:
wCFI (Control Flow Integrity) отслеживает стек вызовов ядра для обнаружения атак на перехват потока управления. Он работает путем создания битовой карты допустимых точек вызова и проверки каждого возвращаемого адреса на соответствие известной точке вызова.
PSD (Privilege Escalation Detection) отслеживает изменения в структурах учетных данных в ядре для обнаружения несанкционированного повышения привилегий.
VED-eBPF прикрепляет программы eBPF к функциям ядра для отслеживания потоков выполнения и извлечения событий безопасности. Программы eBPF отправляют эти события через буферы perf в пользовательское пространство для анализа.
wCFI отслеживает стек вызовов, прикрепляясь к функциям, указанным в командной строке. При каждом вызове он выгружает стек, присваивает идентификатор стека и проверяет возвращаемые адреса по предварительно вычисленной битовой карте допустимых точек вызова, сгенерированной из objdump и /proc/kallsyms.
Если обнаружен недопустимый возвращаемый адрес, указывающий на повреждение стека, он генерирует wcfi_stack_event, содержащий:
* Трассировка стека
* Идентификатор стека
* Недопустимый возвращаемый адрес
Это событие безопасности отправляется через буферы perf в пользовательское пространство.
Программа wCFI eBPF также отслеживает изменения указателя стека и текстовой области ядра, чтобы поддерживать актуальность проверки.
PSD отслеживает изменения структуры учетных данных, прикрепляясь к таким функциям, как commit_creds и prepare_kernel_cred. При каждом вызове он извлекает информацию, такую как:
* Текущие учетные данные процесса
* Хэши учетных данных и пространства имен пользователя
* Стек вызовов
Он сравнивает учетные данные до и после вызова для обнаружения несанкционированных изменений. Если обнаружено незаконное повышение привилегий, он генерирует psd_event, содержащий поля учетных данных, и отправляет его через буферы perf.
VED-eBPF требует:
VED-eBPF в настоящее время является доказательством концепции, демонстрирующим потенциал обнаружения эксплойтов ядра и руткитов на основе eBPF. Текущие работы включают:
VED-eBPF демонстрирует перспективность eBPF для создания эффективного мониторинга безопасности ядра с низкими накладными расходами без модификации ядра. Используя трассировку eBPF и буферы perf, критические события безопасности могут быть извлечены в реальном времени и проанализированы для выявления возникающих угроз ядра в облачных средах.