Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ebpf-container-escape-framework — Auditoría solo con eBPF EDR para Linux 5.15+ LTS: 14 hooks del kernel, 15 acciones (13 técnicas MITRE), linaje de procesos, exportación a SIEM, listo para K8s/Docker. | Kitploit
Herramientas/GitHubGitHub/0xmfbk/ebpf-container-escape-framework
Herramientas DefensivasSeguridad de ContenedoresDetección de IntrusionesRespuesta a IncidentesAnálisis de Registros
GitHub0xmfbk/ebpf-container-escape-framework

ebpf-container-escape-framework

Auditoría solo con eBPF EDR para Linux 5.15+ LTS: 14 hooks del kernel, 15 acciones (13 técnicas MITRE), linaje de procesos, exportación a SIEM, listo para K8s/Docker.

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Ver Repositorio
Sitio web
6114hace 1 díaAún no revisado
Compartir

Detección de escape de contenedores con eBPF y EDR de auditoría en tiempo de ejecución

CI Go Version Kernel Support Memory Footprint License

Solo detección y auditoría. Sensor no aplicador. Ningún programa BPF devuelve -EPERM; ninguna syscall se bloquea. Este agente es un plano de observación en tiempo de ejecución, no un plano de prevención. Véase docs/SECURITY.md y THREAT_MODEL.md.

eBPF EDR Demo

Un agente EDR para Linux ultraligero y de solo auditoría, construido con eBPF (C) y un daemon Go de alta eficiencia. Está orientado a Linux kernel 5.15 LTS y superiores, e incluye una ruta crítica de cero asignaciones, una huella de memoria inferior a 30 MB y un profundo enriquecimiento de contexto de contenedores/K8s.

✨ ¿Por qué este framework?

  • 🎯 Archivos canario (cero falsos positivos): Coloca rutas invisibles en el kernel. Si un atacante las toca (p. ej., tokens de cuenta de servicio de K8s), se dispara una alerta CRITICAL al instante.
  • ☁️ Enriquecimiento de contexto de K8s: Consulta de forma asíncrona la API de Kubelet para mapear cgroup_id a nombre de Pod, Namespace y ServiceAccount sin inflar el formato de transmisión del kernel de 208 bytes.
  • 🐧 Compatible con 5.15 LTS: Soporte estructural para Ubuntu 22.04 y Debian 12, probado y verificado en Kernel 6.12.
  • ⚡ Alto rendimiento: 0.40% de CPU en reposo y 0 pérdidas de ringbuf bajo una prueba de estrés de 25.000 forks.

Estado: Fase 2.7 completada. 13 técnicas MITRE ATT&CK en 16 acciones. Verificado de extremo a extremo en el kernel 6.12.111 (82 PASS / 0 FAIL).

Cobertura

#AcciónSeveridadMITREHook
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

Las acciones 9 y 13 están adjuntas pero suprimidas por defecto en el lado del kernel mediante disabled_actions en config.toml.

Arquitectura

Los hooks del kernel (14) alimentan un filtro de comm/cgroup, una búsqueda hash O(1) de canary_paths, y luego una búsqueda de action_enabled. Los eventos se envían a un ringbuf de 1 MiB que transporta registros de 208 bytes. El espacio de usuario lee en un búfer agrupado fijo, aplica un token bucket por acción, enriquece con el linaje del proceso y la ruta de cgroup, y metadatos de Pod de K8s desde cachés LRU acotadas, y enruta a través de un Encoder + Sink hacia cualquier destino.

Detalles completos: docs/ARCHITECTURE.md.

Integración con SIEM

ebpf edr exporta alertas a cualquier SIEM mediante una capa de formato + transporte.

[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

Transportes admitidos: file, stdout, syslog (UDP/TCP/TLS), webhook HTTPS. Formatos admitidos: JSON nativo, ECS 8.11, OCSF 1.3.0, CEF, LEEF 2.0.

Recetas para Splunk, Elastic, Sentinel, QRadar y syslog genérico: docs/SIEM_INTEGRATION.md.

Sin [output], el comportamiento es idéntico byte a byte a v1.x.

Requisitos

  • Linux Kernel >= 5.15 LTS con CONFIG_DEBUG_INFO_BTF=y (/sys/kernel/btf/vmlinux)
  • Probado en Debian 13 (Kernel 6.12). Consulte docs/KERNEL_COMPATIBILITY.md para la matriz completa.
  • clang, gcc, Go >= 1.21, bpftool, cabeceras de libbpf
  • Root con CAP_BPF CAP_PERFMON CAP_SYS_ADMIN

Compilación

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

Verificación (15 etapas principales + 2 etapas SIEM)

sudo -E make verify

Ejecuta la sonda del entorno, la compilación, la comprobación del diseño de estructuras C/Go, el dry-run del verificador de BPF, la prueba de humo en tiempo de ejecución, la emulación de adversarios, el rendimiento, la matriz de configuración, la recarga mediante SIGHUP, la CPU en reposo, el enriquecimiento de linaje, los límites de caché, los nuevos hooks, la matriz de formatos y la entrega mediante webhook.

Instalación (systemd)

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

Instala /usr/local/sbin/ebpf-edr, /usr/local/lib/ebpf-edr/bpf_program.o, /etc/ebpf-edr/config.toml (se conserva el existente; el nuevo predeterminado en .new), /etc/systemd/system/ebpf-edr.service, /etc/logrotate.d/ebpf-edr.

Configuración

TOML en /etc/ebpf-edr/config.toml. Precedencia: CLI > env (EDR_*) > archivo > valores predeterminados.

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

Recarga: sudo systemctl reload ebpf-edr. mode = "enforce" se rechaza; esta compilación es solo de auditoría.

Esquema de eventos (v3, 208 bytes en el wire)

Descargar herramienta