Die Trainingsanwendung OWASP Juice Shop bringt Ihnen die Basics der Application Security näher.
OWASP steht für Open Web Application Security Projekt. Das Kürzel beschreibt ziemlich genau den Zweck von Juice Shop: Er dient als Beispielapplikation, die absichtlich verschiedene Sicherheitslücken enthält. Das erlaubt, an einem unkritischen System zu analysieren, wie ein typischer Angreifer vorgehen würde und was genau man tun muss, um solche Attacken zu kontern. Sie schlüpfen dabei selbst in die Rolle des Angreifers und versuchen, Sicherheitslücken zu finden und auszunutzen. Der Juice Shop verfügt über ein Score Board, das signalisiert, welche Lücken bereits gefunden wurden und welche Angriffe Sie noch ausprobieren könnten.
Aller Anfang
Um sinnvoll mit dem OWASP Juice Shop [1] zu arbeiten, benötigen Sie Grundkenntnisse in den Bereichen unixoide Systeme, HTML, Javascript und SQL. Es schadet außerdem nicht, wenn Sie Erfahrung im Schreiben kompletter Webapplikationen mitbringen. Entsprechend richtet sich der Juice Shop eher an fortgeschrittene Nutzer. Er kann aber einem Entwickler mit ein wenig Erfahrung wertvolle Einblicke bieten.
Jeder Entwickler sollte ein grundsätzliches Verständnis davon haben, welche Sicherheitslücken in Anwendungen existieren können und wie man sie schließt. Das komplette Projekt ist als Open Source aufgebaut, alle Ressourcen finden Sie auf Github [2]. Falls Sie sich erst genauer über den OWASP Juice Shop informieren möchten, schauen Sie auf der Projektseite vorbei. Neben dem OWASP-Kernprojekt gibt es zusätzlich in größeren Städten noch Ortsgruppen, sogenannte Chapters. Hier treffen sich Interessierte live, um sich rund um das Thema Anwendungssicherheit auszutauschen.
Installation
Für den Test installieren wir den Juice Shop auf einem RasPi 4 mit 4 GByte RAM. Der Shop selbst läuft auf einem solchen System recht gut, allerdings gestaltet sich die Installation etwas zeitraubend. Als Betriebssystem verwenden wir das aktuelle Raspberry Pi OS Lite in der 64-Bit-Fassung. Achten Sie darauf, nicht die 32-Bit-Variante einzurichten, das führt unweigerlich zu Fehlern.
Allerdings ist das in Pi OS vorhandene Node.js-Paket reichlich angestaubt. Deswegen richten wir mit den Kommandos aus Listing 1 manuell eine aktuellere Version ein. Der letzte Befehl gibt die aktuelle Node.js-Version aus, in unserem Fall sollte das v18.x.x sein.
Listing 1
Node.js manuell installieren
$ sudo apt update $ sudo apt upgrade $ curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - $ sudo apt-get install -y nodejs $ node --version
Danach geht es mit dem Einrichten des OWASP Juice Shop weiter (Listing 2). Das Kommando npm install benötigt geraume Weile, währenddessen können Sie beruhigt in eine Kaffeepause gehen. Das Installationsskript wirft recht viele Fehler. Einige davon rühren vermutlich daher, dass der Juice Shop absichtlich Sicherheitslücken aufweist. Alles in allem läuft der Shop aber hinterher problemlos.
Listing 2
Juice Shop einrichten
$ sudo apt install git $ git clone https://github.com/juice-shop/juice-shop.git --depth 1 $ cd juice-shop $ npm install $ npm start
Als Alternative zur Installation aus dem Quellcode gibt es noch die Möglichkeit, ein Docker-Image herunterzuladen (Listing 3). Die Installation via Docker gelingt erheblich schneller, dafür müssen Sie aber kleine Abstriche bei der Ausführungsgeschwindigkeit machen. Nach dem Aufnehmen des Users pi in die Gruppe docker müssen Sie diese mit newgrp docker aktivieren. Falls das nicht klappt, loggen Sie sich aus und wieder ein, um die Änderungen anzuwenden.
Listing 3
Juice Shop via Docker
$ sudo apt update $ sudo apt upgrade $ curl -fsSL https://get.docker.com -o get-docker.sh $ sudo sh get-docker.sh $ sudo usermod -aG docker pi $ newgrp docker $ docker pull bkimminich/juice-shop $ docker run --rm -p 3000:3000 bkimminich/juice-shop
Nach der Installation verbinden Sie sich via Webbrowser über die URL http://<I>RasPi-IP<I>:3000 mit dem Juice Shop. Abbildung 1 zeigt das Ergebnis in Firefox. Falls einige Inhalte des Shops nicht korrekt darstellt werden, probieren Sie es mit Chrome.
Score Board gesucht
Wie erwähnt, erlaubt es das Score Board, die Fortschritte beim Angriff auf die Applikation zu beobachten. Wo aber findet sich das ominöse Board in der Applikation? Und was möchte uns die kleine gelbe Safttüte sagen? Das Auffinden des Score Boards ist die erste Aufgabe, die es als potenzieller Angreifer zu bewältigen gilt. Die Safttüte dient dabei als Verbündeter und gibt wertvolle Tipps.







