Nessus wacht über das System
Sicherheits-Audits mit Nessus

KomponentenSicherheitSicherheitsmanagementWorkspace

Seit Jahren ist Nessus das beliebteste Security-Audit. Unzählige Admins haben damit
Schwachstellen entdeckt und Sicherheitslecks geschlossen. Die aktuelle Version 3.0.3 geht
noch einen Schritt weiter. Wir zeigen, was das Tool in der Praxis bringt.

Sicherheitslücken aufspüren

Nessus wacht
über das System

Sicherheitsprodukte haben Hochkonjunktur. Kein Wunder, denn fast täglich gibt es Meldungen über kritische Sicherheitslücken, erfolgreich gehackte Server, Datenklau und Manipulation. Und davon sind nicht nur Windows-Systeme betroffen. So steigt die Nachfrage nach Werkzeugen, die dabei helfen, Sicherheitslücken aufzuspüren und zu schließen. Nessus 3.0.3 (www.nessus.org) ist ein solches Tool. Das zur Kategorie der Security-Scanner gehörende Sicherheits-Werkzeug nimmt beliebige Netzwerkgeräte, Server, Netzwerkdrucker, Router und Einzelplatzrechner unter die Lupe, identifiziert Schwachstellen und gibt Hilfestellung beim Schließen von Lücken.

Auch für heterogene Netze
Unter Linux stellt Nessus bereits seit längerer Zeit den Quasi-Standard in Sachen Sicherheits-Audits dar. Kein anderes Programm bietet einen ähnlich breit gefächerten Funktionsumfang zum Nulltarif. Interessant: Nessus ist keineswegs nur auf die Analyse von Linux-Systemen beschränkt. Auch das Abklopfen Windows-basierter Webserver auf Schwachstellen ist möglich. Hierbei versucht Nessus, die Registry auszulesen und so an Informationen über das genutzte Windows-OS zu gelangen. Darüber hinaus sendet der Scanner MSRPC-Pakete an die Ports 139 und 445 und versucht, die Windows-Version anhand der Antworten zu identifizieren. Linux Professionell zeigt, wie Sie Nessus 3.0.3 einrichten und ein Netzwerk auf Schwachstellen abklopfen.


Ein Scanner für alle Fälle

Nessus wacht
über das System

Mit Nessus 3.0.3 prüfen Sie ein lokales System, eine benutzerdefinierte IP-Range oder ein komplettes Netzwerk auf das Vorhandensein potenzieller Sicherheitslücken. Alles in allem umfasst Nessus inzwischen mehr als 11 000 Scans. Diese werden fortlaufend erweitert und gepflegt und dem Anwender ? nach der Registrierung ? in Form kostenloser Plug-ins zum Download angeboten. Der Scanner basiert auf einer Client- Server-Architektur. Dabei führt der Server die eigentlichen Tests durch, der GUI-Client dient zur Konfiguration, Berichtausgabe und Auswertung der erfassten Daten. Interessant: Auf der Hersteller-Webseite findet sich mit Nessus 3.0.3 Beta 6 auch eine Windows-Version, die unter den Betriebssystemen Windows 2000/XP und 2003 läuft.

Server-Daemon einrichten
Nessus 3.0.3 steht für die Linux-Distributionen Fedora Core 4 und 5, Red Hat Enterprise Server 3 und 4, Suse 9.3 und 10.x sowie Debian 3.1 bereit. In diesem Workshop gehen wir auf die Nutzung unter Fedora Core 5 ein. Nach dem Download und der Registrierung öffnen Sie eine Shell und melden sich als Superuser root an. Mit

rpm ?ivh Nessus-3.0.3-fc5. i386.rpm

leiten Sie die Konfiguration ein. Nach einer kurzenWartezeit zur Initialisierung der Plugins ist der Server-Daemon betriebsbereit. Ihre erste Aufgabe besteht darin, einen neuen User anzulegen und mit Administratorrechten auszustatten. Tippen Sie

/opt/nessus/sbin/nessus-addfirst- user

