Seguridad a nivel de kernel y respuesta a ataques para servidores Linux.
Inteligencia de tráfico a nivel de kernel y remediación de amenazas para servidores Linux.
KernelEye es una plataforma de monitorización de seguridad autoalojada para servidores Linux. Utiliza eBPF, TC y XDP en un agente Go para observar metadatos de red, puntuar actividades sospechosas y aplicar remediación mediante bloqueo a nivel de kernel con XDP y reglas ipset/iptables. Un backend Go almacena y analiza eventos, mientras que un panel de React proporciona gestión de servidores, tráfico en vivo, vistas de amenazas, IPs bloqueadas, listas blancas, informes y análisis.
shared/scoring.Host Linux monitorizado
Sonda de tráfico eBPF + Hooks de ancho de banda TC
Cortafuegos XDP y remediación ipset/iptables
Agente Go (verificación de comandos HMAC, registro de auditoría)
|
| gRPC (TLS/mTLS) + comandos de bloqueo firmados con HMAC
v
API Backend Go
API HTTP Fiber
Servicios gRPC de ingesta/bloqueo (TLS/mTLS, firma de comandos)
trabajador de análisis, gestor de bloqueos, retención, informes
manejador de informes de integridad
|
v
PostgreSQL
^
|
Panel React
API REST + actualizaciones en vivo vía WebSocket
El agente reside en agent/ y es el proceso del host Linux.
agent/main.go inicia registro, carga de eBPF, seguimiento de ancho de banda, remediación, puntuación, agregación y transmisión de comandos de bloqueo.agent/ebpf/traffic_probe.c captura metadatos de tráfico.agent/ebpf/xdp_firewall.c implementa el filtrado de paquetes XDP.agent/tc.go configura el seguimiento de ancho de banda con TC.agent/aggregator.go agrupa y envía eventos al backend.agent/history_store.go y agent/flush.go manejan la persistencia local y el reintento.agent/remediation/ contiene analizador, bloqueo automático, XDP, ipset y remediadores híbridos.El agente requiere Linux y privilegios elevados para operaciones eBPF/XDP.
El backend reside en backend/.
backend/cmd/api/main.go inicia la API HTTP Fiber y los servicios gRPC.backend/internal/api/ contiene autenticación, manejadores del panel, manejadores gRPC, APIs de bloqueo, APIs de listas blancas, manejo de WebSocket y límite de tasa.backend/internal/analysis/ contiene trabajadores de puntuación, gestión de bloqueos, retención de datos y lógica de informes mensuales.backend/internal/database/ contiene código de acceso a base de datos generado por sqlc.backend/internal/geoip/ maneja el enriquecimiento GeoIP.backend/internal/email/ envía correos electrónicos respaldados por Mailtrap cuando está configurado.backend/migrations/ contiene migraciones de PostgreSQL.HTTP por defecto en el puerto 8080; gRPC por defecto en el puerto 9091.
El panel reside en dashboard/ y es una aplicación React con Vite.
dashboard/src/pages/ incluye páginas de resumen, servidores, detalle de servidor, amenazas, alertas, informes, visualizador, IPs bloqueadas, lista blanca, inicio de sesión, perfil y callback OAuth.dashboard/src/components/ contiene componentes de tráfico en vivo, feed de bloqueos, gráficos, listas de servidores, configuradores y diseño compartido.dashboard/src/api/client.ts define el cliente de la API REST.dashboard/src/context/WebSocketContext.tsx gestiona las actualizaciones de eventos en vivo.El servidor de desarrollo está configurado para http://localhost:3000.
El sitio de marketing público reside en kerneleye-landing-page/. La imagen de frontend de producción construye tanto la página de aterrizaje como el panel, y luego los sirve a través de nginx.
shared/scoring/ contiene el módulo de puntuación de amenazas compartido utilizado por el agente y el backend.shared/cmdsigning/ contiene el módulo de firma de comandos HMAC-SHA256 y protección contra repetición mediante nonce.proto/kerneleye/v1/ contiene definiciones protobuf para servicios de ingesta y bloqueo.proto/gen/go/ contiene código Go generado de protobuf.KernelEye no inspecciona cargas útiles de paquetes ni contenido de aplicaciones.
Los metadatos recopilados incluyen:
No se recopila:
La puntuación de amenazas se implementa en shared/scoring/scorer.go. El puntuador actual es más matizado que una única fórmula lineal: considera la tasa de SYN, acceso a puertos únicos, handshakes fallidos, comportamiento de ráfagas, abuso de servicios, dirección, confianza y disminución de la puntuación con el tiempo.
Umbrales de clasificación predeterminados:
< 20 normal
20-39 sospechoso
>= 40 malicioso
>= 40 elegible para bloqueo automático cuando la remediación está habilitada
El trabajador de análisis del backend también utiliza ventanas de tráfico acumulado y puede activar la gestión de bloqueos para fuentes de alto riesgo.
KernelEye admite remediación activa cuando está habilitada en el agente.
| Capa | Implementación | Propósito |
|---|---|---|
| XDP | agent/remediation/xdp_remediator.go | Bloqueos rápidos a nivel de kernel antes de la pila de red |
| IPSet | agent/remediation/ipset_remediator.go | Gestión de bloqueos ipset/iptables |
| Híbrido | agent/remediation/hybrid_remediator.go | Coordina el comportamiento de XDP e ipset |
| Bloqueador automático | agent/remediation/auto_blocker.go | Bloquea fuentes por encima de umbrales de puntuación configurados |
| Gestor de bloqueos del backend | backend/internal/analysis/block_manager.go | Coordina el estado de bloqueo y los comandos generados por el backend |
El panel también expone gestión de IPs bloqueadas y listas blancas.
cp .env.example .env
Establecer al menos: