Xanitizer
# Xanitizer

Xanitizer ist ein Programmierwerkzeug, um Webanwendungen nach Sicherheitslücken zu durchsuchen. Es werden die Programmiersprachen Java-, Scala-, JavaScript und TypeScript unterstützt. Weiterhin können die Präsentations-Frameworks JSP, JSF und AngularJS analysiert werden, um Angriffsmöglichkeiten durch Cross-Site-Scripting zu identifizieren.

Xanitizer verwendet die folgenden Techniken, um Sicherheitslücken zu finden:

* Taint-Analyse: Eine Datenflussanalyse wird verwendet, um die Stellen zu ermitteln, an denen benutzerdefinierte Daten in das Softwaresystem gelangen (sog. Taint Sources), wie sich diese Daten durch das System bewegen und letztendlich Codestellen erreichen, an denen sie möglicherweise Schaden verursachen können („Taint Sinks“)
* Protokoll-Analyse: Eine Datenflussanalyse wird verwendet, um zu prüfen, ob eine Menge von Methoden in der vordefinierten Reihenfolge und mit den richtigen Parametern aufgerufen wird. Dies ist besonders bei der Verwendung von Kryptographie relevant.
* Erkennung von Methodenaufrufen: Der Bytecode des Softwaresystems wird nach Aufrufen von möglicherweise schädlichen Methoden untersucht
* Prüfen der Konfiguration: Die Konfigurationsdateien der Webanwendung werden nach Konfigurationsproblemen durchsucht

Zusätzlich können die Open-Source-Werkzeuge SpotBugs und OWASP-Dependency-Check mit dem Xanitizer ausgeführt werden. Ihre Ergebnisse werden in die anderen ermittelten Ergebnisse integriert.

Xanitizer beinhaltet eine große Anzahl von vordefinierten Mustern zur Erkennung von Sicherheitslücken. Der Benutzer kann diese um weitere Methodenmuster (für Taint-Sourcen, Taint-Sanitizer, Taint-Sinks und andere möglicherweise schädliche Methoden) erweitern. Außerdem können reguläre Ausdrücke und XPath-Ausdrücke angegeben werden, um weitere Probleme in Konfigurationsdateien zu finden.

Xanitizer wird standardmäßig über eine grafische Benutzeroberfläche benutzt, kann aber auch auf der Kommandozeile oder als Jenkins-, Ant-, Maven-Plugin oder Gradle-Plugin (intern wird durch Gradle jedoch lediglich ein Ant-Script aufgerufen) ausgeführt werden, um es bspw. in eine Build-Umgebung zu integrieren. Darüber hinaus wird ein Plugin bereitgestellt, um die ermittelten Sicherheitslücken in der Plattform SonarQube anzeigen zu können.