ein und geben Sie den Namen des neuen Users an. Bei der Frage nach der Authentifizierungsmethode entscheiden Sie sich für pass und tippen dann das entsprechende Passwort ein. Im folgenden Schritt teilt Ihnen Nessus mit, dass Sie die Zugriffsrechte des Users einschränken können. Beispielsweise können Sie festlegen, dass ein User nur einen bestimmten IP-Adressbereich scannen darf. In diesem Beispiel statten wir den User aber mit vollen Rechten aus, indem wir die Aktion mit [Strg]+[D] beenden und die nachfolgende Abfrage mit [y] bestätigen. Nun steht die Aktivierung der Plug-ins an. In der E-Mail, die der Hersteller an die bei der Registrierung angegebene Adresse geschickt hat, ist der Aktivierungscode enthalten. Am einfachsten ist es, die entsprechende Zeile zu kopieren und in die Shell einzufügen. Nach der erfolgreichen Aktivierung checkt Nessus, ob neue Plug-ins vorhanden sind.Wird das Tool fündig, lädt es die Erweiterungen automatisch nach. In der kostenlosen Nessus-Version sind neue Plug-ins erst sieben Tage nach dem Release verfügbar. Anwender mit einem Supportvertrag erhalten die Plug-ins sofort nach Erscheinen. Ratsam ist es, in der Datei nessusd.conf, die Sie im Verzeichnis /opt/nessus/etc/nessus finden, den Schalter auto_update auf yes zu stellen, damit Nessus in regelmäßigen Abständen nach neuen Plug-ins sucht und sie lädt, so dass der Scanner auch stets auf dem aktuellen Stand ist.


Linux-Nessus-Client

Nessus wacht
über das System

Wie bereits erwähnt, baut Nessus auf dem Client-Server-Prinzip auf. Und nachdem der Server inzwischen läuft, steht nun die Einrichtung des Clients Nessus 1.0.0 RC5 an. Diesen laden Sie ebenfalls von der Nessus-Homepage herunter. Ist das Tool eingespielt, starten Sie den Client. Standardmäßig ist im Bereich Options/ Target Selection der localhost als Target, also als Ziel der simulierten Nessus- Attacken, ausgewählt. Möchten Sie ein anderes System, eine IP-Range oder ein gesamtes Netzwerk scannen, müssen Sie die Ziele entsprechend anpassen. Die Verbindung zwischen Nessus-Client und -Server stellen Sie mit einem Klick auf Connect her. Im Dialog Connect to Nessus Server sind Hostname und Standard-Port aufgeführt. In der Grundeinstellung geht der Nessus-Client davon aus, dass der Server auf dem gleichen System läuft. Ist dies nicht der Fall, passen Sie den Hostnamen entsprechend an. Bei Authentication tippen Sie Usernamen und Passwort des zuvor angelegten Benutzers ein. Starten Sie die Kontaktaufnahme mit einem Klick auf OK. Der Client lädt daraufhin alle Plugins vom Server. Über die genaue Anzahl informiert Sie der Nessus-Client im Bereich Plug-ins. Zum Testzeitpunkt verfügt Nessus 3.0.3 über 11 014 Plug-ins. Abhängig vom System, auf dem der Nessus- Server läuft, sind einige Plug-ins standardmäßig deaktiviert. Möchten Sie alle Security-Scans durchführen, klicken Sie auf Enable all. Über die Schaltfläche Filter können Sie über einen Dialog bestimmte Muster für das Herausfiltern von Modulen verwenden. Mögliche Filter sind dabei beispielsweise Name, Beschreibung, Autor und Kategorie. Das ist eine große Hilfe, um sich seine maßgeschneiderten Prüfungsroutinen zusammenzustellen.


Auswahl der Scan-Verfahren

Nessus wacht
über das System

