
OWASP ASST (Automated Software Security Toolkit) | Ein neuartiger Open-Source-Web-Sicherheitsscanner.
OWASP ASST (Automated Software Security Toolkit) | Ein neuartiger Open-Source-Web-Sicherheitsscanner.
Hinweis: AWSS ist der ältere Name von ASST

Webanwendungen sind zu einem integralen Bestandteil des täglichen Lebens geworden, aber viele dieser Anwendungen werden mit kritischen Schwachstellen ausgeliefert, die fatal ausgenutzt werden können. Da die Technologien zur Entwicklung dieser Anwendungen immer anspruchsvoller werden, werden auch die Techniken der Angreifer immer raffinierter. Angreifer benötigen keinen physischen Zugriff mehr auf die Opfer, sie können mehrere gleichzeitig angreifen, und die Wahrscheinlichkeit, erwischt und vor Gericht gestellt zu werden, ist minimal.
Automatisierte Web-Schwachstellenscanner werden häufig eingesetzt, um die Sicherheit von Webanwendungen zu bewerten. Sie können die Effizienz der Schwachstellenerkennung im Vergleich zur traditionellen manuellen Erkennung verbessern, die zeitaufwändig, arbeitsintensiv und ineffizient ist. Es gibt viele Web-Schwachstellenscanner im Internet, aber sie erklären nicht den möglichen Angriff und wie man Gegenmaßnahmen ergreifen kann.
Wir haben einen neuen automatisierten Web-Schwachstellenscanner namens Automated Software Security Toolkit (ASST) entworfen und implementiert, der den Quellcode eines Webprojekts scannt und einen Ergebnisbericht mit einer detaillierten Erklärung zu jeder möglichen Schwachstelle und wie man sich dagegen schützen kann, generiert. Wir haben die Leistung von ASST getestet und seine Ergebnisse mit anderen großen Open-Source-Schwachstellenscannern verglichen. Unsere Ergebnisse zeigen, dass ASST Schwachstellen in der Websicherheit umfassender und genauer identifizieren kann.
HINWEIS: Es ist noch in der Entwicklung. Bitte melden Sie jeden Fehler, den Sie erhalten.
ASST ist ein Open-Source-Quellcode-Scan-Tool, es ist eine CLI-Anwendung (Command Line Interface), entwickelt mit JavaScript (Node.js-Framework).
Derzeit konzentriert es sich auf die Programmiersprachen PHP und MySQL, aber da seine Kernfunktionen fertig und für jedermann verfügbar sind, können Programmierer beitragen und Plugins oder Erweiterungen hinzufügen, um Funktionen zu erweitern und es für andere Programmiersprachen wie Java, C#, Python usw. und deren Frameworks scannen zu lassen. Die Infrastruktur ist so ausgelegt, dass andere Programmierer dazu beitragen können, sie besser und neuartiger zu machen.
Unseres Wissens nach ist ASST das einzige Tool, das PHP-Sprache gemäß den OWASP Top 10 Web Application Security Risks scannt.
Wenn ASST ein Projekt scannt, überprüft es jede einzelne Datei Zeile für Zeile auf Sicherheitslücken. Wenn eine Schwachstelle erkannt wird, gibt es im Bericht einen Hinweis, in welcher Zeile in welcher Datei eine Schwachstelle gefunden wurde, sowie einen "Click Here"-Link, der den Angriff erklärt und zeigt, wie man sich dagegen schützt.
Die Ergebnisse von ASST werden als HTML-Bericht angezeigt, der mit PDF-Dateien verknüpft ist, um jeden Angriff und seinen Schutzmechanismus zu erklären.
ASST kann leicht erweitert werden, um andere Programmiersprachen zu unterstützen, die auf Schwachstellen gescannt werden können. Das Projekt ist Open Source, daher können Programmierer mit Cybersicherheits-Kenntnissen beitragen oder das Toolkit forken und Funktionen hinzufügen. Andere Programmiersprachen wie Python, C#, Java oder Node.js selbst können hinzugefügt werden, um als Backend-Servercode auf Schwachstellen gescannt zu werden.
Wenn Sie ein sicherheitserfahrener Entwickler sind, können Sie dazu beitragen, diese aktuelle Version zu verbessern, oder Sie können dazu beitragen, neue Programmiersprachen zum Scannen hinzuzufügen. Es gibt jedoch Regeln, die bei der Verbesserung beachtet werden müssen:
Damit ASST zu 100% funktioniert, müssen Sie Folgendes installieren:
Vollständiges Video zur Ausführung von ASST unter Windows: https://youtu.be/FKxDa3zYz1E
Sie können XAMPP für Windows hier herunterladen: https://www.apachefriends.org/download.html wählen Sie die PHP-Version, die zu Ihrem Projekt passt. Wenn Sie nicht wissen, welche Version Sie wählen sollen, wählen Sie einfach die erste für Windows.
Nachdem Sie XAMPP heruntergeladen und installiert haben (Weiter, Weiter, Weiter, Fertigstellen), starten Sie das XAMPP Control Panel. Sie können XAMPP im Startmenü-Suchfeld eingeben, dann sehen Sie es, starten Sie es. Neben den Labels Apache und MySQL drücken Sie Start (zwei Schaltflächen).
Stellen Sie sicher, dass auf Ihrem PC kein Virtual Machine-Programm installiert ist, da XAMPP und Virtual Machine sich um Ports streiten. Sie müssen die Hintergrunddienste der VM über den Task-Manager erzwingen (googeln Sie, wenn Sie nicht wissen, wovon ich spreche).
Stellen Sie sicher, dass Skype geschlossen ist (auch aus der Taskleiste), da sie sich ebenfalls um Ports streiten. Sie können Skype nach dem Start von XAMPP ausführen.
Platzieren Sie den Ordner Ihres Projekts in htdocs: Standard: "C:\xampp\htdocs\IhrProjektordnername"
Öffnen Sie den Browser, geben Sie ein: localhost/phpmyadmin, erstellen Sie eine leere Datenbank, importieren Sie Ihre project_database.sql-Datei darin, öffnen Sie den Ordner Ihres Projekts und ändern Sie die Konfigurationsdatei Ihres Projekts, um eine Verbindung zum MySQL-localhost herzustellen: Standardkonfigurationen sind: host: "localhost" oder "127.0.0.1", username: "root", password: "" (Leerer_String), database name: "dbname_you_chose_in_phpmyadmin"
Sie müssen eine bestimmte Version von Node.js für Windows von hier herunterladen: https://nodejs.org/en/blog/release/v12.13.0/ wählen Sie (Windows 64-bit Installer), dann herunterladen, Weiter, Weiter, Weiter und Fertigstellen.
Wir aktualisieren Node.js nicht jeden Monat. Wenn Sie es selbst testen möchten, können Sie die neueste Node.js-Version von hier herunterladen: https://nodejs.org/en/download/ wählen Sie (Windows Installer (.msi)), herunterladen und ausführen, Weiter, Weiter, Weiter und Fertigstellen.
Laden Sie das ASST-Projekt von dieser GitHub-Seite herunter und entpacken Sie es. Benennen Sie den Ordner in "ASST" um, nicht "ASST-main". Verschieben Sie den ASST-Ordner neben Ihr Webprojekt, um es zu scannen: Standard: "C:\xampp\htdocs\ASST"
Öffnen Sie config.js im ASST-Ordner und setzen Sie den Namen des zu scannenden Webprojektordners in der Variable DEFAULT_PROJECT_PATH_TO_SCAN.
Öffnen Sie config_php_lang.js im ASST-Ordner: Wenn Sie MySQL verwenden, müssen Sie die Variablen wie in der Datei beschrieben setzen. Wenn Sie MySQL nicht verwenden, setzen Sie die Variable IS_DBMS_USED einfach auf false und ignorieren Sie den Rest. Beachten Sie, dass PHP_EXE_BIN_PATH auf den Standard-XAMPP-Speicherort gesetzt ist. Ändern Sie ihn, wenn Sie eine andere PHP-Binärdatei oder einen anderen XAMPP-Speicherort verwenden.
Doppelklicken Sie auf ASST.bat, um es auszuführen. Wenn es von Windows Defender Smart Screen blockiert wird, erlauben Sie es, indem Sie auf Weitere Informationen und dann auf Trotzdem ausführen klicken, oder Sie können es einfach mit dem CMD-Befehl ausführen.
Führen Sie diesen Befehl einmal aus, um die node_modules für dieses Projekt zu installieren:
$ cd C:\xampp\htdocs\ASST && npm install
Standard-CMD-Befehl zum Ausführen von ASST:
$ node C:\xampp\htdocs\ASST\main.js
Vollständiges Video zur Ausführung von ASST unter Ubuntu: https://youtu.be/XrAB8_BHxfo
Öffnen Sie diesen Link in einem Webbrowser: https://www.apachefriends.org/download.html und suchen Sie den Abschnitt "XAMPP for Linux". Wählen Sie die PHP-Version, die zu Ihrem Projekt passt, und laden Sie sie herunter. Wenn Sie nicht wissen, welche Version Sie wählen sollen, wählen Sie einfach die erste. Oder Sie können XAMPP über das Terminal mit dem Befehl "wget" herunterladen, aber Sie müssen die richtige URL-Version kennen.
Arbeiten Sie nun im Terminal:
$ cd Downloads
$ ls
Sie sollten die heruntergeladene XAMPP-Setup-Datei sehen.
$ sudo chmod +x xampp-linux-*
$ sudo ./xampp-linux-*
Warten Sie einen Moment, bis das Setup ausgeführt wird, und folgen Sie dann den Anweisungen. Nach dem Herunterladen und Installieren von XAMPP führen Sie es aus.
$ sudo /opt/lampp/lampp start
Platzieren Sie den Ordner Ihres Projekts in htdocs: Standard: "/opt/lampp/htdocs/IhrProjektordnername"
Öffnen Sie den Browser, geben Sie ein: localhost/phpmyadmin, erstellen Sie eine leere Datenbank, importieren Sie Ihre project_database.sql-Datei darin, öffnen Sie den Ordner Ihres Projekts und ändern Sie die Konfigurationsdatei Ihres Projekts, um eine Verbindung zum MySQL-localhost herzustellen: Standardkonfigurationen sind: host: "localhost" oder "127.0.0.1", username: "root", password: "" (Leerer_String), database name: "dbname_you_chose_in_phpmyadmin"
$ sudo apt-get install nodejs -y
$ sudo apt-get install npm -y
Sie müssen eine bestimmte Version von Node.js einstellen, damit ASST ohne Probleme funktioniert.
$ sudo npm install n -g
$ sudo n 12.13.0
Wir aktualisieren Node.js nicht jeden Monat. Wenn Sie es selbst testen möchten, können Sie die letzten beiden Befehle zum Installieren von "n" mit npm ignorieren.
Laden Sie das ASST-Projekt von dieser GitHub-Seite herunter und entpacken Sie es, indem Sie einen Browser, wget oder git verwenden. Benennen Sie den Ordner in "ASST" um, nicht "ASST-main". Verschieben Sie den ASST-Ordner neben Ihr Webprojekt, um es zu scannen: Standard: "/opt/lampp/htdocs/ASST"
Öffnen Sie config.js im ASST-Ordner mit nano, vim oder einem Texteditor und setzen Sie den Namen des zu scannenden Webprojektordners in der Variable DEFAULT_PROJECT_PATH_TO_SCAN.
Öffnen Sie config_php_lang.js im ASST-Ordner: Wenn Sie MySQL verwenden, müssen Sie die Variablen wie in der Datei beschrieben setzen. Wenn Sie MySQL nicht verwenden, setzen Sie die Variable IS_DBMS_USED einfach auf false und ignorieren Sie den Rest. Beachten Sie, dass PHP_EXE_BIN_PATH auf den Standard-XAMPP-Speicherort gesetzt ist. Ändern Sie ihn, wenn Sie eine andere PHP-Binärdatei oder einen anderen XAMPP-Speicherort verwenden.
Führen Sie diesen Befehl einmal aus, um die node_modules für dieses Projekt zu installieren:
$ cd /opt/lampp/htdocs/ASST && sudo npm install
So führen Sie ASST aus, Standardbefehl:
$ sudo node /opt/lampp/htdocs/ASST/main.js
Vollständiges Video zur Ausführung von ASST unter MacOSX: https://youtu.be/IThRZEQVa7M
Öffnen Sie diesen Link in einem Webbrowser: https://www.apachefriends.org/download.html und suchen Sie den Abschnitt "XAMPP for OSX". Wählen Sie die PHP-Version, die zu Ihrem Projekt passt, und laden Sie sie herunter. Wenn Sie nicht wissen, welche Version Sie wählen sollen, wählen Sie einfach die erste.
Öffnen Sie den Downloads-Ordner und doppelklicken Sie auf die heruntergeladene xampp-osx-.dmg-Datei. Installieren Sie dann: Weiter, Weiter, Weiter, Fertigstellen.
Öffnen Sie nach der Installation den Anwendungs-Ordner mit dem Finder und öffnen Sie den XAMPP-Ordner. Klicken Sie auf manager-osx.app, um das XAMPP Control Panel zu öffnen. Klicken Sie auf die Registerkarte Manage Servers und dann auf Start All.
Platzieren Sie den Ordner Ihres Projekts in htdocs:
Öffnen Sie den Browser, geben Sie ein: localhost/phpmyadmin, erstellen Sie eine leere Datenbank, importieren Sie Ihre project_database.sql-Datei darin, öffnen Sie den Ordner Ihres Projekts und ändern Sie die Konfigurationsdatei Ihres Projekts, um eine Verbindung zum MySQL-localhost herzustellen: Standardkonfigurationen sind: host: "localhost" oder "127.0.0.1", username: "root", password: "", (Leerer_String), database name: "dbname_you_chose_in_phpmyadmin"
Es gibt mehrere Möglichkeiten, Node.js unter MacOSX herunterzuladen und zu installieren, die hier beschrieben sind: https://nodejs.org/en/download/package-manager/#macos
Wir haben brew (Paketsystem) verwendet. Öffnen Sie das Terminal:
$ sudo /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
$ sudo brew install node
Sie müssen eine bestimmte Version von Node.js einstellen, damit ASST ohne Probleme funktioniert.
$ sudo npm install n -g
$ sudo n 12.13.0
Wir aktualisieren Node.js nicht jeden Monat. Wenn Sie es selbst testen möchten, können Sie die letzten beiden Befehle zum Installieren von "n" mit npm ignorieren.
Laden Sie das ASST-Projekt von dieser GitHub-Seite herunter und entpacken Sie es, indem Sie einen Browser oder git verwenden. Benennen Sie den Ordner in "ASST" um, nicht "ASST-main". Verschieben Sie den ASST-Ordner neben Ihr Webprojekt, um es zu scannen: Standard: "/Applications/XAMPP/htdocs/ASST"
Öffnen Sie config.js im ASST-Ordner mit einem Texteditor und setzen Sie den Namen des zu scannenden Webprojektordners in der Variable DEFAULT_PROJECT_PATH_TO_SCAN.
Öffnen Sie config_php_lang.js im ASST-Ordner: Wenn Sie MySQL verwenden, müssen Sie die Variablen wie in der Datei beschrieben setzen. Wenn Sie MySQL nicht verwenden, setzen Sie die Variable IS_DBMS_USED einfach auf false und ignorieren Sie den Rest. Beachten Sie, dass PHP_EXE_BIN_PATH auf den Standard-XAMPP-Speicherort gesetzt ist. Ändern Sie ihn, wenn Sie eine andere PHP-Binärdatei oder einen anderen XAMPP-Speicherort verwenden.
Führen Sie diesen Befehl einmal aus, um die node_modules für dieses Projekt zu installieren:
$ cd /Applications/XAMPP/htdocs/ASST && sudo npm install
So führen Sie ASST aus, Standardbefehl:
$ sudo node /Applications/XAMPP/htdocs/ASST/main.js
Besonderer Dank geht an:
Dafür, dass sie dieses Toolkit durch ihre Anleitung und Hilfe ermöglicht haben.