العودة إلى التحديثات
New releaseJul 27, 2026

scoringengine v2.1.1

محرك تسجيل النقاط لمسابقات الفرق الحمراء والبيضاء والزرقاء

مشاركة

Documentation Status CI Coverage Status

Scoring Engine

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

Scoring Engine screenshot

الميزات

  • الجدولة الآلية وتنفيذ فحوصات الخدمة
  • التنفيذ الموزع المتوازي عبر عمال 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
VPNOpenVPN

يمكن إضافة فحوصات مخصصة عن طريق إنشاء صنف بايثون في المسار scoring_engine/checks/.

المتطلبات الأساسية

تثبيت Docker (موصى به)

التثبيت من المصدر

للتثبيت من المصدر بدون 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.

بيانات الاعتماد التجريبية

سجل الدخول باستخدام أي من بيانات الاعتماد التالية:

اسم المستخدمكلمة المرورالدور
whiteteamusertestpassالفريق الأبيض (مدير)
team1user1testpassالفريق الأزرق 1
team2user1testpassالفريق الأزرق 2
team2user2testpassالفريق الأزرق 2
redteamusertestpassالفريق الأحمر

متغيرات البيئة

إعادة تعيين قاعدة البيانات قبل البدء:

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.

الفئات