Nessus: another brick in the (security) wall, nur ein weiterer Stein in der (Sicherheits-)Mauer

ArticleCategory: [Choose a category for your article]

System Administration

AuthorImage:[Here we need a little image form you]

[Photo of the Author]

TranslationInfo:[Author and translation history]

Original in en Georges Tarbouriech 

en to de Hubert Kai�er


AboutTheAuthor:[A small biography about the author]

Georges benutzt Unix schon seit langem. Seiner Meinung nach ist Computersicherheit eine der gro�en Herausforderungen dieses Jahrhunderts.

Abstract:[Here you write a little summary]

Nessus ist ein freier Security Scanner, den man von http://www.nessus.org/ herunterladen kann. Renaud Deraison hat das Projekt initiiert und er pflegt es. Zur Zeit der Erstellung dieses Artikels ist die stabile Version 1.09 und die experimentelle 1.14. Die Software ist unter der GPL lizenziert und viele Leute tragen zu dem Projekt, speziell zu den Plugins, bei... w�hrend einige andere Leute von Nessus profitieren ohne den Namen �berhaupt zu erw�hnen (mehr davon am Ende dieses Artikels). Nessus arbeitet auf vielen Unixvarianten als Client und als Server und auf Win32 als Client. Lassen Sie uns dieses gro�artige Werkzeug betrachten.

ArticleIllustration:[This is the title picture for your article]

[illustration]

ArticleBody:[The article body]

Nessus runterladen und installieren

Unter http://www.nessus.org/ ist diese gro�artige Software erh�ltlich. Da Nessus als Client f�r win32 erh�ltlich ist, ist die Betrachtung der Posixversion in diesem Artikel naheliegend.
Um Nessus zu benutzen, braucht man mindestens nmap und Gtk (Gimp Toolkit). Von der Nessus Webseite f�hren Links dort hin. Aber da man Nessus auf der Kommandozeile benutzen kann, ist Gtk nicht unbedingt notwendig.
Man kann Nessus auf drei verschiedene Arten bekommen: die gute, die schlechte und die h��liche.
Die gute ist der normale Weg, das hei�t, man l�dt die Archive von der n�chstgelegenen FTP-Site. Es gibt vier Archive: die Nessus-Bibliotheken, die NASL-Bibliotheken, den Nessus-Kern und die Nessus-Plugins. Einmal ausgepackt, erstellt und installiert man sie wie gewohnt: ./configure, make, make install, in der Reihenfolge der obigen Archive. Wenn eine fr�here Version auf dem Rechner installiert ist, mu� diese zuerst entfernt werden. Um dies zu erreichen, h�lt nessus ein Deinstallationsscript bereit, welches nach dem ersten "./configure" ausgef�hrt werden mu�, es ist das Script welches im Nessus-Bibliotheken Verzeichnis steht. Das Script ist vor dem ersten "make" auszuf�hren. Das gleiche ist bei allen vorhandenen Paketen zu tun (au�er das Ausf�hren des uninstall-Scripts) und man ist fertig.
Der schlechte Weg besteht darin, ein runterladbares Script namens nessus-installer.sh auszuf�hren. Dann wird "sh nessus-installer.sh" das Paket automatisch installieren. Die vier Pakete m�ssen nicht getrennt installiert weden. Es ist jetzt nur ein eigenes Paket.
Der h��liche Weg: sobald man lynx auf dem Rechner installiert hat und man mit dem Internet verbunden ist, mu� man nur "lynx -source http://install.nessus.org | sh" tippen und das wars. Man darf NICHT root sein, um dies zu tun.
Offenbar ist der empfohlene Weg der "gute" Weg,... wenn man nessus herunterl�dt ist Sicherheit von Wichtigkeit! Wenn wir schon von Wichtigem reden: man sollte nicht vergessen die MD5 Checksums runterzuladen.
Nessus beinhaltet verschiedene Utilities (nasl, eine Scriptsprache, nessus-adduser, nessus-build...). Alle Utilities haben ihre eigene Manpage f�r den Client und f�r den Server. Mehr Dokumentation gibt es in der Distribution (README, INSTALL,...) oder auf der Nessus-Webseite.

Nessus konfigurieren und ausf�hren

Um das Vorgehen zu illustrieren, hier einige Beispiele mit der Nessus X11-Version, jene mit Gtk.

Der nessusd-Server

