Schwachstellen Scans
Unter einem Vulnerability Scan oder auch Schwachstellen Scan versteht man die automatisierte Prüfung von einem oder mehreren Hosts auf bekannte Schwachstellen (sog. „Vulnerabilities“). Dabei werden zuerst die verfügbaren Hosts und die auf diesen Hosts angebotenen Dienste identifiziert. Dann werden die identifizieren Dienste verschiedenen automatisierten Tests unterzogen, um allfällige Verwundbarkeiten festzustellen. Dabei kann je nach Dienst und System die Fehlerquote, d.h. false positives und false negatives, relativ hoch sein. Um false positives zu reduzieren, werden daher in einer zweiten Phase die Feststellungen manuell validiert.
Automatische Schwachstellen-Scanner müssen dem Ziel entsprechend sorgfältig parametrisiert werden, um ihre Wirkung zu entfalten. Schwachstellen-Scanner wie Nessus oder OpenVAS können zwar eine relativ breite Palette von Diensten abdecken. Dennoch ist diese Abdeckung keineswegs vollständig. Automatische Scans eignen sich daher vor allem als Ergänzung zu manuellen Penetration Tests oder als günstiges Mittel, um bei einer grösseren Anzahl von Hosts eine ungefähre Einschätzung des Sicherheitsniveaus zu erreichen.
Je nach Typ der zu prüfenden Dienste existieren auch ganz spezifische Vulnerability Scanner. Einen „vollautomatischen lückenlosen Sicherheitsscanner für IT-Systeme“ gibt es nicht und wird es aufgrund der Heterogenität von IT Systemen und der Komplexität ihrer Wechselwirkungen wohl auch nie geben.
Web Application Vulnerability Scans
Manche Standardsoftware wie E-Mail- oder FTP-Server lassen sich von allgemeinen Schwachstellenscannern relativ zuverlässig prüfen. Webserver hingegen können naturgemäss eine sehr grosse Anzahl verschiedener Applikationen mit unterschiedlichen Technologien zur Verfügung stellen. Solche Webapplikationen weisen heute einen grossen Verbreitungsgrad und eine enorme Heterogenität auf. Ein Grossteil von kundenspezifischer Software wird heutzutage als Webapplikation umgesetzt. Dementsprechend tritt auch ein Grossteil der kundenspezifischen Schwachstellen in Webapplikationen auf. Untersuchungen haben gezeigt, dass neben menschlichen Schwächen Webapplikationen die wichtigsten Einfallstore für Hacker darstellen.
Entsprechend gross ist das Bedürfnis, auch Webapplikationen automatisiert auf Sicherheitsprobleme zu testen. In Ansätzen ist dies je nach verwendeter Technologie auch möglich. Es existiert eine Vielzahl von Tools, um Angriffe auf Webapplikationen zu automatisieren. Es ist jedoch wichtig zu verstehen, dass all diese automatischen Testprogramme erstens fachmännisch konfiguriert und zweitens deren Grenzen verstanden werden müssen. Falsch konfigurierte Schwachstellenscanner können zur fälschlichen Annahme führen, dass eine Applikation sicher sei. Auch sollte einem Tester bewusst sein, welche Klassen von Schwachstellen durch automatisierte Tools abgedeckt werden. Es gibt viele Schwachstellen, die automatische Tools kaum entdecken können. Dazu gehören etwa Schwachstellen in der Autorisierung für den Zugriff auf sensitive Daten. Derlei Schwachstellen sind stark kontextabhängig und verlangen dementsprechend menschliche Testressourcen.
Es gibt auf der anderen Seite auch Schwachstellen in Webapplikationen, die sich normalerweise mit automatisierten Tools besser prüfen lassen als manuell. Dazu gehören etwa einfache SQL Injections (SQLi) und reflektiertes Cross Site Scripting (XSS). Solche Tests sind manuell zwar durchaus machbar, aber relativ zeitintensiv.
Host-based vulnerability scans
Host basierte Schwachstellenscans dienen hauptsächlich dazu, veraltete Software-Versionen oder schwache Konfigurationen zu erkennen. Dabei läuft die Testsoftware auf dem zu prüfenden Host selber, in der Regel mit erhöhten Rechten. Vorteil dieser Methode ist, dass der Schwachstellen-Scanner Zugriff auf deutlich zuverlässigere Informationen hat. Zum Beispiel muss der Schwachstellenscanner nicht via Netzwerk in Form eines Ratespiels versuchen, die Version des Betriebssystems herauszufinden. Er kann das Betriebssystem direkt fragen und eine zuverlässige und detaillierte Antwort erhalten. Nachteil dieser Methode ist, dass zusätzliche Software auf dem Host gestartet werden muss. Ausserdem werden solche Tests oftmals von einer weiteren Software ferngesteuert (sog. authenticated vulnerability scans), was bei fehlerhafter Implementierung oder Umsetzung wiederum Sicherheitsprobleme verursachen kann.