Ein Doppelklick auf einen der unter Plugin selection aufgeführten Einträge zeigt die Liste aller zu diesem Bereich gehörenden Scan-Verfahren an. Die Spanne reicht von Backdoors und Denial of Service über Finger abuses und Firewalls bis hin zu Remote file access und SMTP problems. Einige wenige Plug-ins sind mit einem Warning-Icon versehen, das sie als gefährlich ausweist. Bei unsachgemäßer Bedienung könnte damit etwa ein System zum Absturz gebracht werden. Während der Hochbetriebszeiten von produktiven Systemen sollten Sie diese Tests keinesfalls durchführen. Möchten Sie jedoch einen kompletten Security-Überblick erhalten, können Sie die potenziell gefährlichen Scans nach Belieben einschalten. Praktisch: Nessus bietet auch spezielle Security-Checks, die gängige Linux-Distributionen wie Fedora, Suse oder Ubuntu gezielt auf Schwachstellen abklopfen. Zudem sind auch die bekannten Sicherheitslücken von Windows in die Nessus-Scans integriert. Unter Credentials können Sie einen gültigen SMB-oder SSH-Account angeben, den das Programm bei den entsprechenden Tests benutzt. Im Bereich Options/General/General scan options legen Sie fest, welcher Port- Bereich gescannt und wie viele Hosts das Tool gleichzeitig checken soll. Sie können Nessus auch anweisen, nicht gescannte Ports als geschlossen und damit als sicher zu behandeln. Auch die Anzahl der gleichzeitig laufenden Checks geben Sie in diesem Dialog an. Sie sollten die Summe der Simultan-Scans aber nicht zu hochwählen, da sie wesentlichen Einfluss auf die Performance der zu scannenden Hosts sowie auf das gesamte Netzwerk haben. Weiterhin legen Sie fest, welchen Port-Scanner Sie bevorzugen. Sie können etwa auch netstat als Port-Scanner arbeiten lassen.


Nessus-Scan durchführen

Nessus wacht
über das System

Nachdem Sie sich einen Überblick über die verfügbaren Einstellungen und Scan- Optionen verschafft haben, können Sie einen ersten Scan durchführen. Mit einem Assistenten begleitet Sie der Nessus-Client durch die Konfiguration. Klicken Sie auf Scan Assistant, steht im ersten Schritt die Angabe des Tasknamens, etwa Wöchentlicher Check, und einer optionalen Beschreibung an. Anschließend können Sie eine Scope-Bezeichnung, zum Beispiel Portscan Komplettes Netzwerk, eingeben, um den durchgeführten Task noch exakter zu beschreiben. Damit können Sie ganz einfach eine hierarchisch geordnete Checkliste erstellen. Zum Abschluss steht die Angabe der zu scannenden Systeme auf dem Programm. Möchten Sie mehrere Systeme in einem Rutsch scannen, müssen Sie die Adressen durch Kommata voneinander trennen. Im Register Step 4. Execute klicken Sie auf Ausführen, um den Security-Check zu starten. Nessus zeigt den Fortschritt der Scan-Vorgänge in einem eigenen Fenster an. Hier können sie auch einzeln oder als Ganzes angehalten werden. Hinweis: Selbst bei einem lokalen Netzwerk- Rechner kann die Durchführung aller Tests je nach Qualität der LAN-Verbindungen durchaus eine Stunde und länger dauern. Das ist in erster Linie davon abhängig, wie viele Tests durchgeführt werden und welche Einstellungen bei Options/Prefs./ Global variable settings gesetzt sind.


Nessus-Bericht im Detail

Nessus wacht
über das System

