
استضافة وإدارة مثيلات متعددة من Juice Shop للتدريبات الأمنية ومسابقات Capture The Flags
عادةً ما يكون إجراء دورات CTF وتدريبات الأمان باستخدام OWASP Juice Shop أمرًا صعبًا، فـ Juice Shop ببساطة ليس مصممًا للاستخدام من قبل عدة مستخدمين في وقت واحد. توجيه الجميع حول كيفية بدء Juice Shop على أجهزتهم الشخصية يعمل بشكل جيد، لكنه يستهلك الكثير من الوقت الثمين.
يمنحك MultiJuicer القدرة على تشغيل مثيلات منفصلة من Juice Shop لكل مشارك على مجموعة Kubernetes مركزية، لإجراء الفعاليات دون الحاجة إلى مثيلات Juice Shop محلية.
ما يفعله:
للحصول على وصف تفصيلي للهندسة والمكونات الفردية، راجع توثيق الهندسة المعمارية.
👉 هل أنت جديد في MultiJuicer؟ راجع الدليل المرئي لمعرفة كيفية تسجيل المشاركين، والحصول على مثيلات JuiceShop الخاصة بهم، وكيفية تتبع النتائج على لوحة النتائج.
يعمل MultiJuicer على Kubernetes، ولتثبيته ستحتاج إلى helm
helm install multi-juicer oci://ghcr.io/juice-shop/multi-juicer/helm/multi-juicer
راجع ملاحظات الإنتاج للحصول على قائمة مراجعة بالقيم التي قد تحتاج إلى تكوينها قبل استخدام MultiJuicer في الفعاليات الفعلية.
لإعداد MultiJuicer مع دعم تحديات AI/LLM ذات الصلة في JuiceShop v20+، راجع دليل تكوين AI/LLM
بشكل عام، يعمل MultiJuicer على أي مجموعة Kubernetes تقريبًا، ولكن لتسهيل الأمر على أي شخص جديد على Kubernetes، لدينا بعض الأدلة حول كيفية إعداد مجموعة Kubernetes مع تثبيت MultiJuicer لبعض مزودي السحابة المحددين.
لديك بعض الخيارات حول كيفية إعداد المكدس، مع بعض الخيارات لتخصيص مثيلات JuiceShop حسب رغبتك. يمكنك العثور على قيم التكوين الافتراضية تحت: helm/multi-juicer/values.yaml
قم بتنزيل الملف وحفظه وأخبر helm باستخدام ملف التكوين الخاص بك بدلاً من الافتراضي عن طريق تشغيل:
helm install -f values.yaml multi-juicer ./multi-juicer/helm/multi-juicer/
لتخصيص سمات مثيلات JuiceShop وواجهة MultiJuicer (السمة، الشعار، التحديات المُمكّنة، ...)، راجع دليل تخصيص JuiceShop.
helm delete multi-juicer
للحصول على هامش أمان، احسب بما يلي:
تعكس الأرقام أعلاه حدود الموارد الافتراضية. يمكن تعديل هذه القيم، راجع: تخصيص الإعداد
لا يوجد حد ثابت حقيقي. (على الرغم من أنه يمكنك تكوين واحد 😉) يمكن تكرار موازن التحميل المخصص، الذي تمر من خلاله كل حركة المرور للمثيلات الفردية، بقدر ما تريد. يمكنك أيضًا إرفاق Horizontal Pod Autoscaler لتوسيع نطاق موازن التحميل تلقائيًا.
هناك بعض المتطلبات الخاصة التي لم نجد حلاً سهلاً لها مع أي موازن تحميل مبني مسبقًا:
إذا كانت لديك أفكار رائعة حول كيفية التغلب على هذه المشكلات بدون موازن تحميل مخصص، فيرجى كتابة لنا، يسعدنا سماع رأيك!
هناك بعض الأسباب الجيدة جدًا لذلك:
kubectl.kubectl؟يمكنك سرد جميع مثيلات JuiceShop مع المعلومات ذات الصلة باستخدام ميزة الأعمدة المخصصة في kubectl.
$ kubectl get -l app.kubernetes.io/name=juice-shop -o custom-columns="TEAM:metadata.labels.team,SOLVED-CHALLENGES:metadata.annotations.multi-juicer\.owasp-juice\.shop/challengesSolved,LAST-REQUEST:metadata.annotations.multi-juicer\.owasp-juice\.shop/lastRequestReadable" deployments
TEAM SOLVED-CHALLENGES LAST-REQUEST
foobar 3 Wed May 4 2042 18:14:22 GMT+0000 (Coordinated Universal Time)
team-42 0 Wed May 4 2042 18:14:30 GMT+0000 (Coordinated Universal Time)
the-empire 0 Wed May 4 2042 18:14:46 GMT+0000 (Coordinated Universal Time)
بدأ المشروع في iteratec، وهي شركة تطوير برمجيات ألمانية، لتشغيل تدريبات الأمان الخاصة بها لمطوريها وعملائها. ثم تم فتح المصدر للمشروع في 2019 وتم التبرع به لمنظمة OWASP / مشروع OWASP Juice Shop في 2023.
يمكنك الوصول إلينا في قناة #project-juiceshop في مساحة عمل OWASP Slack. يسعدنا سماع أي ملاحظات أو تقارير استخدام لديك. إذا لم تكن بالفعل في مساحة عمل OWASP Slack، يمكنك الانضمام عبر هذا الرابط.