
أمان على مستوى النواة واستجابة للهجمات لخوادم لينكس.
استخبارات حركة المرور على مستوى النواة ومعالجة التهديدات لخوادم 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 يبدأ تشغيل واجهة Fiber HTTP وخدمات gRPC.backend/internal/api/ يحتوي على المصادقة، ومعالجات لوحة التحكم، ومعالجات gRPC، وواجهات الحظر، وواجهات القائمة البيضاء، ومعالجة 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/ يحتوي على كود protobuf المُولَّد بلغة Go.لا تفحص KernelEye حمولات الحزم أو محتوى التطبيقات.
تشمل البيانات الوصفية التي يتم جمعها:
لا يتم جمع:
يتم تنفيذ تقييم التهديدات في shared/scoring/scorer.go. المُقيِّم الحالي أكثر دقة من صيغة خطية واحدة: فهو يأخذ في الاعتبار معدل SYN، والوصول إلى المنافذ الفريدة، والمصافحات الفاشلة، وسلوك الانفجارات، وإساءة استخدام الخدمات، والاتجاه، ومستوى الثقة، وتلاشي الدرجات بمرور الوقت.
حدود التصنيف الافتراضية:
< 20 normal
20-39 suspicious
>= 40 malicious
>= 40 eligible for auto-blocking when remediation is enabled
يستخدم عامل التحليل في الواجهة الخلفية أيضًا نوافذ حركة المرور المتراكمة ويمكنه تشغيل إدارة الحظر للمصادر عالية الخطورة.
تدعم 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:8080localhost:9091cd 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 enable active blocking and auto-blocking
-xdp enable XDP fast-path blocking
-interface <name> select XDP network interface
--read-only monitor and report only, never block
--insecure disable TLS (dev only)
--tls-ca-file <path> backend CA certificate for TLS verification
--tls-cert-file <path> agent client certificate for mTLS
--tls-key-file <path> agent client private key for mTLS
-list-blocked print current ipset state and exit
-flush-blocklists flush ipset and XDP blocklists and exit
-clear-data remove local agent SQLite stores and exit
-version print build version
عند تعيين --enable-remediation، يجب تكوين CMD_SIGNING_KEY على كل من الوكيل والواجهة الخلفية. ولّده باستخدام openssl rand -base64 32.
kerneleye/
├── agent/ Go eBPF/XDP monitoring agent
│ ├── ebpf/ eBPF C programs and compiled objects
│ ├── remediation/ analyzer, XDP, ipset, hybrid remediation
│ ├── assets/ embedded XDP object assets
│ └── scripts/ ipset helper scripts and service files
├── backend/ Go Fiber API and gRPC backend
│ ├── cmd/api/ backend entrypoint
│ ├── internal/api/ HTTP, auth, WebSocket, gRPC, block APIs
│ ├── internal/analysis/ workers, blocking, retention, reports
│ ├── internal/database/ sqlc generated queries and helpers
│ ├── internal/email/ Mailtrap email service
│ ├── internal/geoip/ MaxMind GeoIP service
│ └── migrations/ PostgreSQL migrations
├── dashboard/ React dashboard app
├── kerneleye-landing-page/ React landing page app
├── proto/ protobuf definitions and generated Go code
├── shared/
│ ├── scoring/ shared threat scoring Go module
│ └── cmdsigning/ HMAC command signing and nonce tracking
├── docs/ additional project documentation
├── tests/ traffic simulation shell scripts
├── docker/ frontend nginx and install script templates
├── Dockerfile.backend backend container build
├── Dockerfile.frontend landing + dashboard + agent download image
├── docker-compose.yml production-oriented compose stack
└── Makefile generation, build, and docker targets
تم اختبار وكيل KernelEye على التكوينات التالية. يتم تحديث هذا الجدول مع التحقق من بيئات جديدة.
| نظام التشغيل | النواة | المعالج | الذاكرة | البنية | ملاحظات |
|---|---|---|---|---|---|
| Ubuntu 26.04 LTS | 7.0.0-15-generic | AMD EPYC-Genoa (2 vCPU) | 3.7 GB | x86_64 | — |
نستخدم ebpf-go لتكامل مساحة المستخدم الخاصة بـ eBPF.
أهداف 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، الإصدار 2.0 (Apache-2.0). راجع LICENSE.
Copyright 2026 Abdeljalil Aitetaleb.
لا يتم ترخيص اسم KernelEye وشعاراتها وهويتها البصرية بموجب رخصة Apache. راجع TRADEMARKS.md لشروط استخدام العلامة التجارية.
| الطبقة | التنفيذ | الغرض |
|---|
| XDP | agent/remediation/xdp_remediator.go | إسقاط سريع على مستوى النواة قبل مكدس الشبكة |
| IPSet | agent/remediation/ipset_remediator.go | إدارة الحظر عبر ipset/iptables |
| Hybrid | agent/remediation/hybrid_remediator.go | ينسق سلوك XDP وipset |
| Auto-blocker | agent/remediation/auto_blocker.go | يحظر المصادر التي تتجاوز حدود درجات التهديد المكوّنة |
| Backend block manager | 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 |