Nach dem Scan-Vorgang gibt Nessus einen Report aus, dem Sie Detailinformationen entnehmen. Dieser Report zeigt die analysierten Rechner samt Port, Sicherheitswarnungen und Detailinformationen an. Oftmals liefert er auch Hinweise, wie eine erkannte Sicherheitslücke geschlossen werden kann. Diese Reports können auch in gängige Formate, darunter PDF, HTML und XML, exportiert und beispielsweise in Datenbanken weiterverarbeitet werden. Die wichtigste Aufgabe von Nessus ist es, Sicherheitsrisiken im Netzwerk herauszufinden, um dem Administrator Informationen zu liefern,wie und wo er die Umgebung sicherer machen kann. Mit den eigentlichen Tests ist es aber nicht getan. Vielmehr müssen Sie die Ergebnisse, die Nessus ausgibt, analysieren, verstehen und korrekt auswerten. Dazu ist es zunächst einmal erforderlich, die Daten richtig zu interpretieren. Das Report-Modul ist in vier Bereiche eingeteilt. Sie zeigen die analysierten Sub- Netze, die Hosts, die Ports sowie die Anfälligkeiten nebst ergänzenden Informationen an. Letztere sind nur dann verfügbar, wenn Sie einen Eintrag in der Severity-Liste markieren. Hier werden übrigens alle kritischen Ereignisse und Lücken für den jeweiligen Port aufgeführt. Wichtig ist, dass Sie erkennen, dass die Sicherheitslücken in der Severity-Liste sich ausschließlich auf den markierten Port der Port-Liste beziehen. Um nun die hostspezifischen Informationen abzurufen, markieren Sie den gewünschten Host. Im Bereich Port listet das Modul nun alle Ports auf, die den Test nicht bestanden haben. Der besseren Übersicht halber zeigen Symbole den Status sicherheitskritischer Lücken an. Markieren Sie in der Port-Liste einen Eintrag, so werden unter Severity die zugehörigen Sicherheitslücken und -warnungen sowie gegebenenfalls Sicherheitshinweise angezeigt. Erst durch einen abschließenden Klick auf eine derWarnungen werden die Details aufgerufen.


Scan-Report mit Zusatzinfos

Nessus wacht
über das System

Um maximale Informationen aus den Berichten zu ziehen, müssen Sie sich mit der Scanner-Logik vertraut machen. Die Scan-Vorgänge basieren auf NASL-Scripts (siehe Kasten »Selbst ist der Admin: eigene Scan- Routinen« auf der Vorseite). Für jedes dieser Scripts führt der Scanner die folgenden Schritte aus: Zunächst stellt der Scanner sicher, dass alle in den Abhängigkeiten der Scripts definierten Scans durchgeführt wurden. Dann ermittelt der Scanner, ob der betreffende Dienst auf dem Ziel-Host überhaupt läuft. Dazu wird meist die Knowledge Base konsultiert. Sofern möglich, werden Sicherheitslücken erkannt. Als Nächstes versucht sich der Scanner an der Verifizierung der Sicherheitslücke. Dieser Vorgang ist von Script zu Script unterschiedlich geregelt. Meist sendet das Script bestimmte Werte oder Kommandos an einen Dienst und analysiert dessen Antworten. Schließlich bestimmt Nessus auf Grundlage der zurückgegebenen Informationen, ob es sich um eine kritische Sicherheitslücke handelt. Dazu wird ein so genannter Risikofaktor gesetzt.

Eindeutige Klassifizierung

Abhängig von den Daten, die die Dienste zurückgeben,werden diese als Sicherheitslücke (Security Hole), Warnung (Warning) oder als Warnhinweis (Security Note) klassifiziert. Die unterschiedlichen Kategorien werden im Bericht durch verschiedene Symbole gekennzeichnet. Hilfreich: Jedes Nessus- Test-Script besitzt eine eigene ID, damit es eindeutig identifizierbar und ausführbar ist. Die Script-ID kann dem Report Viewer in der Regel nicht entnommen werden. Dafür findet man die ID bei verschiedenen Exportausgaben, beispielsweise beim HTML-Bericht. Über die Plug-in-Suche auf der Nessus-Homepage (www.nessus.org/plugins/index.php?view=search) haben Sie die Möglichkeit, weitere Details zu den jeweiligen Scripts abzurufen.


Warnungen richtig deuten

Nessus wacht
über das System

