All Projects β†’ iteratec β†’ multi-juicer

iteratec / multi-juicer

Licence: Apache-2.0 license
Run Capture the Flags and Security Trainings with OWASP Juice Shop

Programming Languages

javascript
184084 projects - #8 most used programming language
go
31211 projects - #10 most used programming language
Mustache
554 projects
Dockerfile
14818 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to multi-juicer

Ti0sCTF-OJ
🚩Ti0sCTF (Capture The Flag) 平台 - CTF平台 - 欒迎 Star~ ✨
Stars: ✭ 43 (-75.98%)
Mutual labels:  capture-the-flag, ctf-platform
ForcAD
Pure-python distributable Attack-Defence CTF platform, created to be easily set up.
Stars: ✭ 77 (-56.98%)
Mutual labels:  capture-the-flag, ctf-platform
juice-shop-ctf
Capture-the-Flag (CTF) environment setup tools for OWASP Juice Shop supporting CTFd, FBCTF and RootTheBox
Stars: ✭ 287 (+60.34%)
Mutual labels:  owasp, capture-the-flag
Zap Cli
A simple tool for interacting with OWASP ZAP from the commandline.
Stars: ✭ 166 (-7.26%)
Mutual labels:  owasp
Securetea Project
The OWASP SecureTea Project provides a one-stop security solution for various devices (personal computers / servers / IoT devices)
Stars: ✭ 181 (+1.12%)
Mutual labels:  owasp
Juice Shop Ctf
Capture-the-Flag (CTF) environment setup tools for OWASP Juice Shop
Stars: ✭ 238 (+32.96%)
Mutual labels:  owasp
cyclonedx-dotnet
Creates CycloneDX Software Bill of Materials (SBOM) from .NET Projects
Stars: ✭ 110 (-38.55%)
Mutual labels:  owasp
Bluemonday
bluemonday: a fast golang HTML sanitizer (inspired by the OWASP Java HTML Sanitizer) to scrub user generated content of XSS
Stars: ✭ 2,135 (+1092.74%)
Mutual labels:  owasp
cyclonedx-cli
CycloneDX CLI tool for SBOM analysis, merging, diffs and format conversions.
Stars: ✭ 154 (-13.97%)
Mutual labels:  owasp
Securecodingdojo
The Secure Coding Dojo is a platform for delivering secure coding training.
Stars: ✭ 216 (+20.67%)
Mutual labels:  owasp
Wstg
The Web Security Testing Guide is a comprehensive Open Source guide to testing the security of web applications and web services.
Stars: ✭ 3,873 (+2063.69%)
Mutual labels:  owasp
Apicheck
The DevSecOps toolset for REST APIs
Stars: ✭ 184 (+2.79%)
Mutual labels:  owasp
tryhackme-ctf
TryHackMe CTFs writeups, notes, drafts, scrabbles, files and solutions.
Stars: ✭ 140 (-21.79%)
Mutual labels:  capture-the-flag
Csrf Protector Php
CSRF Protector library: standalone library for CSRF mitigation
Stars: ✭ 178 (-0.56%)
Mutual labels:  owasp
PTE
Platform Test Edition
Stars: ✭ 18 (-89.94%)
Mutual labels:  ctf-platform
Python Honeypot
OWASP Honeypot, Automated Deception Framework.
Stars: ✭ 160 (-10.61%)
Mutual labels:  owasp
headers
An application to catch, search and analyze HTTP secure headers.
Stars: ✭ 59 (-67.04%)
Mutual labels:  owasp
Zap Hud
The OWASP ZAP Heads Up Display (HUD)
Stars: ✭ 201 (+12.29%)
Mutual labels:  owasp
Fdsploit
File Inclusion & Directory Traversal fuzzing, enumeration & exploitation tool.
Stars: ✭ 199 (+11.17%)
Mutual labels:  owasp
Insider
Static Application Security Testing (SAST) engine focused on covering the OWASP Top 10, to make source code analysis to find vulnerabilities right in the source code, focused on a agile and easy to implement software inside your DevOps pipeline. Support the following technologies: Java (Maven and Android), Kotlin (Android), Swift (iOS), .NET Full Framework, C#, and Javascript (Node.js).
Stars: ✭ 216 (+20.67%)
Mutual labels:  owasp

