在 OWASP Juice Shop 上运行 CTF 和安全培训通常相当棘手,因为 Juice Shop 本身并不适合同时被多个用户使用。指导每个人在自己的机器上启动 Juice Shop 虽然可行,但会占用太多宝贵时间。
MultiJuicer 让您能够在一台中央 Kubernetes 集群上为每位参与者运行独立的 Juice Shop 实例,从而无需在本地运行 Juice Shop 实例也能举办活动。
它的功能:
关于架构和各个组件的详细描述,请参见架构文档。
👉 MultiJuicer 新手? 请参阅可视化操作指南,了解参与者如何注册、获取 JuiceShop 实例以及积分如何在记分牌上追踪。
MultiJuicer 运行在 Kubernetes 上,安装它需要 helm
helm install multi-juicer oci://ghcr.io/juice-shop/multi-juicer/helm/multi-juicer
在正式活动中使用 MultiJuicer 之前,请查看生产环境注意事项,了解您可能需要配置的值的清单。
要设置支持 JuiceShop v20+ AI/LLM 相关挑战的 MultiJuicer,请参阅 AI/LLM 配置指南
一般来说,MultiJuicer 可以在几乎任何 Kubernetes 集群上运行,但为了帮助刚接触 Kubernetes 的用户,我们提供了一些指南,介绍如何在某些特定的云提供商上设置包含 MultiJuicer 的 Kubernetes 集群。
您有多种选项来设置堆栈,并且可以对 JuiceShop 实例进行个性化定制。您可以在以下位置找到默认配置值:helm/multi-juicer/values.yaml
下载并保存该文件,然后通过运行以下命令告诉 helm 使用您的配置文件覆盖默认值:
helm install -f values.yaml multi-juicer ./multi-juicer/helm/multi-juicer/
要自定义 JuiceShop 实例和 MultiJuicer UI 的主题(主题、Logo、启用的挑战等),请参阅 JuiceShop 自定义指南。
helm delete multi-juicer
为了安全起见,请按以下标准进行估算:
上述数字反映了默认的资源限制。这些限制可以调整,请参见:自定义设置
没有真正的固定限制(尽管您也可以配置一个 😉)。所有实例流量流经的自定义负载均衡器可以根据需要进行复制。您还可以附加一个 Horizontal Pod Autoscaler 来自动扩展负载均衡器。
我们有一些特殊需求,认为现有负载均衡器很难轻易解决:
如果您有解决这些问题的好主意,而不需要自定义负载均衡器,请随时告诉我们,我们很乐意听取您的意见!
有以下几条充分的理由:
kubectl 进行调试时会变得极其方便。kubectl 轻松管理 JuiceShop?您可以使用 kubectl 的自定义列功能列出所有 JuiceShop 及其相关信息。
$ 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 年开源,并于 2023 年捐赠给 OWASP 组织 / OWASP Juice Shop 项目。
您可以在 OWASP Slack 工作区的 #project-juiceshop 频道中找到我们。我们很乐意听取您的任何反馈或使用报告。如果您还没有加入 OWASP Slack 工作区,可以通过此链接加入。