
리눅스 서버용 커널 수준 보안 및 공격 대응.
Linux 서버를 위한 커널 수준 트래픽 인텔리전스 및 위협 대응.
KernelEye는 Linux 서버용 자체 호스팅 보안 모니터링 플랫폼입니다. Go 에이전트의 eBPF, TC, XDP를 사용하여 네트워크 메타데이터를 관찰하고, 의심스러운 활동을 점수화하며, 커널 수준 XDP 차단 및 ipset/iptables 규칙을 통해 대응을 적용합니다. Go 백엔드는 이벤트를 저장하고 분석하며, React 대시보드는 서버 관리, 실시간 트래픽, 위협 보기, 차단된 IP, 화이트리스트, 보고서, 분석을 제공합니다.
shared/scoring의 공유 Go 점수화 로직을 사용한 위협 점수화.모니터링 대상 Linux 호스트
eBPF 트래픽 프로브 + TC 대역폭 훅
XDP 방화벽 및 ipset/iptables 대응
Go 에이전트(HMAC 명령 검증, 감사 로그)
|
| gRPC (TLS/mTLS) + HMAC 서명 차단 명령
v
Go 백엔드 API
Fiber HTTP API
gRPC 수집/차단 서비스 (TLS/mTLS, 명령 서명)
분석 워커, 차단 관리자, 보존, 보고서
무결성 보고서 핸들러
|
v
PostgreSQL
^
|
React 대시보드
REST API + WebSocket 실시간 업데이트
에이전트는 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, 하이브리드 대응기가 포함됩니다.에이전트는 eBPF/XDP 작업을 위해 Linux와 상승된 권한이 필요합니다.
백엔드는 backend/에 있습니다.
backend/cmd/api/main.go는 Fiber HTTP API와 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/에 있으며 Vite React 애플리케이션입니다.
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 정상
20-39 의심스러움
>= 40 악성
>= 40 대응이 활성화된 경우 자동 차단 대상
백엔드 분석 워커는 누적 트래픽 창도 사용하며 위험도가 높은 소스에 대해 차단 관리를 트리거할 수 있습니다.
KernelEye는 에이전트에서 활성화하면 능동적 대응을 지원합니다.
대시보드는 차단 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 이메일, GitHub/Google OAuth, MaxMind GeoIP가 포함됩니다.
cd backend
go mod download
go run cmd/api/main.go
백엔드가 시작됩니다:
http://localhost:8080의 HTTP APIlocalhost:9091의 gRPCcd dashboard
npm install
npm run dev
http://localhost:3000을 엽니다.
로그인은 OAuth 전용입니다. 대시보드 접근을 위해 AUTH_OWNER_EMAIL을 설정하고 OAuth 제공자(GitHub 또는 Google)를 하나 이상 구성하세요. 구성된 소유자 이메일만 로그인할 수 있습니다.
cd agent
bpftool btf dump file /sys/kernel/btf/vmlinux format c > ebpf/vmlinux.h
go generate ./...
go build -o kerneleye-agent
sudo KERNELEYE_API_KEY=<server-api-key> \
KERNELEYE_SERVER=localhost:8080 \
KERNELEYE_GRPC_URL=localhost:9091 \
./kerneleye-agent
유용한 에이전트 플래그:
-enable-remediation 능동적 차단 및 자동 차단 활성화
-xdp XDP 고속 차단 활성화
-interface <name> XDP 네트워크 인터페이스 선택
--read-only 모니터링 및 보고만 수행, 차단하지 않음
--insecure TLS 비활성화 (개발 전용)
--tls-ca-file <path> TLS 검증용 백엔드 CA 인증서
--tls-cert-file <path> mTLS용 에이전트 클라이언트 인증서
--tls-key-file <path> mTLS용 에이전트 클라이언트 개인 키
-list-blocked 현재 ipset 상태 출력 후 종료
-flush-blocklists ipset 및 XDP 차단 목록 플러시 후 종료
-clear-data 로컬 에이전트 SQLite 저장소 제거 후 종료
-version 빌드 버전 출력
--enable-remediation 설정 시 CMD_SIGNING_KEY를 에이전트와 백엔드 모두에 구성해야 합니다. openssl rand -base64 32로 생성하세요.
kerneleye/
├── agent/ Go eBPF/XDP 모니터링 에이전트
│ ├── ebpf/ eBPF C 프로그램 및 컴파일된 오브젝트
│ ├── remediation/ 분석기, XDP, ipset, 하이브리드 대응
│ ├── assets/ 임베디드 XDP 오브젝트 자산
│ └── scripts/ ipset 도우미 스크립트 및 서비스 파일
├── backend/ Go Fiber API 및 gRPC 백엔드
│ ├── cmd/api/ 백엔드 진입점
│ ├── internal/api/ HTTP, 인증, WebSocket, gRPC, 차단 API
│ ├── internal/analysis/ 워커, 차단, 보존, 보고서
│ ├── internal/database/ sqlc 생성 쿼리 및 헬퍼
│ ├── internal/email/ Mailtrap 이메일 서비스
│ ├── internal/geoip/ MaxMind GeoIP 서비스
│ └── migrations/ PostgreSQL 마이그레이션
├── dashboard/ React 대시보드 앱
├── kerneleye-landing-page/ React 랜딩 페이지 앱
├── proto/ protobuf 정의 및 생성된 Go 코드
├── shared/
│ ├── scoring/ 공유 위협 점수화 Go 모듈
│ └── cmdsigning/ HMAC 명령 서명 및 nonce 추적
├── docs/ 추가 프로젝트 문서
├── tests/ 트래픽 시뮬레이션 셸 스크립트
├── docker/ 프론트엔드 nginx 및 설치 스크립트 템플릿
├── Dockerfile.backend 백엔드 컨테이너 빌드
├── Dockerfile.frontend 랜딩 + 대시보드 + 에이전트 다운로드 이미지
├── docker-compose.yml 프로덕션 지향 compose 스택
└── Makefile 생성, 빌드, docker 타깃
KernelEye 에이전트는 다음 구성에서 테스트되었습니다. 이 표는 새 환경이 검증될 때마다 업데이트됩니다.
| OS | 커널 | CPU | RAM | 아키텍처 | 비고 |
|---|---|---|---|---|---|
| Ubuntu 26.04 LTS | 7.0.0-15-generic | AMD EPYC-Genoa (2 vCPU) | 3.7 GB | x86_64 | — |
eBPF 사용자 공간 통합에는 ebpf-go를 사용합니다.
일반적인 Make 타깃:
make gen-proto
make gen-sql
make gen-ebpf
make build-backend
make build-agent
make build
make docker-build
프론트엔드 Docker 이미지는 랜딩 페이지, 대시보드, 다운로드 가능한 Linux 에이전트 바이너리를 빌드합니다.
KernelEye는 Apache License, Version 2.0(Apache-2.0)에 따라 오픈 소스입니다. LICENSE를 참조하세요.
저작권 2026 Abdeljalil Aitetaleb.
KernelEye 이름, 로고, 시각적 아이덴티티는 Apache License에 따라 라이선스가 부여되지 않습니다. 브랜드 사용 조건은 TRADEMARKS.md를 참조하세요.
| 계층 | 구현 | 목적 |
|---|
| 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 | 백엔드 생성 차단 상태 및 명령 조정 |
| 계층 | 기술 |
|---|
| 에이전트 | Go, cilium/ebpf, XDP, TC, gRPC, SQLite 로컬 저장소, zap |
| 백엔드 | Go, Fiber, gRPC, PostgreSQL, sqlc, Redis, Mailtrap |
| 대시보드 | React, TypeScript, Vite, Ant Design, React Query, Recharts |
| 랜딩 페이지 | React, TypeScript, Vite, Tailwind CSS |
| 프로토콜 | Protobuf, gRPC |
| 배포 | Docker, Docker Compose, nginx, Traefik 라벨 |