
Безопасность на уровне ядра и реагирование на атаки для Linux-серверов.
Интеллектуальный мониторинг трафика на уровне ядра и устранение угроз для серверов Linux.
KernelEye — это платформа безопасности с самостоятельным хостингом для мониторинга серверов Linux. Она использует eBPF, TC и XDP в агенте на Go для сбора метаданных сети, оценки подозрительной активности и применения мер реагирования с помощью блокировки на уровне ядра через XDP и правил ipset/iptables. Бэкенд на Go хранит и анализирует события, а панель управления React предоставляет управление серверами, просмотр трафика в реальном времени, представление угроз, заблокированных IP, белые списки, отчёты и аналитику.
shared/scoring.Monitored Linux host
eBPF traffic probe + TC bandwidth hooks
XDP firewall and ipset/iptables remediation
Go agent (HMAC command verification, audit log)
|
| gRPC (TLS/mTLS) + HMAC-signed block commands
v
Go backend API
Fiber HTTP API
gRPC ingest/block services (TLS/mTLS, command signing)
analysis worker, block manager, retention, reports
integrity report handler
|
v
PostgreSQL
^
|
React dashboard
REST API + WebSocket live updates
Агент находится в agent/ и представляет собой процесс на хосте Linux.
agent/main.go запускает регистрацию, загрузку eBPF, отслеживание пропускной способности, реагирование, оценку, агрегацию и потоковую передачу команд блокировки.agent/ebpf/traffic_probe.c собирает метаданные трафика.agent/ebpf/xdp_firewall.c реализует фильтрацию пакетов XDP.agent/tc.go настраивает отслеживание пропускной способности TC.agent/aggregator.go группирует и отправляет события в бэкенд.agent/history_store.go и agent/flush.go обрабатывают локальное хранение и повторные попытки.agent/remediation/ содержит анализатор, автоматическую блокировку, XDP, ipset и гибридные средства реагирования.Агенту требуется Linux и повышенные привилегии для операций eBPF/XDP.
Бэкенд находится в backend/.
backend/cmd/api/main.go запускает HTTP API на Fiber и службы gRPC.backend/internal/api/ содержит аутентификацию, обработчики панели управления, обработчики gRPC, API блокировок, API белых списков, обработку WebSocket и ограничение скорости.backend/internal/analysis/ содержит рабочие процессы оценки, управление блокировками, хранение данных и логику ежемесячных отчётов.backend/internal/database/ содержит код доступа к базе данных, сгенерированный sqlc.backend/internal/geoip/ обрабатывает обогащение GeoIP.backend/internal/email/ отправляет электронные письма через Mailtrap при настройке.backend/migrations/ содержит миграции PostgreSQL.HTTP по умолчанию использует порт 8080; gRPC — порт 9091.
Панель управления находится в dashboard/ и представляет собой приложение React на Vite.
dashboard/src/pages/ включает страницы обзора, серверов, деталей сервера, угроз, оповещений, отчётов, визуализатора, заблокированных IP, белых списков, входа, профиля и обратного вызова OAuth.dashboard/src/components/ содержит компоненты живого трафика, ленты блокировок, диаграмм, списков серверов, конфигураторов и общие компоненты макета.dashboard/src/api/client.ts определяет клиент REST API.dashboard/src/context/WebSocketContext.tsx управляет обновлениями событий в реальном времени.Сервер разработки настроен на http://localhost:3000.
Публичный маркетинговый сайт находится в kerneleye-landing-page/. Образ фронтенда для продакшена собирает как лендинговую страницу, так и панель управления, затем обслуживает их через nginx.
shared/scoring/ содержит общий модуль оценки угроз, используемый и агентом, и бэкендом.shared/cmdsigning/ содержит модуль подписи команд HMAC-SHA256 и защиты от повторного воспроизведения nonce.proto/kerneleye/v1/ содержит определения protobuf для служб приёма и блокировки.proto/gen/go/ содержит сгенерированный код Go protobuf.KernelEye не проверяет содержимое пакетов или приложений.
Собираемые метаданные включают:
Не собираются:
Оценка угроз реализована в shared/scoring/scorer.go. Текущий оценщик более нюансирован, чем одна линейная формула: он учитывает скорость SYN, количество уникальных портов, неудачные рукопожатия, всплески поведения, злоупотребление службами, направление, достоверность и снижение оценки со временем.
Пороги классификации по умолчанию:
< 20 normal
20-39 suspicious
>= 40 malicious
>= 40 eligible for auto-blocking when remediation is enabled
Рабочий процесс анализа бэкенда также использует накопленные окна трафика и может инициировать управление блокировками для источников с высоким риском.
KernelEye поддерживает активное реагирование при его включении на агенте.
| Уровень | Реализация | Назначение |
|---|---|---|
| XDP | agent/remediation/xdp_remediator.go | Быстрая блокировка на уровне ядра до сетевого стека |
| IPSet | agent/remediation/ipset_remediator.go | Управление блокировками ipset/iptables |
| Гибридный | agent/remediation/hybrid_remediator.go | Координирует поведение XDP и ipset |
| Автоблокировщик | agent/remediation/auto_blocker.go | Блокирует источники выше заданных порогов оценки |
| Менеджер блокировок бэкенда | backend/internal/analysis/block_manager.go | Координирует состояние блокировок и команды, генерируемые бэкендом |
Панель управления также предоставляет управление заблокированными IP и белыми списками.
cp .env.example .env
Установите как минимум:
DATABASE_URL=postgres://kerneleye:<password>@localhost:5432/kerneleye?sslmode=disable
JWT_SECRET=<at-least-32-characters>
API_KEY_SECRET=<strong-secret>
CORS_ORIGINS=http://localhost:3000
Опциональные интеграции включают ограничение скорости Redis, электронную почту Mailtrap, OAuth GitHub/Google и GeoIP MaxMind.