MultiJuicer, Multi User Juice Shop Platform

Running CTFs and Security Trainings with OWASP Juice Shop is usually quite tricky, Juice Shop just isn't intended to be used by multiple users at a time. Instructing everybody how to start Juice Shop on their own machine works ok, but takes away too much valuable time.

MultiJuicer gives you the ability to run separate Juice Shop instances for every participant on a central kubernetes cluster, to run events without the need for local Juice Shop instances.

What it does:

  • dynamically create new Juice Shop instances when needed
  • runs on a single domain, comes with a LoadBalancer sending the traffic to the participants Juice Shop instance
  • backup and auto apply challenge progress in case of Juice Shop container restarts
  • cleanup old & unused instances automatically

MultiJuicer, High Level Architecture Diagram

Installation

MultiJuicer runs on kubernetes, to install it you'll need helm.

helm repo add multi-juicer https://iteratec.github.io/multi-juicer/

helm install multi-juicer multi-juicer/multi-juicer

See production notes for a checklist of values you'll likely need to configure before using MultiJuicer in proper events.

Installation Guides for specific Cloud Providers / Environments

Generally MultiJuicer runs on pretty much any kubernetes cluster, but to make it easier for anybody who is new to kubernetes we got some guides on how to setup a kubernetes cluster with MultiJuicer installed for some specific Cloud providers.

Customizing the Setup

You got some options on how to setup the stack, with some option to customize the JuiceShop instances to your own liking. You can find the default config values under: helm/multi-juicer/values.yaml

Download & Save the file and tell helm to use your config file over the default by running:

helm install -f values.yaml multi-juicer ./multi-juicer/helm/multi-juicer/

Deinstallation

helm delete multi-juicer

FAQ

How much compute resources will the cluster require?

To be on the safe side calculate with:

  • 1GB memory & 1CPU overhead, for the balancer & co
  • 200MB & 0.2CPU * number of participants, for the individual JuiceShop Instances

The numbers above reflect the default resource limits. These can be tweaked, see: Customizing the Setup

How many users can MultiJuicer handle?

There is no real fixed limit. (Even thought you can configure one πŸ˜‰) The custom LoadBalancer, through which all traffic for the individual Instances flows, can be replicated as much as you'd like. You can also attach a Horizontal Pod Autoscaler to automatically scale the LoadBalancer.

Why a custom LoadBalancer?

There are some special requirements which we didn't find to be easily solved with any pre build load balancer:

  • Restricting the number of users for a deployment to only the members of a certain team.
  • The load balancers cookie must be save and not easy to spoof to access another instance.
  • Handling starting of new instances.

If you have awesome ideas on how to overcome these issues without a custom load balancer, please write us, we'd love to hear from you!

Why a separate kubernetes deployment for every team?

There are some pretty good reasons for this:

  • The ability delete the instances of a team separately. Scaling down safely, without removing instances of active teams, is really tricky with a scaled deployment. You can only choose the desired scale not which pods to keep and which to throw away.
  • To ensure that pods are still properly associated with teams after a pod gets recreated. This is a non problem with separate deployment and really hard with scaled deployments.
  • The ability to embed the team name in the deployment name. This seems like a stupid reason but make debugging SOOO much easier, with just using kubectl.

How to manage JuiceShop easily using kubectl?

You can list all JuiceShops with relevant information using the custom-columns feature of kubectl. You'll need to down load the juiceShop.txt from the repository first:

kubectl get -l app=juice-shop -o custom-columns-file=juiceShop.txt deployments

Did somebody actually ask any of these questions?

No πŸ˜‰

Talk with Us!

You can reach us in the #project-juiceshop channel of the OWASP Slack Workspace. We'd love to hear any feedback or usage reports you got. If you are not already in the OWASP Slack Workspace, you can join via this link

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].