
보안 교육 및 Capture The Flags를 위해 여러 Juice Shop 인스턴스를 호스팅하고 관리합니다.
CTF 및 보안 교육을 OWASP Juice Shop과 함께 실행하는 것은 일반적으로 꽤 까다롭습니다. 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의 테마를 사용자 지정하려면(테마, 로고, 활성화된 챌린지 등) JuiceShop 사용자 지정 가이드를 참조하세요.
helm delete multi-juicer
안전하게 계산하려면 다음을 기준으로 계산하세요:
위의 숫자는 기본 리소스 제한을 반영합니다. 이는 조정할 수 있습니다. 설정 사용자 지정을 참조하세요.
실제 고정된 제한은 없습니다. (하나를 구성할 수는 있지만요 😉) 개별 인스턴스의 모든 트래픽이 흐르는 사용자 정의 LoadBalancer는 원하는 만큼 복제할 수 있습니다. 또한 Horizontal Pod Autoscaler를 연결하여 LoadBalancer를 자동으로 확장할 수 있습니다.
사전 구축된 로드 밸런서로는 쉽게 해결할 수 없는 몇 가지 특수 요구 사항이 있습니다:
사용자 정의 로드 밸런서 없이 이러한 문제를 해결하는 멋진 아이디어가 있다면 저희에게 알려주세요. 여러분의 의견을 듣고 싶습니다!
이에 대한 꽤 좋은 이유가 있습니다:
kubectl을 사용하여 디버깅을 훨씬 더 쉽게 만듭니다.kubectl?kubectl의 custom-columns 기능을 사용하여 관련 정보와 함께 모든 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 워크스페이스에 가입하지 않으셨다면 이 링크를 통해 가입할 수 있습니다.