Um Nessus zu starten, mu� man offensichtlich den Serverdaemon nessusd starten. Wenn man den Daemon zum ersten Mal startet, mu� man den Benutzernamen und das Pa�wort angeben, indem man den nessus-adduser-Befehl benutzt. Wenn das Nessus-Bibliothekenpaket mit der Option "--enable-cipher" kompiliert wurde (empfohlen, um nicht zu sagen zwingend!), wird ein Private Key generiert. Dieser Key kann mit einem Passwort gesch�tzt werden. Viele Optionen sind verf�gbar, wenn man den Server startet und man findet alle in der Manpage von Nessus.
Davon ausgehend, kann man die Benutzerdatenbank und die entsprechenden Regeln erzeugen. Das hei�t, wer den Serverdaemon ausf�hren darf, was er scannen darf (einen Rechner, ein Netzwerk...). Die Regeln folgen der Form "accept" oder "deny", gefolgt von einer Netzwerk-IP-Adresse mit ihrer Netmask.
Zum Beispiel erlaubt accept 192.168.1.0/24 dem Benutzer, das ganze 192.168.1er-Netzwerk auszutesten.
Es ist ebenso m�glich, einen einzigen Benutzer zu definieren, der �berhaupt keine Regeln hat. Wenn man mehreren Benutzern erlauben will nessusd auszuf�hren, mu� man sehr vorsichtig sein, was man ihnen erlauben will. Man kann schlie�lich nicht jeden alles im Netzwerk machen lassen.
Nicht zuletzt ist nessusd auf eine Konfigurationsdatei angewiesen, die man (gew�hnlich) in /usr/local/etc/nessus/nessusd.conf findet. Diese Datei kann man von Hand �ndern, sobald man wei�, was man tut.

Der nessus-Client

Man kann den nessus-Client starten, um sich mit einem nessusd-Server zu verbinden. Um den Client auszuf�hren, reicht es, "nessus &" in einer Shell einzugeben. Das �ffnet das Nessus-Setup-Fenster, nachdem es das oben erw�hnte Passwort abfragt. Dieses Fenster stellt sieben Tabs zur Verf�gung.
Das erste Tab hei�t "nessusd host". Von da kann man zum nessusd-Rechner verbinden, indem man auf den "Log in"-Knopf klickt. Nat�rlich unter der Voraussetzung, da� man sich als dieser Benutzer einloggen darf, in anderen Worten, da� der Benutzername in der Benutzerdatenbank vorhanden ist.

nessusd host


Das zweite Tab betrifft die Plugins. Dort aktiviert oder deaktiviert man die benutzten Plugins, die w�hrend der Scan benutzt werden. Zum Beispiel kann man die gef�hrlichen Plugins deaktivieren (jene, die einen Rechner zum Absturz bringen k�nnen!). Wenn man auf ein Plugin klickt, zeigt der untere Teil des Fensters einige Informationen �ber dieses Plugin.

plugins plugin detail


Das dritte Tab erm�glicht die Einstellungen f�r das Plugin vorzunehmen. Das betrifft ping, TCP, FTP... Hier kann man sehr gut abstimmen wie man Nessus benutzen will, um den Zielrechner, die Zielrechner oder das Zielnetzwerk zu scannen.

preferences


Das vierte Tab erlaubt die Definition der Scanoptionen und den benutzten Portscanner. �blicherweise ist dies nmap. >Hier mehr �ber nmap<.

scan options


Das f�nfte Tab ist zum Einstellen des Ziels des Scans. Im Zielfeld kann man den Namen eines Rechners, die Namen verschiedener Rechner, getrennt durch Kommas, eine oder mehrere IPs, wiederum getrennt durch Kommas oder eine Netzwerkadresse mit ihrer Netzmaske angeben (zum Beispiel 192.168.1.0/24). Es gibt auch ein K�stchen, um einen DNS-Zonentransfer durchzuf�hren. Das hei�t, wenn man zu einem DNS-Server verbindet, wird nessus versuchen eine Liste der Rechner in dieser Domain zu bekommen.

target selection


Das sechste Tab erlaubt es dem Benutzer sein Passwort zu �ndern, seinen Private Key zu l�schen oder Regeln hinzuzuf�gen.

user


Nicht zuletzt �ffnet das siebente Tab das Creditsfenster, welches auch die Versionsnummer enth�lt. Das sind alle Informationen, die man haben mu�, wenn man Nessus f�r ein anderes Projekt nutzen will... Nun, es sollte so sein!

credits