Als Nächstes gilt es, die Informationen, die Sie einem Bericht entnehmen, zu interpretieren. Dabei geht es primär darum, herauszulesen, welche Informationen in den einzelnen Angaben stecken, was tatsächlich berichtet wird, wie die Infos in den Gesamtkontext der Umgebung passen und welche Schlussfolgerungen daraus gezogen werden müssen. Auch die Frage, ob die Ausgaben die tatsächlichen Verhältnisse widerspiegeln, müssen Sie sich stellen. Dabei sollten Sie sich zunächst vergegenwärtigen, dass Nessus potenzielle Schwachstellen lediglich aufgrund eines einfachen Frage-Antwort-Spiels beurteilt. Ein umfangreicher Sicherheitscheck, der sich beispielsweise am Ausnutzen eines offenen Ports versucht, findet selten statt. Nessus wertet in erster Linie die Rückgaben der Hosts und der angesprochenen Dienste aus. Will man die Ausgaben von Nessus von Grund auf verstehen, so muss man sich insbesondere mit NASL sowie dem Aufbau und dem Ablauf von Test-Scripts befassen. Aber auch ohne tief gehende NASL-Kenntnisse können Sie den Berichten alle notwendigen Informationen für das Erkennen und Beseitigen eines Risikos entnehmen. Die wichtigsten Informationen sind die Zusammenfassung, die Risikoklassifizierung und die Lösungsvorschläge. Hat man verstanden, warum ein Warnhinweis ausgegeben wird, so folgt daraus meist der nächste Schritt.

Keine Panikmache
Der Albtraum eines jeden Administrators sind die so genannten False Positives. Dabei handelt es sich um Fehlalarme, die oft als Folge einer nicht sachgerechten Konfiguration dem Administrator das Leben schwer machen und viel Arbeit verursachen. Falschmeldungen werden möglicherweise aber auch durch eine unvollständige Ausführung oder durch Bugs verursacht. Sie können außerdem durch veraltete Test-Scripts entstehen, die eine bereits gepatchte Sicherheitslücke unter die Lupe nehmen und fälschlicherweise ein Problem melden. Für das Testen von Verwundbarkeiten eines Systems gibt es zwei Ansätze: eindringendes Scannen und nicht-eindringendes Scannen. Im ersten Fall sendet man an den jeweiligen Dienst Daten, die die Schwachstelle ausnutzen und beispielsweise ein System zum Absturz bringen. Bei der zweiten Methode sendet man an den Dienst Anfragen, die die Schwachstelle verifizieren, den Dienst aber selbst nicht lahm legen 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 im Register Options/General eingeschaltet ist. Standardmäßig ist dieser Schalter aktiviert. Diese Einstellung sorgt übrigens auch dafür, dass unnötige Informationen nicht in den Berichten landen.


Lokale Sicherheit checken

Nessus wacht
über das System

Seit der Einführung von Nessus 2.1.0 sind endlich auch lokale Sicherheitschecks möglich. Dabei kann sich der Security-Scanner per SSH Zugang zum System verschaffen und feststellen, welche Patches fehlen. Verfügt der Client über einen gültigen SSH-Schlüssel, so loggt er sich in dem entfernten Host ein, nimmt die Liste der installierten Software unter die Lupe und gibt dann einen detaillierten Bericht aus, welche Systemkomponenten erneuert werden sollten. Das Ziel dieser Funktion: Alle fehlenden Patches sollen gefunden werden, also nicht nur für die externen Dienste, Ports und Ähnliches, sondern auch diejenigen, die für die sichere Ausführung der Umgebung erforderlich sind. Wichtig für das Verständnis: Die lokale Überprüfung kann allerdings keine fehlerhaften Benutzerberechtigungen oder Ähnliches aufdecken. Das Interessante an der Patch-Ermittlung: Es wird schon jetzt eine Vielzahl an Betriebssystemen unterstützt, beispielsweise Fedora Core, Suse Linux und Windows NT, 2000, XP und 2003.

Fazit und Ausblick

