ADMIN

2024

01

2023-12-30T12:00:00

Infrastruktur- und Assetmanagement

SCHWERPUNKT

090

Sicherheit

Security Scanner

Schwachstellensuche mit Nessus Essentials

Zum Check-up

von Dr. Holger Reibold

Veröffentlicht in Ausgabe 01/2024 - SCHWERPUNKT

Mit der zunehmenden Digitalisierung steigt nicht nur die Zahl der IT-Geräte und -Services, sondern auch die Gefahr, Opfer einer Cyberattacke zu werden. Längst sind nicht mehr nur Banken und Großunternehmen von Hackerangriffen betroffen, sondern zunehmend auch kleine und mittlere Unternehmen. Hier setzt Nessus Essentials an: Das Tool erlaubt Kleinunternehmen den Einstieg in die Welt des Security- und Vulnerability-Scanning. Wir setzen den Scanner auf und beleuchten dessen Fähigkeiten.

Steuerberater, Arztpraxen, Architektur- und Kreativbüros sowie kleinere Handwerksbetriebe haben eines gemein: Sie besitzen eine vergleichsweise rudimentäre IT-Infrastruktur, sind aber wie Großunternehmen anfällig für Cyberangriffe. Die Vergangenheit lehrt, dass es oftmals nicht genügt, kritische Systeme auf dem neuesten Stand zu halten, sondern dass diese weitaus anfälliger sind, als den meisten bewusst ist. Der einzig praktikable Weg, etwaige Schwachstellen zu identifizieren, stellt der Einsatz eines Security-Scanners dar.
Unter den Security- und Vulnerability-Scannern war Nessus bis zur Veröffentlichung von Version 3.0 der wichtigste Vertreter. Mit diesem Release entschied sich Nessus-Mastermind Renaud Deraison, die Open-Source-Lizenz in eine proprietäre zu überführen. Der kommerzielle Erfolg gibt dem Franzosen recht: Das von Deraison gegründete Unternehmen Tenable [1] erwirtschaftet heute mit rund 2500 Mitarbeitern einen Umsatz von mehreren 100 Millionen US-Dollar.
Nessus kennenlernen
Der Begriff Nessus entstammt der griechischen Mythologie: Danach handelt es sich um einen Kentaur, ein Mischwesen aus Pferd und Mensch. Was Deraison zu dieser Produktbezeichnung animiert hat, ist nicht bekannt. Seit nunmehr fast 25 Jahren hat sich Nessus zu dem vielleicht besten Tool für die Schwachstellenidentifikation und -bewertung entwickelt. Grundsätzlich kann Nessus jede beliebige IT-Ressource auf mögliche Verwundbarkeiten untersuchen, auch Webapplikationen und Cloudinfrastrukturen.
Steuerberater, Arztpraxen, Architektur- und Kreativbüros sowie kleinere Handwerksbetriebe haben eines gemein: Sie besitzen eine vergleichsweise rudimentäre IT-Infrastruktur, sind aber wie Großunternehmen anfällig für Cyberangriffe. Die Vergangenheit lehrt, dass es oftmals nicht genügt, kritische Systeme auf dem neuesten Stand zu halten, sondern dass diese weitaus anfälliger sind, als den meisten bewusst ist. Der einzig praktikable Weg, etwaige Schwachstellen zu identifizieren, stellt der Einsatz eines Security-Scanners dar.
Unter den Security- und Vulnerability-Scannern war Nessus bis zur Veröffentlichung von Version 3.0 der wichtigste Vertreter. Mit diesem Release entschied sich Nessus-Mastermind Renaud Deraison, die Open-Source-Lizenz in eine proprietäre zu überführen. Der kommerzielle Erfolg gibt dem Franzosen recht: Das von Deraison gegründete Unternehmen Tenable [1] erwirtschaftet heute mit rund 2500 Mitarbeitern einen Umsatz von mehreren 100 Millionen US-Dollar.
Nessus kennenlernen
Der Begriff Nessus entstammt der griechischen Mythologie: Danach handelt es sich um einen Kentaur, ein Mischwesen aus Pferd und Mensch. Was Deraison zu dieser Produktbezeichnung animiert hat, ist nicht bekannt. Seit nunmehr fast 25 Jahren hat sich Nessus zu dem vielleicht besten Tool für die Schwachstellenidentifikation und -bewertung entwickelt. Grundsätzlich kann Nessus jede beliebige IT-Ressource auf mögliche Verwundbarkeiten untersuchen, auch Webapplikationen und Cloudinfrastrukturen.
Das Tool basiert auf einer Client-Server-Architektur. Der Server läuft meist auf einem Linux-System (nessusd) und lässt sich von einem lokalen oder auch entfernten Client steuern. Sowohl der Server als auch die Clients sind für Linux, macOS und Windows verfügbar. Beim Start des Servers werden automatisch sogenannte Plug-ins geladen, mit denen sich diverse Sicherheitslücken des Betriebssystems beziehungsweise der IT-Services aufdecken lassen, die auf den zu scannenden Hosts laufen.
Die Plug-ins sind in der Nessus-eigenen Skriptsprache "Nessus Attack Scripting Language" (NASL) implementiert. Die Statistiken sind beeindruckend. Nessus unterstützt mehr als 80.000 Common Vulnerabilities and Exposures und über 195.000 Plug-ins. Nach Angaben der Entwickler werden wöchentlich mehr als 100 neue Plug-ins veröffentlicht. Außerdem sorgt Tenables Zero Day Research dafür, dass rund um die Uhr Updates zu neuen und aufkommenden Schwachstellen entwickelt werden.
Den Einstieg in die Welt der Security- und Vulnerability-Scans erlaubt Nessus Essentials [2]. Die Variante gehört zur Tenable-Nessus-Familie und sie können damit eine Umgebung mit bis zu 16 IP-Adressen mit derselben Schnelligkeit und Präzision scannen und bewerten wie mit einer kommerziellen Nessus-Variante. Neben der Begrenzung der Anzahl an IP-Adressen unterliegt Nessus Essentials weiteren Einschränkungen. Es sind keine Compliance- und Cloud-Computing-Checks möglich. Eine weitere Einschränkung: Nessus Essentials unterstützt keine Agents und auch keine Sensoren, die auf Zielsystemen zur eingehenden Sicherheitsprüfung installiert werden.
Nessus Pro und Expert
Wächst ein Unternehmen, wachsen die sicherheitsspezifischen Herausforderungen mit. Wenn Sie mit der Beschränkung auf 16 IP-Adressen nicht mehr auskommen, kann ein Umstieg zu einer kommerziellen Variante sinnvoll sein. Mit Nessus Professional heben Sie diese Beschränkung auf. Die Lizenzgebühr beträgt etwa 3700 Euro pro Jahr. Möchten Sie zusätzlich auch Webapplikationen und Cloudinfrastrukturen scannen, benötigen Sie Nessus Expert; diese Variante schlägt mit knapp 5500 Euro jährlich zu Buche.
Erste Schritte mit Nessus Essentials
Nessus Essentials steht nach der Registrierung über die Tenable-Website als Installationspaket für Linux, macOS und Windows zur Verfügung. Alternativ können Sie eine VirtualBox-Appliance oder einen Docker-Container verwenden. Auch eine Raspberry-Pi-Installation ist möglich. Bei einer lokalen Installation erfolgt der Zugriff auf den Nessus-Server über die URL "https://localhost:8834".
Vom Startdialog aus folgen Sie mit "Continue" den weiteren Anweisungen. Wählen Sie "Register for Nessus Essentials". Mit der Registrierung haben Sie per E-Mail einen Aktivierungscode erhalten, den Sie während der Setupprozedur verwenden. Außerdem müssen Sie einen Benutzeraccount anlegen. Anschließend startet Nessus die Initialisierung und lädt die verfügbaren Plug-ins herunter. Dazu ist eine ausreichend performante Internetverbindung erforderlich. Bricht die Initialisierung ab, müssen Sie die Anmeldeprozedur von vorne beginnen.
Nach dem Abschluss des Downloads präsentiert Ihnen Nessus Essentials sein Dashboard. Bevor Sie mit der ersten Scan-Konfiguration beginnen, müssen Sie die Kompilierung der Plug-ins abwarten. Auch das nimmt einige Zeit in Anspruch. Nach dem Abschluss des Kompiliervorgangs starten Sie einen Host-Discovery-Scan um festzustellen, welche Hosts in Ihrem Netzwerk verfügbar sind. Dieser Scan dient lediglich dazu, die lokalen Hosts zu identifizieren.
Die gefundenen Systeme zählen nicht zu den 16 IP-Adressen, die in der Essentials-Lizenz enthalten sind. In das Eingabefeld geben Sie die Ziele als Hostnamen, IPv4- oder IPv6-Adressen ein. Für IP-Adressen können Sie die CIDR-Notation wie etwa "192.168.1.0/24", einen Bereich wie "192.168.1.1-192.168.1.255" oder eine kommaseparierte Liste im Stil von "192.168.1.0, 192.168.1.1" verwenden. Mit einem Klick auf "Submit" starten Sie den Discovery-Prozess.
Nessus listet alle durchgeführten Überprüfungen im Menü "Scans" auf. Die Ergebnisse der ersten Host-Erkennung finden Sie im Ordner "My Scans". Untersuchungen, die noch in der Ausführung sind, werden in der tabellarischen Übersicht durch einen rotierenden grünen Doppelpfeil angezeigt. Aus der Scan-Übersicht heraus greifen Sie mit einem Doppelklick auf den jeweiligen Bericht zu.
Erste Scans durchführen
Um eine erste eigene Überprüfung vorzubereiten, klicken Sie in der Scan-Übersicht auf "New Scan". Nessus Essentials präsentiert Ihnen die Template-Wahl. Bei der Inbetriebnahme haben Sie das Template "Host Discovery" verwendet, um die aktiven Systeme in dem angegebenen Adressenbereich zu identifizieren. Je nach System werden IP-Adresse, FQDN, Betriebssysteme und offene Ports identifiziert. Tenable empfiehlt die wöchentliche Ausführung, um neue Geräte im Netzwerk zu identifizieren. Dazu wechseln Sie über "Configure" zur Template-Konfiguration. Auf der Registerkarte "Settings" öffnen Sie das Untermenü "Basic". Hier aktiveren Sie die zeitliche Ausführung und wählen im Auswahlmenü "Frequency" die Option "Weekly".
Im Untermenü "Discovery" legen Sie den Scan-Typ fest. Die dabei verfügbaren Optionen sind von der Wahl des Scan-Templates [3] abhängig. Im Fall der Host-Erkennung können Sie neben der Host-Auflistung die Betriebssystemerkennung, das Scannen von üblichen beziehungsweise allen Ports sowie die benutzerdefinierte Erkennung wählen. Je nach Template können Sie über die Registerkarte "Credentials" die Zugangsdaten für unterschiedliche Systeme und Services hinterlegen. Wenn Sie eine Datenbank auf interne Schwachstellen hin überprüfen sollen, wählen Sie den Typ "Database" und bestimmen in den Datenbankeinstellungen den Datenbank- und Authentifizierungstyp, die Zugangsdaten und den Port.
Bild 1: Die Scan-Konfiguration stellt Ihnen über zwanzig verschiedene Templates zur Verfügung.
Auf der Registerkarte "Plugins" listet Nessus die Template-spezifische Plug-in-Auswahl. Die zugehörige Seite präsentiert Ihnen die verschiedenen Plug-in-Familien und die jeweils zugehörigen Module. Wenn Sie kein ausgewiesener Sicherheitsexperte sind, können Sie natürlich nicht wissen, was sich exakt hinter welchen Plug-in versteckt. Mit einem Klick auf dessen Bezeichnung rufen Sie die Details zum jeweiligen Skript auf.
Nachdem Sie die gewünschten Scan-Einstellungen vorgenommen haben, sichern Sie diese mit einem Klick auf "Save". Ihre erste Konfiguration landet in der tabellarischen Übersicht "My Scans". Dort starten Sie den Prüfvorgang mit einem Klick auf das "Lauch"-Icon. Nach dem Abschluss der Untersuchung greifen Sie mit einem Doppelklick auf den generierten Bericht zu.
Nessus-Berichte interpretieren
Mit der Durchführung von Tests ist es in der Praxis nicht getan, sondern vielmehr müssen Sie die von Nessus generierten Berichte interpretieren und daraus die notwendigen Schlussfolgerungen ziehen. Ein geöffneter Report listet die gescannten Hosts, die Scan-Details und einmal die Host-bezogene und dann die stichprobenübergreifende Visualisierung der Sicherheitsbewertung auf. Die Details verraten Ihnen, welches Template, welchen Scanner und welche Severity-Base Sie verwendeten. Außerdem erfahren Sie, wie viel Zeit der Prüfvorgang in Anspruch genommen hat.
Um konkrete Hinweise zu etwaigen Verwundbarkeiten abzurufen, wechseln Sie zur Registerkarte "Vulnerability". Standardmäßig listet diese Übersicht die identifizierten Verwundbarkeiten nach dem Schweregrad ("Severity") und verwendet farbige Markierungen, um den Schweregrad herauszuarbeiten. Im vorliegenden Beispiel (Bild 2) werden keine kritischen Konfigurationen erkannt, sondern lediglich zwei mittelschwere. Die Informationen bezüglich bestehender Verwundbarkeiten sind bereits hilfreich, um zielführende Gegenmaßnahmen zu ergreifen, doch Nessus begnügt sich damit nicht: Mit einem Klick auf den betreffenden Listeneintrag erfahren Sie weitere Details.
In unserem Beispiel erkennt Nessus, dass eine SMB-Verwundbarkeit einem Angreifer die Ausführung einer Man-in-the-Middle-Attacke erlauben würde. Hier kann der Angriffsvektor über die erweiterten SMB beseitigt werden. Neben einer Problemlösung präsentiert Ihnen der Report Viewer – immer abhängig vom zugrundeliegenden Skript beziehungsweise der Verwundbarkeit – weitere Links und CVSS-Bewertungen.
Bild 2: Ein erster Basissicherheitscheck eines handelsüblichen Routers liefert verschiedene sicherheitsrelevante Hinweise, denen Sie nachgehen sollten.
In Sachen Berichtausgabe müssen Sie sich bewusst sein, dass die Plug-in-Auswahl einen bedeutenden Effekt auf die Berichtgenerierung hat. Gleiches gilt für die Abhängigkeiten von Plug-ins. Bestehen Abhängigkeiten zwischen zwei oder mehr Testskripten, wird ein Skript erst dann ausgeführt, wenn all seine Abhängigkeiten erfüllt sind. Damit ist in diesem Zusammenhang gemeint, dass Skripte auf den Ergebnissen anderer Skripte aufbauen und deren Ergebnisse für ihre Ausführung voraussetzen. Hierfür sorgt die Option "Auto Enable Plugin Dependencies" in den "Scanning"-Einstellungen.
Um sich zu den Kerninformationen vorzuarbeiten, stellt Ihnen der Bericht-Viewer eine leistungsfähige Filterfunktion zur Verfügung. Alle kritischen Meldungen von Nessus sollten Sie manuell verifizieren. Dazu können Sie sich auch eines anderen Scanners bedienen. Verschiedene Probleme lassen sich beispielsweise auch durch Telnet-Sessions oder mithilfe von Netcat überprüfen. Je nach Art der Meldungen können Sie diese auch gezielt durch das Deaktivieren von Plug-ins abstellen. Diese Vorgehensweise eignet sich allerdings nur für routinierte Anwender, denn es besteht immer auch die Gefahr, dass Ihnen eine "echte" Lücke durch die Lappen geht. Jeden Bericht können Sie über das "Report"-Menü nach CSV, HTML und PDF exportieren und Dritten für die weitere Analyse zur Verfügung stellen.
Umgang mit False Positives
Der Albtraum eines jeden Administrators sind die sogenannten False Positives. Dabei handelt es sich um Fehlalarme, die Ihnen als Folge einer nicht ausreichenden Konfiguration das Leben schwer machen. Falschmeldungen können aber auch durch eine unvollständige Ausführung oder durch Bugs verursacht werden. Sie können auch durch veraltete Testskripte entstehen, die eine bereits gepatchte Sicherheitslücke unter die Lupe nehmen. Das False-Positives-Problem können Sie durch gezielte Maßnahmen zumindest reduzieren.
Nessus verfolgt bei Verwundbarkeiten zwei Ansätze: eindringendes Scannen sowie nicht-eindringendes Scannen. Im ersten Fall sendet es an den jeweiligen Dienst Daten, die die Schwachstelle ausnutzen und beispielsweise ein System zum Absturz bringen. Bei der zweiten Methode sendet der Scanner Anfragen an den Dienst, die die Schwachstelle verifizieren, den Dienst aber selbst nicht lahmlegen, oder auf eine andere Art beschädigen. Nessus unterstützt beide Verfahren. Um die ungefährlichere Variante zu wählen, stellen Sie sicher, dass die Option "Safe checks" in den erweiterten Einstellungen auf der Registerkarte "Scanning" aktiviert ist. Diese Option sorgt auch dafür, dass keine unnötigen Informationen in den Berichten lande
Ein weiteres Problem kann zu Unschärfen bei der Berichtausgabe führen: das sogenannte Rauschen. Dies bezeichnet im Nessus-Kontext technisch korrekte Berichtinformationen, die aber irrelevante Daten enthalten und die Extraktion von relevanten Informationen erschweren. Gerade beim Testen ganzer Subnetze steigt der Informationsgehalt derart, dass die echte Fehler- und Sicherheitslückensuche der sprichwörtlichen Suche nach der Stecknadel im Heuhaufen gleichkommt.
Bevor Sie sich an das Herausfiltern der tatsächlichen Falschmeldungen machen, sollten Sie durch geeignete Scan-Einstellungen das Rauschen zumindest partiell unterdrücken. Zunächst sollten Sie identische Verwundbarkeiten auf allen Hosts identifizieren und sich dann peu à peu zu den Kernproblemen vorarbeiten. Auch das Deaktivieren beziehungsweise Ausblenden von informativen Hinweisen erweist sich als hilfreich.
Bild 3: Der Clou: Nessus präsentiert Ihnen nicht nur die Verwundbarkeiten, sondern auch die relevanten Informationen zu deren Behebung.
Analyse Schritt für Schritt
Vor den eigentlichen Scan-Vorgängen führt Nessus zwei vorbereitende Schritte aus: Zunächst findet eine Host-Detection statt, um festzustellen, ob das gewünschte System überhaupt verfügbar ist. Als Nächstes folgt eine Service-Detection. Dabei geht es darum, festzustellen, welche Ports auf dem Ziel verfügbar sind und welche Dienste hinter diesen Schnittstellen laufen. Die erfolgreiche Ausführung dieser beiden Schritte ist Grundvoraussetzung für die weitere Ausführung von Nessus.
Im nächsten Schritt macht sich Nessus an das Sammeln von Informationen. Dabei werden Daten zu den einzelnen Anwendungen und Diensten zusammengetragen, insbesondere der Name und die Version der jeweiligen Anwendung. Anhand dessen kann Nessus bestimmen, welche Verwundbarkeiten die verfügbaren Dienste betreffen. Dabei kommt ein Abgleich mit den Plug-in-Informationen zum Einsatz. Nessus spezifiziert außerdem, welche Produkte, Service Packs, Hotfixes, Patches et cetera auf dem Ziel installiert sind. Diese Informationen sind für die Plug-ins relevant, da auf dieser Grundlage entschieden wird, welche Tests erfolgen.
Die beiden folgenden Schritte führen Verwundbarkeits- und Denial-of-Service-Tests durch. In dieser Phase wird auf Grundlage der zuvor ermittelten Informationen eine Vielzahl von Plug-ins geladen und ausgeführt. Welche Plug-ins das sind, hängt in erster Linie von den Diensten und Anwendungen wie auch von den Benutzervorgaben ab. Den Abschluss bildet die Berichterstellung, in der die gesammelten Ergebnisse zusammengefasst und in die verschiedenen Formate exportiert werden.
Wenn Nessus zahlreiche IP-Adressen scannt, werden Dutzende, im Extremfall sogar Hunderte von Subprozessen erzeugt. Die Anzahl der parallel ausgeführten Scans können Sie in den Nessus-Einstellungen auf der Registerkarte "Perfor-mance" anpassen. Außerdem wird für jede Clientverbindung ein neuer Prozess erzeugt, der die Kommunikation zwischen Client und Server steuert. Als C-basiertes Programm ist Nessus außerordentlich schnell in der Verarbeitung der Daten. Auch die Skripte waren ursprünglich in C programmiert, wurden aber inzwischen durch die C-nahe Sprache NASL abgelöst.
Ein weiteres Spezifikum von Nessus ist die Knowledge Base. Dabei handelt es sich um eine textbasierte Wissensdatenbank, die Daten über die durchgeführten Tests und die Testumgebung speichert. Genauer: Die Ergebnisse einzelner Hosts werden in einem speziellen Knowledge-Base-Verzeichnis abgelegt. Zu jedem Host finden Sie im Report Viewer unter "Host Details" den "KB"-Link für den Download der zugehörigen Textdatei. Diese liefert Ihnen weitere Einsichten in die Ausführung der Scans.
Fazit
Mit Nessus Essentials wird der Einstieg in das Security- und Vulnerability-Scanning zum Kinderspiel. Auch wenn sich an den Kernfunktionen des Scanners über die Jahre hinweg wenig verändert hat, merkt man dem Scanner den hohen Reifegrad an. In Verbindung mit dem Tenable-Blog [4] sind auch kleine Unternehmen bestens für die sicherheitsspezifischen Herausforderungen unserer Zeit gerüstet.
(dr)
Link-Codes