zur Übersicht

Schnelle Security Checks

Lesedauer ca. 4 Minuten
14.03.2024

Unternehmen suchen vermehrt nach Möglichkeiten, die Sicherheit ihrer Anwendungen ohne großen Aufwand zu überprüfen. Unsere Security-Xperten sind dabei rasch auf Test-Tools, die in Python entwickelt wurden, gestoßen. Als High-Level-Programmiersprache erlaubt Python es, schnell einsatzfähige Programme zu schreiben, die sich vergleichsweise einfach in bereits vorhandene Infrastrukturen einbinden lassen. Dieser Umstand führte in den letzten Jahren zu einer regelrechten Explosion an plattformunabhängigen Unterstützungswerkzeugen mit Python.

Um die Komplexität so gering wie möglich zu halten, folgen die Open-Source-Anwendungen, die wir in diesem Beitrag unter die Lupe nehmen, dem bewährten KISS-Prinzip (keep it simple and stupid). Diese Simplizität hat zur Folge, dass sich die Programme ohne großen Aufwand in vorhandene Pipelines integrieren bzw. durch andere Lösungen austauschen lassen. Mithilfe von pip, dem Python-Paketmanager, können die Tools recht unkompliziert installiert werden.

Prüfen der Transportverschlüsselung mit SSLyze

Das quelloffene Programm SSLyze erlaubt es, sich einen guten Gesamteindruck über die Transportverschlüsselung eines Webservers zu verschaffen. Ein Einblick in die Hilfeseite mit sslyze -help liefert eine Übersicht der unterstützten Befehle. Soll bspw. ein Scan einer Domäne ausgeführt werden, reicht es aus, wenn diese als Positionsargument an SSLyze übergeben wird.

Beispiel:

sslyze [Domain]

  • Im ersten Schritt erhalten wir Informationen zur verwendeten Zertifizierungskette und deren Gültigkeiten.
  • Anschließend werden sequenziell Verbindungen mit den zu prüfenden SSL- und TLS-Versionen durchgeführt und die Ergebnisse in das Terminal geschrieben.
  • Im letzten Schritt werden die Cipher Suites nach aktuell gültigen Empfehlungen der Mozilla Foundation mit Handlungsempfehlungen ausgewertet.

Darüber hinaus beinhaltet SSLyze einen Test gegen gängige Angriffe gegen fehlerhaft konfigurierte Webserver. Der vollständige Scan durch SSLyze dauert lediglich wenige Sekunden.

Um die Logausgabe für den Lauf in einer Pipeline stark zu verkürzen, können weitere Argumente an SSLyze übergeben werden. Mit --mozilla_config=intermediate (bzw. modern oder old) lässt sich bspw. auf eine starke Verschlüsselung mit guter Rückwärtskompatibilität zu alten Browsern testen. Als Ausgabe erhält man in diesem Fall lediglich die Regelverstöße zur angegebenen Rückwärtskompatibilitätsrichtlinie.

Weitere Infos: https://github.com/nabla-c0d3/sslyze

SQL-Injektionen mit sqlmap testen

Ein weiteres Einfallstor für ungewollte Akteure stellt eine SQL-Injektion dar.

Doch was ist eine SQL-Injektion eigentlich?

Wird ein Eingabefeld nicht korrekt validiert, bevor der Inhalt an den ausführenden Server weitergeleitet wird, kann es unter Umständen zu ungewollten Injektionen von Fremdcode kommen. Bei einer SQL-Injektion handelt es sich daher um das Ausführen von ungewolltem SQL-Code. Das kann nicht nur einen Diebstahl von Daten, sondern auch eine vollständige Löschung dieser aus der Ferne zur Folge haben. Um das zu verhindern, müssen die Eingabefelder regelmäßig auf eine korrekte Validierung geprüft werden.