Es gibt ein achtes Tab, wenn man Nessus mit der Konfigurationsoption "--enable-save-kb" kompiliert. kb steht f�r "Knowledge Base". Dies ist eine experimentelle Eigenschaft, die es erlaubt die Ergebnisse eines fr�heren Tests zu nutzen. Diese Eigenschaft wird in Nessus 1.1.0 voreingestellt sein. Mehr �ber kb auf www.nessus.org/doc/kb_saving.html.
Nachdem man jedes Tab "besucht" hat, kann man das "Biest" von der Leine lassen. Es gen�gt den "Start the scan"-Knopf zu klicken. Was passiert dann?

Nessus bei der Arbeit

Wenn man den Scan startet, �ffnet nessus ein Fenster, um den Scanstatus anzuzeigen. Zum Beispiel, man testet ein ganzes Netzwerk 192.168.1.0/24. Acht Rechner werden gleichzeitig angezeigt, die zeigen welches Plugin f�r welchen Rechner benutzt wird, neben einer Fortschrittsanzeige. Hier sieht man wie es aussieht:

scan status


Wie man sieht, kann der ganze Test jederzeit gestoppt werden.
Offensichtlich wird der Test eine recht lange Zeit dauern, wenn man ein ganzes Netzwerk mit vielen Rechnern scant. Es wird von den Betriebssystemen, der Netzwerkgeschwindigkeit, den Rechneraufgaben (mehr oder weniger offene Ports), der Anzahl der aktiven Plugins usw., abh�ngen.
Man kann auch auf zwei andere Arten testen: abgel�ste Scans oder differentielle Scans. Dies setzt voraus, da� man Nessus mit der oben erw�hnten Konfigurationsoption "--enable-save-kb" kompiliert. Die abgel�sten Scans erlauben Tests im Hintergrund zu laufen, w�hrend die differentiellen Scans, wie der Name sagt, nur die Unterschiede zwischen zwei Scans zeigen.
Man findet viel mehr Informationen �ber diese Eigenschaften auf Nessus Dokumentation (www.nessus.org/doc).
Das wichtigste sind die Ergebnisse, die man am Ende des Scans erh�lt. Eins der gro�artigsten Eigenschaften von Nessus ist, wie es Berichte bereitstellt.

report


