
ماسح ضوئي للثغرات الأمنية مفتوح المصدر مع اكتشاف تلقائي للشبكة، وكشف يعتمد على CVE، وتقييم CVSS، ولوحات معلومات المخاطر، وعوامل عن بُعد عبر gRPC، وواجهة ويب حديثة لفرق الأمن في المؤسسات.

Sirius هو ماسح ضوئي مفتوح المصدر للثغرات الأمنية يتضمن الاكتشاف الآلي، والكشف المبني على CVE، وواجهة مستخدم ويب حديثة. استنسخ المستودع، وقم بتكوين شهادة TLS للوكيل، وابدأ الفحص.
قبل تشغيل الحزمة، قم بتجهيز شهادة ومفتاح خادم الوكيل كما هو موضح في Agent gRPC TLS configuration. لا يقوم المثبّت بإنشائهما.
git clone https://github.com/SiriusScan/Sirius.git
cd Sirius
docker compose -f docker-compose.installer.yaml run --rm sirius-installer
docker compose up -d
افتح http://localhost:3000 وسجّل الدخول:
| البريد الإلكتروني | [email protected] |
| كلمة المرور | تُطبع بواسطة المثبّت (ابحث عن INITIAL_ADMIN_PASSWORD في المخرجات) |
تبدأ جميع الخدمات الست تلقائيًا بمجرد توفر التكوين المطلوب لها. يولّد المثبّت أسرار التطبيق عند التشغيل الأول، ويمكن إعادة تشغيله بأمان.
بشكل افتراضي، يترك المثبّت IMAGE_TAG غير معيّن، لذا يسحب Compose latest من GHCR. لتثبيت إصدار معيّن (على سبيل المثال v1.0.0 في .env)، لا تفعل ذلك إلا بعد توفر تلك العلامة لجميع صور الحاويات الست؛ تحقّق باستخدام bash scripts/verify-ghcr-public-access.sh v1.0.0 من صدفة غير مسجّلة الدخول إلى ghcr.io.
المتطلبات: Docker Engine 20.10+ مع Compose V2، وذاكرة وصول عشوائي 4 GB، وقرص 10 GB. يعمل على Linux وmacOS وWindows (WSL2).
X-API-Key على المنفذ 9001)خطوة المثبّت هي نفسها دائمًا. يتغيّر فقط أمر docker compose up.
| الوضع | الأمر | حالة الاستخدام |
|---|---|---|
| قياسي | docker compose up -d | معظم المستخدمين -- يسحب حزمة الإصدار الكاملة من GHCR |
| تطوير | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | إعادة تحميل مباشرة للعمل على الكود محليًا |
| بناء من المصدر | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | عمليات بناء محلية كاملة وصريحة |
| إنتاج | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | إعدادات مُحصّنة، pull_policy: always |
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
docker compose ps # all 6 services should show "healthy" or "running"
curl http://localhost:3000 # UI responds
curl http://localhost:9001/health # API responds
الخدمات المتوقعة: sirius-ui (3000)، sirius-api (9001)، sirius-engine (5174، 50051)، sirius-postgres (5432)، sirius-rabbitmq (5672، 15672)، sirius-valkey (6379).
graph TD
subgraph clients [Clients]
UI["Sirius UI (Next.js)"]
CLI["Terminal and Agent Runtime"]
end
subgraph core [Core Services]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infrastructure]
MQ["RabbitMQ"]
DB["PostgreSQL"]
Cache["Valkey"]
end
UI -->|"HTTP/WebSocket"| API
CLI -->|"gRPC"| Engine
API -->|"AMQP publish"| MQ
MQ -->|"Queue consume"| Engine
API -->|"SQL read/write"| DB
Engine -->|"SQL read/write"| DB
API -->|"Session/cache ops"| Cache
Engine -->|"Scan state cache ops"| Cache
| الخدمة | التقنية | المنافذ | الغرض |
|---|---|---|---|
| sirius-ui | Next.js 14، React، Tailwind | 3000 | واجهة الويب |
| sirius-api | Go، Gin | 9001 | واجهة REST API ومنطق الأعمال |
| sirius-engine | Go + وكيل gRPC مضمّن | 5174، 50051 | خدمات الماسح الطرفي والوكيل |
| sirius-postgres | PostgreSQL 15 | 5432 | بيانات الثغرات والفحص |
| sirius-rabbitmq | RabbitMQ | 5672، 15672 | المراسلة بين الخدمات |
| sirius-valkey | Valkey (متوافق مع Redis) | 6379 | بيانات التخزين المؤقت والجلسات |
| لوحة المعلومات | الماسح الضوئي | مستكشف الثغرات |
|---|---|---|
![]() | ![]() | ![]() |
| البيئة | تفاصيل المضيف | الطرفية |
|---|---|---|
![]() | ![]() | ![]() |
يكشف Sirius عن نقاط نهاية REST على المنفذ 9001، محمية بـ مفتاح API للخدمة الداخلية. يُفضَّل استخدام ملف أسرار Docker (SIRIUS_API_KEY_FILE، الافتراضي /run/secrets/sirius_api_key)؛ ويبقى SIRIUS_API_KEY بديلاً مدعومًا عبر متغيرات البيئة. يكتب المثبِّت ./secrets/sirius_api_key.txt (الوضع 0644 حتى تتمكن معرفات تطبيقات المستخدم غير الجذرية من قراءة السر المرتبط بـ bind-mount) ويهيّئ كليهما.
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"
وثائق API الكاملة: مرجع REST API
لعمليات النشر في بيئة الإنتاج:
--force لإعادة توليد جميع بيانات الاعتمادdocker compose pull && docker compose up -dإصلاحات سريعة للمشكلات الشائعة:
| المشكلة | الحل |
|---|---|
| الخدمات لا تبدأ | docker compose logs <service> للعثور على الخطأ |
| طبقة التطوير تفتقد البنية التحتية | استخدم كلا الملفين: -f docker-compose.yaml -f docker-compose.dev.yaml |
| تعارض المنافذ | lsof -i :3000 للعثور على العملية المتعارضة |
| خطأ في اتصال قاعدة البيانات | docker exec sirius-postgres pg_isready |
| أسرار قديمة بعد إعادة الضبط | أعد تشغيل المثبّت، ثم docker compose up -d --force-recreate |