
Monitor de segurança do kernel em tempo de execução baseado em eBPF que detecta exploits e rootkits por meio de integridade de fluxo de controle (wCFI) e detecção de escalada de privilégios (PSD) para sistemas Linux.
VED (Vault Exploit Defense)-eBPF utiliza eBPF (extended Berkeley Packet Filter) para implementar monitoramento de segurança do kernel em tempo de execução e detecção de exploração para sistemas Linux.
eBPF é uma máquina virtual dentro do kernel que permite a execução de código no kernel sem modificar o próprio código-fonte do kernel. Programas eBPF podem ser anexados a tracepoints, kprobes e outros eventos do kernel para analisar eficientemente a execução e coletar dados.
VED-eBPF usa eBPF para rastrear comportamentos do kernel sensíveis à segurança e detectar anomalias que possam indicar uma exploração ou rootkit. Ele fornece duas detecções principais:
wCFI (Integridade do Fluxo de Controle) rastreia a pilha de chamadas do kernel para detectar ataques de sequestro de fluxo de controle. Funciona gerando um bitmap de locais de chamada válidos e validando se cada endereço de retorno corresponde a um local de chamada conhecido.
PSD (Detecção de Escalação de Privilégios) rastreia alterações nas estruturas de credenciais no kernel para detectar escalações de privilégio não autorizadas.
VED-eBPF anexa programas eBPF a funções do kernel para rastrear fluxos de execução e extrair eventos de segurança. Os programas eBPF enviam esses eventos via buffers perf para o espaço do usuário para análise.
O wCFI rastreia a pilha de chamadas anexando-se a funções especificadas na linha de comando. Em cada chamada, ele despeja a pilha, atribui um ID de pilha e valida os endereços de retorno contra um bitmap pré-computado de locais de chamada válidos gerados a partir do objdump e /proc/kallsyms.
Se um endereço de retorno inválido for detectado, indicando uma pilha corrompida, ele gera um wcfi_stack_event contendo:
* Rastreamento da pilha
* ID da pilha
* Endereço de retorno inválido
Este evento de segurança é enviado via buffers perf para o espaço do usuário.
O programa eBPF wCFI também rastreia alterações no ponteiro da pilha e na região de texto do kernel para manter a validação atualizada.
O PSD rastreia modificações na estrutura de credenciais anexando-se a funções como commit_creds e prepare_kernel_cred. Em cada chamada, ele extrai informações como:
* Credenciais do processo atual
* Hashes das credenciais e namespace do usuário
* Pilha de chamadas
Ele compara as credenciais antes e depois da chamada para detectar alterações não autorizadas. Se uma escalação de privilégio ilegal for detectada, ele gera um psd_event contendo os campos de credenciais e o envia via buffers perf.
VED-eBPF requer:
VED-eBPF é atualmente uma prova de conceito demonstrando o potencial para detecção de exploração de kernel e rootkit baseada em eBPF. O trabalho em andamento inclui:
VED-eBPF mostra a promessa do eBPF para construir monitoramento de segurança do kernel eficiente e de baixa sobrecarga sem modificação do kernel. Ao aproveitar o rastreamento eBPF e os buffers perf, eventos críticos de segurança podem ser extraídos em tempo real e analisados para identificar ameaças emergentes ao kernel para ambientes nativos da nuvem.