Análisis en profundidad de la monitorización en ejecución con eBPF
Cómo construir sondas de núcleo seguras y de solo lectura para proteger contenedores.
Qué ofrece realmente eBPF
eBPF ejecuta programas pequeños y verificados dentro del núcleo Linux sin un módulo ni modificaciones del núcleo. Antes de cargarlos, el verificador rechaza lo que podría entrar en bucles infinitos, leer fuera de límites o acceder a memoria no permitida. Esa propiedad permite conectar código de forma segura a rutas frecuentes como el límite de llamadas al sistema.
ECRSM es un monitor educativo de ejecución y de solo lectura construido sobre ese límite: sondas eBPF del núcleo, un agente Go y un panel React. Es una plataforma docente con escenarios sintéticos, no un EDR de producción; busca hacer comprensible la visibilidad a nivel de núcleo.
Dónde se conecta
ECRSM se conecta a tracepoints del núcleo en vez de kprobes, porque los tracepoints mantienen una ABI estable entre versiones:
| Tracepoint | Señal |
|---|---|
execve | Ejecución de procesos, vista principal de shells inversas y binarios sospechosos |
connect | Conexiones salientes, señales periódicas C2 y destinos de exfiltración |
ptrace | Inyección de procesos y conexión de depuradores |
mmap | Mapeos de memoria ejecutable, indicio de preparación de shellcode |
El recorrido de los datos
- Espacio del núcleo: un programa C eBPF se activa en cada tracepoint y copia solo metadatos, como PID, UID,
comm, tamaños de argv y dirección destino, a un búfer circular. Nunca cargas útiles ni secretos. - Espacio de usuario: un agente Go vacía el búfer, enriquece cada evento con metadatos de contenedores y Kubernetes, como pod, namespace e image, y evalúa reglas ligeras.
- Panel: los eventos llegan a React por WebSockets, de modo que una llamada al núcleo se convierte en una fila visible en tiempo real.
Se despliega como Kubernetes DaemonSet mediante un paquete de Helm (Helm chart), con exactamente una sonda por nodo.
La seguridad define todo el diseño
Escribir en el núcleo puede bloquear un equipo. ECRSM nunca lo hace:
- Inspección de solo lectura: los tracepoints observan sin modificar argumentos de llamadas al sistema ni datos de paquetes.
- Solo metadatos: no salen del núcleo bytes de carga útil, variables de entorno ni contenido de archivos.
- Mínimo privilegio: el agente ejecuta con
CAP_BPF/CAP_SYS_ADMIN, sin permisos adicionales. - Simulaciones sintéticas: los ataques mostrados, como shells inversas, inyección y ejecuciones sospechosas, son escenarios seguros guionizados para aprender detección sin una intrusión real.
Límites de uso
ECRSM es una plataforma de aprendizaje. No incluye firmas, no bloquea nada y no afirma detectar a un atacante decidido. Su valor docente consiste en convertir la observabilidad del núcleo en eventos que se pueden ver sobre infraestructura que se puede eliminar al terminar.