
Segurança em nível de kernel e resposta a ataques para servidores Linux.
Inteligência de tráfego em nível de kernel e remediação de ameaças para servidores Linux.
KernelEye é uma plataforma de monitoramento de segurança auto-hospedada para servidores Linux. Ela usa eBPF, TC e XDP em um agente Go para observar metadados de rede, pontuar atividades suspeitas e aplicar remediação através de bloqueio XDP em nível de kernel e regras ipset/iptables. Um backend Go armazena e analisa eventos, enquanto um painel React oferece gerenciamento de servidores, tráfego ao vivo, visualizações de ameaças, IPs bloqueados, lista de permissões, relatórios e análises.
shared/scoring.Host Linux monitorado
Sonda de tráfego eBPF + hooks de largura de banda TC
Firewall XDP e remediação ipset/iptables
Agente Go (verificação de comando HMAC, registro de auditoria)
|
| gRPC (TLS/mTLS) + comandos de bloqueio assinados com HMAC
v
API backend Go
API HTTP Fiber
Serviços gRPC de ingestão/bloqueio (TLS/mTLS, assinatura de comandos)
worker de análise, gerenciador de bloqueios, retenção, relatórios
manipulador de relatório de integridade
|
v
PostgreSQL
^
|
Painel React
API REST + atualizações ao vivo WebSocket
O agente reside em agent/ e é o processo do host Linux.
agent/main.go inicia o registro, carregamento do eBPF, rastreamento de largura de banda, remediação, pontuação, agregação e streaming de comandos de bloqueio.agent/ebpf/traffic_probe.c captura metadados de tráfego.agent/ebpf/xdp_firewall.c implementa filtragem de pacotes XDP.agent/tc.go configura rastreamento de largura de banda via TC.agent/aggregator.go agrupa e envia eventos para o backend.agent/history_store.go e agent/flush.go lidam com persistência local e comportamento de repetição.agent/remediation/ contém analisador, bloqueio automático, XDP, ipset e remediadores híbridos.O agente requer Linux e privilégios elevados para operações eBPF/XDP.
O backend reside em backend/.
backend/cmd/api/main.go inicia a API HTTP Fiber e os serviços gRPC.backend/internal/api/ contém autenticação, manipuladores de painel, manipuladores gRPC, APIs de bloqueio, APIs de lista de permissões, tratamento WebSocket e limitação de taxa.backend/internal/analysis/ contém workers de pontuação, gerenciamento de bloqueios, retenção de dados e lógica de relatórios mensais.backend/internal/database/ contém código de acesso ao banco de dados gerado pelo sqlc.backend/internal/geoip/ lida com enriquecimento GeoIP.backend/internal/email/ envia e-mails com suporte a Mailtrap quando configurado.backend/migrations/ contém migrações PostgreSQL.HTTP padrão na porta 8080; gRPC padrão na porta 9091.
O painel reside em dashboard/ e é uma aplicação React Vite.
dashboard/src/pages/ inclui páginas de visão geral, servidores, detalhes do servidor, ameaças, alertas, relatórios, visualizador, IPs bloqueados, lista de permissões, login, perfil e callback OAuth.dashboard/src/components/ contém tráfego ao vivo, feed de bloqueios, gráficos, listas de servidores, configuradores e componentes de layout compartilhados.dashboard/src/api/client.ts define o cliente da API REST.dashboard/src/context/WebSocketContext.tsx gerencia atualizações de eventos ao vivo.O servidor de desenvolvimento está configurado para http://localhost:3000.
O site de marketing público reside em kerneleye-landing-page/. A imagem de frontend de produção constrói tanto a landing page quanto o painel, e os serve através do nginx.
shared/scoring/ contém o módulo de pontuação de ameaças compartilhado usado pelo agente e backend.shared/cmdsigning/ contém o módulo de assinatura de comandos HMAC-SHA256 e proteção contra repetição de nonces.proto/kerneleye/v1/ contém definições protobuf para serviços de ingestão e bloqueio.proto/gen/go/ contém código Go gerado a partir dos protobufs.KernelEye não inspeciona payloads de pacotes ou conteúdo de aplicações.
Os metadados coletados incluem:
Não coletados:
A pontuação de ameaças é implementada em shared/scoring/scorer.go. O pontuador atual é mais sutil do que uma única fórmula linear: considera taxa de SYN, acesso a portas únicas, handshakes com falha, comportamento de explosão, abuso de serviços, direção, confiança e decaimento da pontuação ao longo do tempo.
Limiares de classificação padrão:
< 20 normal
20-39 suspeito
>= 40 malicioso
>= 40 elegível para bloqueio automático quando a remediação está ativada
O worker de análise do backend também usa janelas de tráfego acumuladas e pode acionar o gerenciamento de bloqueios para fontes de alto risco.
KernelEye suporta remediação ativa quando ativada no agente.
| Camada | Implementação | Propósito |
|---|---|---|
| XDP | agent/remediation/xdp_remediator.go | Quedas rápidas em nível de kernel antes da pilha de rede |
| IPSet | agent/remediation/ipset_remediator.go | Gerenciamento de bloqueios via ipset/iptables |
| Híbrido | agent/remediation/hybrid_remediator.go | Coordena comportamento XDP e ipset |
| Bloqueador automático | agent/remediation/auto_blocker.go | Bloqueia fontes acima dos limiares de pontuação configurados |
| Gerenciador de bloqueios do backend | backend/internal/analysis/block_manager.go | Coordena o estado de bloqueio e comandos gerados pelo backend |
O painel também expõe o gerenciamento de IPs bloqueados e lista de permissões.
cp .env.example .env
Defina pelo menos:
DATABASE_URL=postgres://kerneleye:<senha>@localhost:5432/kerneleye?sslmode=disable
JWT_SECRET=<pelo-menos-32-caracteres>
API_KEY_SECRET=<segredo-forte>
CORS_ORIGINS=http://localhost:3000