Eine Möglichkeit hierfür ist das Tool "sqlmap". Es kann für einen ersten Scan im interaktiven Modus via sqlmap --wizard geöffnet werden. In diesem Modus findet eine sequenzielle Abfrage der benötigten Daten mit anschließendem Scan statt. Für den Einsatz in einer Pipeline empfehlen wir, die benötigten Parameter aus der Hilfeseite für den Scan als Argument mitzugeben. Außerdem sollte man den Scan nicht mit jedem einzelnen Build ausführen, da er unter Umständen sehr lange dauern kann.

Weitere Infos: https://github.com/sqlmapproject/sqlmap

OS-Befehlsinjektionen mit Commix testen

Bei Commix handelt es sich um ein Tool, das sich in seiner Handhabung analog zu sqlmap verhält. Commix führt eine Reihe an Tests aus, die Injektionen in Richtung des ausführenden Betriebssystems abzielen, um direkt Zugriff auf die Systemebene zu erlangen. Durch die vielen möglichen Einfallstore dauert ein Scan bis zu mehreren Stunden. Zusätzlich sollte während dieser Zeit das Netzwerk nicht belastet werden, da Commix auch timingbasierte Angriffe ausprobiert.

Gerade weil es sich hier um einen Test der eigentlichen Anwendung der zugrundeliegenden Infrastruktur handelt, muss man diesen auch nicht mit jedem Build ausführen. Wir empfehlen daher eine Einbindung in eine vom Build-Prozess getrennte Pipeline. Hierfür bietet Commix ebenso eine Vielzahl an Parametern, die sich mit commix --help einsehen lassen.

Weitere Infos: https://github.com/commixproject/commix

Vulnerabilityscan mittels Wapiti

Im Gegensatz zu den zuvor vorgestellten Tools, die sich auf spezifische Sicherheitslücken konzentrieren, zeichnet sich Wapiti durch seine Fähigkeit aus, eine Vielzahl von Sicherheitsproblemen zu erkennen. Die Liste der identifizierten Schwachstellen ist auf der offiziellen Website verfügbar: https://github.com/wapiti-scanner/wapiti.

Wapiti umfasst auch den Scan von SSLyze, was seine Vielseitigkeit unterstreicht. Mit einem einfachen Befehl wie wapiti -u [URL] kann eine schnelle Überprüfung durchgeführt werden, und das Tool generiert daraufhin einen detaillierten HTML-Report mit den Ergebnissen.

Weitere Infos: https://github.com/wapiti-scanner/wapiti

Fazit

Einen sicherheitstechnischen Überblick im eigenen Softwareprojekt zu bekommen, muss nicht kompliziert sein. Ganz im Gegenteil – mit minimalen Mitteln lassen sich bereits wichtige Erkenntnisse erlangen, die potenziell kostspielige Sicherheitsprobleme effizient aufdecken. Damit dieser Blick nicht nur eine Momentaufnahme ist, sondern kontinuierlich erhalten bleibt, bietet sich eine Einbindung in die Pipelines des Projekts an.

Alle vorgestellten Tools sind Black-Box-Scanner und haben somit keinen Zugriff auf den Quellcode des Ziels. Zusätzlich zu diesen Anwendungen sollten auch Lösungen zum Scan des Quellcodes auf Programmierfehler und der eingesetzten Bibliotheken auf bekannte Sicherheitslücken (CVE) eingesetzt werden.

Die von unseren Xperten zusammengetragene Übersicht stellt nur eine Auswahl dar und ist somit keinesfalls vollständig. Programme wie smbmap und DNSRecon können die Perspektive auf die eigene Infrastruktur weiter schärfen.

Da mit dem zunehmenden technischen Fortschritt auch die Möglichkeiten für Angriffe steigen, ist es wichtig, auf dem aktuellen Stand zu bleiben. Unsere Xperten arbeiten bereits an einem weiteren Beitrag zu Sicherheits-Tools, die sich nicht nur auf Python beschränken.