
scoringengine v2.1.1
محرك تسجيل النقاط لمسابقات الفرق الحمراء والبيضاء والزرقاء
Scoring Engine
Scoring Engine هي منصة مفتوحة المصدر لإدارة مسابقات الأمن السيبراني للفرق الحمراء/البيضاء/الزرقاء. تقوم بأتمتة فحوصات الخدمة كل جولة وتوفر واجهة ويب للوحة النتائج والتكوين.

الميزات
- الجدولة الآلية وتنفيذ فحوصات الخدمة
- التنفيذ الموزع المتوازي عبر عمال Celery و Redis
- واجهة ويب لعرض النتائج وتكوين الخدمات
- واجهة برمجة تطبيقات JSON للوصول البرمجي إلى النتائج والتكوين
- 28 فحص خدمة مدمج (SSH، HTTP، DNS، SMTP، والمزيد)
- دعم النشر في بيئات منعزلة/غير متصلة بالإنترنت
- وضع تجريبي مع بيانات توضيحية معبأة مسبقًا
البنية
يستخدم Scoring Engine بنية موزعة بالمكونات التالية:
| المكون | التقنية | الغرض |
|---|---|---|
| واجهة الويب | Flask | لوحة النتائج، إدارة الفرق، الإدارة |
| قائمة المهام | Celery | جدولة المهام الموزعة وتنفيذها |
| وسيط الرسائل | Redis | خلفية قائمة المهام والتخزين المؤقت |
| قاعدة البيانات | MySQL/MariaDB | تخزين دائم للفرق والخدمات والنتائج |
| وكيل عكسي | Nginx | خادم HTTP وموازنة التحميل |
فحوصات الخدمة المدعومة
يتضمن Scoring Engine فحوصات للخدمات الشائعة مباشرة:
| الفئة | الخدمات |
|---|---|
| الشبكة | ICMP, DNS, NFS |
| الويب | HTTP, HTTPS, Elasticsearch, WordPress |
| المصادقة | SSH, Telnet, LDAP, WinRM |
| نقل الملفات | FTP, SMB |
| البريد الإلكتروني | SMTP, SMTPS, IMAP, IMAPS, POP3, POP3S |
| قاعدة البيانات | MySQL, PostgreSQL, MSSQL |
| سطح المكتب البعيد | RDP, VNC |
| VPN | OpenVPN |
يمكن إضافة فحوصات مخصصة عن طريق إنشاء صنف بايثون في المسار scoring_engine/checks/.
المتطلبات الأساسية
تثبيت Docker (موصى به)
- Docker
- Docker Compose (مضمن مع Docker Desktop؛ على Linux يتم تثبيته بشكل منفصل)
- لمستخدمي Windows، تأكد من ضبط Docker Desktop لـ استخدام حاويات Linux.
التثبيت من المصدر
للتثبيت من المصدر بدون Docker:
- يتطلب Python 3.10 أو أعلى
- خادم قاعدة بيانات MariaDB/MySQL
- خادم Redis
# Install the package
pip install -e .
# Or install with test dependencies
pip install -e .
pip install -r tests/requirements.txt
البداية السريعة
بناء وتشغيل جميع الخدمات:
docker compose build
docker compose up
أو استخدم Makefile للراحة:
make build
make run
بمجرد التشغيل، قم بالوصول إلى التطبيق على http://localhost.
بيانات الاعتماد التجريبية
سجل الدخول باستخدام أي من بيانات الاعتماد التالية:
| اسم المستخدم | كلمة المرور | الدور |
|---|---|---|
whiteteamuser | testpass | الفريق الأبيض (مدير) |
team1user1 | testpass | الفريق الأزرق 1 |
team2user1 | testpass | الفريق الأزرق 2 |
team2user2 | testpass | الفريق الأزرق 2 |
redteamuser | testpass | الفريق الأحمر |
متغيرات البيئة
إعادة تعيين قاعدة البيانات قبل البدء:
SCORINGENGINE_OVERWRITE_DB=true docker compose up
التشغيل مع بيانات عينة (وضع تجريبي):
SCORINGENGINE_EXAMPLE=true docker compose up
أو دمج الاثنين للحصول على نسخة تجريبية جديدة:
make run-demo
صور Docker المعدة مسبقًا
الصور المعدة مسبقًا متوفرة من كلا السجلين:
- GitHub Container Registry:
ghcr.io/scoringengine/scoringengine/<image>:<tag> - Docker Hub:
scoringengine/<image>:<tag>
الصور المتاحة: base، bootstrap، engine، web، worker
الوسوم: latest، develop، وسوم الإصدارات (مثل v1.1.0)
النشر في البيئات المنعزلة
للمسابقات التي لا تتوفر فيها إمكانية الوصول إلى الإنترنت:
# Create a complete deployment package
./bin/create-airgapped-package.sh
# Transfer scoringengine-airgapped.tar.gz to the airgapped system
# Then extract and deploy:
tar -xzf scoringengine-airgapped.tar.gz
cd scoringengine-airgapped
./deploy.sh
راجع دليل النشر في البيئات المنعزلة للحصول على تعليمات مفصلة.
التطوير
أوامر Makefile
| الأمر | الوصف |
|---|---|
make build | بناء جميع صور Docker |
make run | تشغيل جميع الخدمات |
make run-demo | التشغيل مع بيانات تجريبية (إعادة تعيين قاعدة البيانات) |
make stop | إيقاف جميع الخدمات |
make clean | إيقاف الخدمات وإزالة وحدات التخزين |
make rebuild-new | إعادة بناء كاملة مع قاعدة بيانات جديدة |
make run-tests | تشغيل اختبارات الوحدة مع تغطية |
make build-integration | بناء بيئة اختبار التكامل |
make run-integration-tests | تشغيل اختبارات التكامل |
تشغيل الاختبارات
قم بتشغيل أدوات التحليل ومجموعة الاختبارات قبل تقديم التغييرات:
# Install pre-commit hooks
pip install pre-commit
pre-commit install
# Run linters on changed files
pre-commit run --files <changed-files>
# Run all tests
pytest tests/
# Run tests with coverage
make run-tests
للتحقق من جميع الملفات: pre-commit run --all-files
بناء التوثيق محليًا
pip install -r docs/requirements.txt
cd docs
make html
افتح docs/build/html/index.html في متصفحك.
إدارة الإصدارات
يستخدم هذا المشروع الإصدارات الدلالية. لترقية الإصدارات:
# Install development dependencies
pip install -r tests/requirements.txt
# Bump version (patch/minor/major)
bump-my-version bump patch
راجع VERSION_MANAGEMENT.md للحصول على تعليمات مفصلة.
التوثيق
التوثيق الكامل متاح على https://scoringengine.readthedocs.io/en/latest/.
الترخيص
تم الإصدار بموجب رخصة MIT.