Diese Berichte sind ziemlich detailliert und schlagen oft eine L�sung f�r die entdeckten Schwachstellen vor. Sie sind sogar wirklich zuverl�ssig. Wenn eine gefundene Schwachstelle keine echte ist, sagt nessus, da� es ein falscher Treffer sein kann. Dies kann zum Beispiel mit gepatchten Versionen einiger Daemons passieren: Eine k�rzlich korrigierte Schwachstelle kann als potentielles Risiko erkannt werden. Aber f�r solche F�lle werden Plugins schnell aktualisiert.
Ein weiterer kleiner Fehler mag aus nmap (2.53) resultieren, wenn es die Betriebssystemversion identifiziert. Aber dies ist wirklich kaum interessant. Mir pers�nlich macht es nichts, wenn Unbekannt 4.0 mit SP6a als Unbekannt 4.0 mit SP5 erkannt wird oder wenn der Linuxkernel 2.2.19 als 2.2.14 ermittelt wird. Ich werde mich auch nicht dar�ber beschweren, wenn "exotische" Betriebssysteme wie AmigaOS oder BeOS als Drucker oder Router identifiziert werden. Ich kann mir nicht vorstellen, Fyodor (nmaps Autor) eine Email zu schicken, um ihm zu sagen: Wer benutzt heute noch solche Betriebssysteme in einem Netzwerk? Was AmigaOS angeht w�rde ich sagen 5 Leute... auf der ganzen Welt :-(
Einige andere Betriebssysteme werden auch nicht perfekt erkannt, aber sie sind oft ziemlich "neu" oder nicht wirklich verbreitet. Dies trifft auf MaxOS X oder QNX zu. Aber ist es auch nicht so wichtig und dies kann schon in der neuen 2.54 Betaversion von nmap gel�st sein (und, so nebenbei, diese neue Version stellt eine MacOS X-Portierung zur Verf�gung).
Jedenfalls, der Hauptpunkt ist, da� Nessus Unmengen an Informationen bereitstellt, um die Rechnerangriffspunkte oder die Schw�chen des lokalen Netzwerks zu korrigieren.
Diese Berichte k�nnen als Text, NSR, HTML, HTML mit Tortengraphik gespeichert werden... und erlauben so den Vergleich von zwei Scans. Es mag augenf�llig scheinen, aber der Zustand eines Netzwerks zu einer gegebenen Zeit kann recht verschieden zu dem 30 Minuten sp�ter sein. Warum? Ein Netzwerk lebt! Dies ist eins der Hauptgr�nde, warum es nicht so einfach ist, ein Netzwerk zu sichern: Dinge �ndern sich die ganze Zeit. Wenn Sie sich �ber die Notwendigkeit der Benutzung von Werkzeugen wie nessus und nmap wundern, ist das die Antwort.
Wenn man neugierig ist, wie Nessus arbeitet, mu� man die Systemlogs durchschauen oder, wenn man snort benutzt, die snort-Logs. Ein weiterer Ort um Informationen zu finden ist /usr/local/var/nessus.
Von nun an wird man wahrscheinlich einiges zu tun haben, um die Schw�chen von vielen Maschinen im Netzwerk zu verringern. Umso mehr man jeden Rechner absichert, umso besser. Um bei dieser gro�en Aufgabe zu helfen, sind nessus (und genauso nmap) die Werkzeuge, ohne die man nicht leben kann.

Plugins

Plugins sind das "Herz" von nessus. Sie sind die Sicherheitstests, sie sind die Testprogramme, um einen gegebenen Angriffspunkt zu entdecken. NASL (Nessus Attack Scripting Language) ist die empfohlene Sprache, um Sicherheitstests zu schreiben. Man findet einiges �ber NASL unter der URL: http://www.nessus.org/doc/nasl.html.
Ebenso ist dies der Ort, an dem man die richtigen Informationen findet, wenn man zum nessus-Projekt beitragen will. Zum Zeitpunkt der Erstellung des Artikels gibt es 756 Plugins in der nessus-Datenbank!
Es gibt fast 20 Pluginkategorien: Backdoors, Denial of Service, Erlangen von root von einem anderen Rechner... Wie bereits erw�hnt, informiert jedes Plugin �ber Berichte. Es sagt aus, was falsch ist und was man tun sollte, um das Problem zu berichtigen.
Man kann nicht �ber die Plugins schreiben, ohne CVE (Common Vulnerabilities and Exposures) zu erw�hnen. Es gibt eine riesige Informationsdatenbank auf http://cve.mitre.org. Dort findet man alles �ber bekannte Sicherheitsl�cken. Dies ist ein anderer gro�artiger Ort, um Wissen zu teilen. Solch eine Webseite ist die unbedingte Referenz, die man sich anschauen mu�.
Nat�rlich gibt es viel mehr �ber die nessus-Plugins zu sagen, aber ein Buch w�re nicht genug. Ein guter Ansatz, um zu verstehen, wie sie funktionieren, wie sie geschrieben werden, ist, sie im Verzeichnis /usr/local/lib/nessus/plugins zu lesen. Nochmals ein Danke an Renaud Deraison und die Mitwirkenden f�r diese gro�artige Arbeit.

Und nun zu etwas v�llig anderem!

Auch wenn dieser Titel ein bi�chen wie Monty Python klingt, ist da leider kein Humor enthalten. Die drei oder vier Leute, die meine Artikel lesen, kennen meine gewohnten Off-Topic S�tze: dieses Mal ist es ein ganzer Abschnitt! Es ist wirklich Off-Topic, es ist eine andere Geschichte. Packen wir es an.
Da ich recht interessiert an Computersicherheit bin, besuche ich oft die dem Thema gewidmeten Webseiten. Sei es, um �ber neue Schwachstellen zu lernen oder um neue Sicherheitswerkzeuge zu entdecken. Zuf�llig fand ich ein paar Produkte, die auf Online-Scandiensten basieren. Tats�chlich nennen sie sich selbst (zumindest zur Zeit) ASP (Application Service Provider). Wenn man ein bi�chen weiter klickt, entdeckt man schnell, da� das Werkzeug hinter dem Dienst Nessus ist. So weit, so gut. Aber, wenn man versucht, ausf�hrliche Informationen zu finden, findet man nirgends das Wort "nessus". Das verletzt mich dann zutiefst!
Viele Leute, die f�r die Free Software Community arbeiten, tun dies ohne Bezahlung und nicht f�r ihren Lebensunterhalt. Die einzige Bezahlung, die sie bekommen, nennt man: Wertsch�tzung. Nessus wird unter der GPL ver�ffentlicht. Das hei�t, jeder kann das Produkt benutzen, es �ndern, es anpassen... solange der urspr�ngliche Autor erw�hnt wird bzw. die urspr�nglichen Autoren erw�hnt werden. Nat�rlich sagt die Lizenz noch mehr aus. Wenn Sie die GPL nicht kennen, k�nnen sie sie hier nachschauen.
F�r mich sieht es wie Diebstahl aus. Ich meine, da� ich nicht einmal eine Lizenz brauche, um die Arbeit anderer Leute wertzusch�tzen. Ich habe sehr viel Respekt f�r diese Leute, die (fast immer) umsonst arbeiten und es mit einer Gemeinschaft teilen. Sie verdienen Anerkennung von dieser Gemeinschaft. Dies stimmt besonders, wenn jemand versucht, Geld mit der Arbeit von jemand anderem zu verdienen. Man kann das Respekt, Anerkennung nennen, es ist nicht wirklich wichtig. Fakt ist, diese Worte scheinen ihre Bedeutung verloren zu haben. Sicher k�nnte man sagen, da� die GPL die Ursache eines solchen Verhaltens ist. Bei ASP wird es nicht als Verkaufen der Software erachtet. Je nach Land mag die GPL keine rechtliche Wirkung haben.
Eine L�sung k�nnte sein, da� die Benutzer eines solchen ASP den Namen des Scanprogramms anfordern, das die Arbeit macht. Die gegebene Antwort wird wenigstens zeigen, ob die Leute, die den Dienst anbieten "ehrlich" sind. Wenn sie nicht antworten oder wenn sie sagen, da� sie das Programm "erfunden" h�tten (welches als Nessus erkannt wurde) benutzen Sie es einfach nicht! Installieren Sie stattdessen (das echte) Nessus. Es wird sowieso sicherer sein.
Aber nochmals: brauchen wir eine Lizenz, um "Danke" zu sagen zu Leuten, die eine wirklich gro�e und gro�artige Arbeit geleistet haben? Und, nebenbei, Renaud Deraison hat nicht vor, die nessus-Lizenz zu �ndern: nessus will weiter unter der GPL bleiben.
Entschuldigung f�r diese lange Abschweifung, aber ich glaube, dies mu�te gesagt werden.

Nun ist es vorbei!

Trotz des letzten Abschnitts sollte man sich von diesem Artikel vor allem an die hohe Qualit�t von Nessus erinnern. Es ist eine recht eindrucksvolle Software. Wenn man es in Verbindung mit nmap benutzt, wird es ein Muss, wenn Sicherheit ein Anliegen ist. Es ist ein sehr verl��liches Werkzeug, da� jeden Tag verbessert wird. Danke an Renaud und seine Freunde f�r ihre dauernden Aktualisierungen der Plugins.
Heutzutage kann ein Systemadministrator nicht ohne nessus und nmap arbeiten. Diese Werkzeuge sind in der Lage, Schwachstellen zu finden, die man schon behoben glaubte. Dies stimmt f�r die meisten Betriebssysteme in Ihrem Netzwerk. Und wenn sie wissen, da� einige Betriebssysteme l�chrig wie Siebe sind, dann erlaubt nessus Ihnen, sich ein bischen zu entspannen.
Nessus kann auch verstehen helfen wie ein Netzwerk (oder ein Rechner) kompromittiert werden kann.
Wenn Sie die zur Verf�gung gestellten Berichte aufmerksam durchlesen und sie mit einbeziehen und die richtigen Korrekturen machen, werden Sie die Sicherheit Ihres Netzwerks (oder Rechners) um einiges verbessern. Und wieder sagte ich "verbessern": Ihr Netzwerk wird nicht 100% sicher sein, nur weil sie nessus laufen lassen. Der Weg zur Sicherheit ist sehr lang und wir sind sehr weit vom Ende entfernt.
Nochmals ein Danke an die Free Software Community f�r die gro�artige Arbeit, die sie f�r die Sicherheit leistet.
Was die netten Leute betrifft, die versuchen, Geld mit der Arbeit dieser Mitglieder der Free Software Community zu machen, m�chte ich etwas hinzuf�gen. "Danke" zu sagen ist keine Schande. Ehrlich zu sein ist nicht so schrecklich, oder? Wenn sich dieses Verhalten ausweitet, besteht das Risiko darin, da� es das Ende der Community oder einen gro�en Wechsel der Lizenzierung (und wahrscheinlich immer mehr Patente!) bedeutet. In beiden F�llen werden Sie auf sich alleine gestellt sein und die Situation wird f�r sie h�rter werden. Und leider werden wir nicht mehr freie Software nutzen k�nnen. Das bedeutet nicht, da� sie in der Lage sein werden Ihre zu verkaufen. Denken Sie dar�ber nach!
Leben wir nicht in einer gro�artigen Zeit?