منصة محاكاة الخصوم الآلية
Caldera™ هي منصة للأمن السيبراني مصممة لأتمتة محاكاة الخصوم بسهولة، ومساعدة فرق الفريق الأحمر اليدوية، وأتمتة الاستجابة للحوادث.
وهي مبنية على إطار عمل MITRE ATT&CK™ وتُعد مشروعًا بحثيًا نشطًا في MITRE.
يتكون الإطار من مكوّنين:
⭐ أنشئ إضافتك الخاصة! مولّد الإضافات: Skeleton ⭐
هذه الإضافات مدعومة ومصانة من فريق Caldera.
هذه الإضافات جاهزة للاستخدام لكنها غير مضمنة افتراضيًا وغير مصانة من فريق Caldera.
هذه المتطلبات خاصة بالحاسوب الذي يشغّل الإطار الأساسي:
ملاحظة: نوصي بشدة بتثبيت Caldera داخل بيئة Python افتراضية (virtual environment) لتجنب المشكلات المتعلقة بحزم pip. يمكنك استخدام بيئة موجودة إن أردت أو إنشاء بيئة جديدة من الصفر:
python3 -m venv .calderavenv
source .calderavenv/bin/activate
خطوات التثبيت الموجزة:
git clone https://github.com/apache/caldera.git --recursive
cd caldera
pip3 install -r requirements.txt
python3 server.py --insecure --build
ابدأ باستنساخ هذا المستودع بشكل تكراري، مع تمرير الإصدار/الإصدار المطلوب بصيغة x.x.x. سيقوم هذا بسحب جميع الإضافات المتاحة.
git clone https://github.com/apache/caldera.git --recursive --tag x.x.x
بعد ذلك، ثبّت متطلبات PIP:
pip3 install -r requirements.txt
أخيرًا، ابدأ تشغيل الخادم.
python3 server.py --insecure --build
تقوم علامة --build تلقائيًا بتثبيت أي تبعيات لواجهة VueJS، وتجميع الواجهة في دليل dist وتقديمها بواسطة خادم Caldera. ستحتاج إلى استخدام علامة --build مرة أخرى فقط إذا أضفت أي إضافات أو أجريت أي تغييرات على الواجهة. بمجرد التشغيل، سجّل الدخول إلى http://localhost:8888 باستخدام بيانات الاعتماد الافتراضية red/admin. ثم انتقل إلى Plugins -> Training وأكمل دورة التدريب بأسلوب capture-the-flag لتتعلم كيفية استخدام Caldera.
إذا كنت تفضل عدم استخدام واجهة VueJS الجديدة، فارجع إلى Caldera v4.2.0. وبالمقابل، لا تستخدم علامة --build للإصدارات الأقدم لأنها غير مطلوبة.
بالإضافة إلى ذلك، يُرجى ملاحظة توصيات الأمان لنشر Caldera.
البناء المحلي:
git clone https://github.com/apache/caldera.git --recursive
cd caldera
docker build --build-arg VARIANT=full -t caldera .
docker run -it -p 8888:8888 caldera
اضبط إعادة توجيه المنافذ (-p) ووسائط البناء (--build-arg) حسب الرغبة لجعل المنافذ قابلة للوصول أو لتغيير نسخة Caldera. تعتمد المنافذ التي تكشفها على جهات الاتصال التي تخطط لاستخدامها (راجع Dockerfile وdocker-compose.yml للاطلاع).
صورة مبنية مسبقًا (من GitHub Container Registry):
docker run -p 8888:8888 ghcr.io/apache/caldera:latest
قد تكون هذه الحاوية قديمة بعض الشيء، نوصي ببناء الحاوية بنفسك.
لإنهاء حاوية docker الخاصة بك بشكل سليم، قم بما يلي:
# Find the container ID for your docker container running Caldera
docker ps
# Stop the container
docker stop <container ID>
هناك نوعان متاحان، full وslim. لا يتضمن النوع slim الملفات اللازمة لإضافتي emu وatomic، والتي سيتم تنزيلها عند الطلب إذا تم تمكين الإضافتين في أي وقت. النوع full مناسب للتشغيل في بيئات بدون اتصال بالإنترنت. صور slim على GHCR مسبوقة بـ "slim".
ملاحظات حول حاوية Docker
-v <your_path>/conf.yml:/usr/src/app/conf/local.yml.-v <path_to_your_data_or_volume_name>:/usr/src/app/data/). تأكد من أن بنية الدليل مطابقة لبنية الدليل data/ على GitHub، لأن Caldera سترفض إنشاء هذه الأدلة الفرعية إذا كانت مفقودة. أخيرًا، تأكد من جعل ملف التكوين دائمًا أيضًا لمنع المشكلات المتعلقة بمفاتيح التشفير.builder داخل Docker.atomic، فاستنسخ مستودع Atomic Red Team خارج الحاوية، وطبّق تعديلاتك، ثم اربطه (-v) بـ /usr/src/app/plugins/atomic/data/atomic-red-team داخل الحاوية.emu، فاستنسخ مستودع adversary_emulation_library محليًا واربطه (-v) بـ /usr/src/app/plugins/emu/data/adversary-emulation-plans.بالإضافة إلى ذلك، يُرجى ملاحظة توصيات الأمان لنشر Caldera.
إذا كنت ستطوّر واجهة المستخدم، فهناك بعض خطوات التثبيت الإضافية.
المتطلبات
الإعداد