Nessus kombiniert wie kaum ein anderes Sicherheitswerkzeug einfache Bedienung, Flexibilität und Funktionalität. Wer sich einmal an diesen Helfer gewöhnt hat, wird ihn kaum missen wollen. Und: Die Entwicklung der Softwarewird kontinuierlich vorangetrieben, so dass sich die Anwender noch auf viele Erweiterungen und Verbesserungen freuen können. Für 1200 US-Dollar bietet Tenable Network Security (www.tenablesecurity.com) ein Jahresabo für den Nessus-Scanner an: Enthalten sind Echtzeit-Updates per Direct-Feed statt sieben Tagen Verzögerung, aktuelle Vulnerability- Checks, Host-basierte Compliance- Audit-Prüfungen und E-Mail-Support.


Eigene Scan-Routinen

Nessus wacht
über das System

Nessus verfügt mit NASL über eine eigene Script-Sprache, auf der die Tests basieren. Anwender können diese nutzen, um mit relativ geringem Aufwand eigene Test-Scripts zu schreiben. Der Vorteil: Der Administrator ist nicht an die vordefinierten Test-Scripts gebunden. Dabei bietet NASL handliche Funktionen, um auf einfacheWeise Sicherheitstests für unterschiedliche Server-Typen, insbesondere für Webserver und FTP-Server, zu erstellen. NASL garantiert, dass ein Script Pakete ausschließlich zum Zielrechner sendet und dass keine Befehle auf dem lokalen System ausgeführt werden. Zu viel sollten Sie allerdings nicht von NASL erwarten, denn die Script-Sprache dient lediglich dem Erstellen von Scripts für Sicherheitstests. NASL ist im direkten Vergleich zu Perl und Co. zwar weniger leistungsfähig und sehr viel langsamer. Im Gegenzug ist NASL sicherer, da es lediglich auf einen Aufgabenbereich beschränkt ist. Man unterscheidet übrigens zwischen NASL 1 bis 3. Die dritte Variante bietet neben einem erweiterten Befehlssatz auch eine deutlich höhere Performance. Die NASLScripts, die bis zu 80 MByte groß sein dürfen, speichern Sie mit der Dateierweiterung NASL und legen sie im Plug-in-Verzeichnis von Nessus ab. Bei einer Fedora- Core-Installation finden Sie die Scripts etwa unter /opt/nessus/lib/nessus/plugins.


Open Source vs. Closed Source

Nessus wacht
über das System

Nessus-Entwickler Renaud Deraison verkündete nicht nur die neue Version, sondern auch eine gravierende Änderung der Lizenz. Nessus 3 wird nicht mehr länger unter der GPL angeboten. Kostenlos bleibt die Software aber dennoch. Nessus 2 ist weiterhin unter der GPL erhältlich und soll auch weiter gepflegtwerden. Die meisten Plug-ins sollen laut Entwicklern in beiden Versionen laufen und auch die meisten Prüfroutinen sollen kompatibel zur älteren Version gehalten werden. Der Nessus- Client, der ein grafisches Interface für Nessus bereitstellt, wurde ausgegliedert und ist weiterhin unter der GPL verfügbar. Tenable Network Security, das Unternehmen hinter Nessus 3, verfolgt einen Ansatz zur Unterstützung von Unternehmen und Behörden, die rund um Nessus Schulung, Beratung und Support erhalten können. Wenn auch die Open-Source- Community den Schritt zu Closed Source verständlicherweise kritisiert, ist die Vorgehensweise durchaus nachvollziehbar. So wird in vielen Unternehmen Software unter der GPL mit Argwohn beobachtet. Daher ist es plausibel, dass ein Paket aus Closed-Source-Software mit Beratung bei Unternehmen mehr Anklang findet. Freie Nessus-Varianten Auf Basis des freien Quellcodes von Nessus 2 sind neue Open-Source-Projekte entstanden: Sussen (http://dev.mmg security.com/projects/sussen/) und Porz- Wahn (http://porz-wahn.berlios.de) entwickeln auf Basis von Nessus 2.25 freie GPL-Lösungen. OpenVAS (www.openvas.org) scheint derzeit von allen Projekten am weitesten zu sein und wird in Kürze stabile Versionen veröffentlichen.