Der Erbe wächst

OpenVAS will eine freie Alternative zum bekannten Schwachstellen-Scanner Nessus sein, der inzwischen unter einer proprietären Lizenz steht. Version 3.0 räumt unter der Haube auf und bietet Zugang zu nützlichen Plug-ins.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 9 Min.
Von
  • Michael Hamm

Im Jahr 2005 verlor die Open-Source-Gemeinde eines ihrer erfolgreichen Projekte, den Scanner Nessus zum Auffinden von Schwachstellen im Netz. Das Projekt-Team um Renaud Deraison entschloss sich, die bis dahin freie Software unter eine proprietäre Lizenz zu stellen. Nessus ist zwar nach wie vor für nicht kommerzielle Zwecke kostenlos, doch die Anhänger freier Software haben nur noch eingeschränkte Möglichkeiten der Mitgestaltung.

Deshalb nahmen einige Entwickler die letzte offene Version von Nessus 2.2 als Ausgangspunkt für die Weiterentwicklung eines offenen Scanners, aus dem sich das „Open Vulnerability Assessment System“ (OpenVAS) entwickelte. Es steht unter der GNU General Public License (GPL).

Beim Arbeiten mit dem Ende Dezember 2009 in Version 3.0 erschienenen OpenVAS ist deutlich zu spüren, dass es sich um einen direkten Nachfolger von Nessus 2.2 handelt. Nicht nur das Aussehen und die Bedienung, auch ein Blick unter die Haube verrät die Abstammung. So bestand der etwa ein Jahr alte OpenVAS-Server 2.0.x aus vier Modulen, die es so auch bei Nessus gab: Libraries, LibNASL (Nessus Attack Scripting Language), Plug-ins und der Server selbst.

Im neuen OpenVAS 3.0 hat sich diese Architektur verändert. Die LibNASL-Bibliotheken und Teile des Client-Codes flossen in die Libraries ein. Außerdem heißt der Server jetzt Scanner und enthält plattformabhängige Elemente der Plug-ins. Dieses Zusammenführen der Module verkleinerte den Code, was zu einer geringeren Fehleranfälligkeit führt. Spürbare Vorteile beim Installieren oder während der Anwendung brachten diese Anpassungen aber nicht.

Optional gibt es drei neue Module, die sich noch in einem frühen Entwicklungsstadium befinden:

  • Manager 1.0.0-beta2 zum zentralen Speichern und Verwalten von Scans in einer SQL-Datenbank;
  • Administrator 0.6.0 verwaltet User, Plug-in-Feeds und Benutzereinstellungen;
  • gsa 1.0.0-beta3 ist der Greenbone Security Assistent für das Schwachstellenmanagement per Web.

Die Entwicklung an diesen Erweiterungen legt nahe, dass aus dem einfachen Werkzeug eine Anwendung für größere Unternehmen und für den professionellen Einsatz werden soll.

Seit der Version 2.0 spricht OpenVAS neben NASL die von mitre.org entwickelte Sprache OVAL (Open Vulnerability and Assessment Language) [a], sodass es darin geschriebene Sicherheitstests ausführt. Anwender können damit eigene Prüfungen entwickeln. Auf jeden Fall sollten sie sich relevante Plug-ins anschauen, um ihre Arbeitsweise zu verstehen. Denn nur wer weiß, wie der NVT (Network Vulnerability Test) funktioniert, kann anschließend das Scan-Ergebnis richtig bewerten.

Der Erfolg eines Scan hängt in großem Maße von der Qualität der NVTs und damit von der des Feed-Service ab. Das OpenVAS-Projekt stellt einen eigenen Dienst mit rund 16 000 Plug-ins zur Verfügung [b], der per Default im Skript openvas-nvt-sync voreingestellt ist. Die dort angebotenen NVTs reichen für einen groben Überblick über den Sicherheitsstatus des eigenen Netzes aus. OpenVAS lädt bei einer NVT-Aktualisierung nur neue sowie veränderte Skripte herunter und benutzt dafür rsync.

Diesen NVT-Feed kann man durch einen anderen ergänzen oder ersetzen. Dabei bleibt die Entscheidung, ob ein Feed-Service zur gegebenen Umgebung passt, den Anwendern überlassen. Die Bewertung hängt unter anderem davon ab, ob er zuverlässig, schnell und in ausreichender Qualität NVTs liefert.

NVTs sollten digital signiert sein. Zum Validieren einer Signatur nutzt OpenVAS gpg. Der OpenVAS Server lässt sich so konfigurieren, dass er nur korrekt signierte Skripte ausführen; dies ist jedoch nicht die Voreinstellung. Man aktiviert die Signaturprüfung durch Setzen der Option nasl_no_signature_check in der OpenVAS-Server-Konfigurationsdatei auf no – die doppelte Verneinung erschwert allerdings das Verständnis. Anwender sollten sich darüber klar sein, dass eine gültige Signatur weder etwas über die Qualität des einzelnen Tests aussagt noch über die Absichten des Feed-Anbieters.

Die OpenVAS-Serverkomponenten lassen sich auf allen gängigen Linux- und BSD-Systemen kompilieren. Auf der Website des Projekts findet sich der Link zu den aktuellen Quelltexten. Fertige Pakete gibt es zurzeit jedoch fast nur für die 2.0-Komponenten. Deshalb ist die Integration der neuen Version in das System rudimentär. Das dürfte erfahrene Anwender zwar nicht abschrecken, Neulingen jedoch den Einstieg erschweren.

Von den Serverkomponenten sind openvas-libraries 3.0.2 und anschließend openvas-scanner 3.0.1 mit configure; make; make install zu installieren. Da die Kommunikation zwischen Client und Server mittels SSL geschützt ist, benötigt man ein gültiges Zertifikat, das openvas-mkcert erstellt. Wer keine eigene Certificate Authority (CA) betreibt, kann mit dem Skript openvas-mkcert eine interne CA und ein signiertes Serverzertifikat erstellen.

Nun sind mit openvas-adduser die User anzulegen und die Authentifzierungsmethode (Passwort oder Zertifikat) festzulegen. Außerdem werden hier die Rechte des Benutzers in alter Nessus-Manier bestimmt. So legen die folgenden Zeilen fest, dass er nur die Hosts der angegebenen drei Subnetze scannen darf:

accept 192.168.1.0/24
accept 192.168.2.0/24
accept 192.168.3.0/24
default deny

Im nächsten Schritt aktualisiert man die Plug-ins mit dem Skript openvas-nvt-sync. Läuft der OpenVAS-Scanner schon, muss man ihn nach dem Aktualisieren neu starten. Das OpenVAS-Kompendium [c] enthält ein Skript zum automatischen Aktualisieren der Plug-ins. Ist die grundlegende Konfiguration abgeschlossen, startet der Befehl openvassd den Serverdienst. Er wartet per Default am Port 9390 auf eingehende Verbindungen von OpenVAS-Clients. Für manche Sicherheitstest reichen zwar die Rechte eines weniger privilegierten Users, da jedoch einige Tests Root-Rechte erfordern, sollte man openvassd als Superuser starten.

Der Startvorgang wirkte auf einem älteren Testsystem recht träge. Das Einlesen der 16 000 Plug-ins beim Starten des OpenVAS-Daemons dauerte bis zu zwei Minuten. Diese Trägheit zeigte sich auch beim weiteren Arbeiten mit dem OpenVAS-Client. Er kommuniziert mit dem Server via OTP (OpenVAS Transfer Protocol), das seine Ursprünge im Nessus Transport Protocol (NTP) hat. OTP ist für Menschen einfach zu lesen. Dadurch kann der Anwender bei eventuell auftretenden Schwierigkeiten schnell herausfinden, was der Client ins Netz gesendet hat und was zurückgekommen ist.

Wie die Serverkomponenten ist der Client eine Weiterentwicklung aus dem Nessus-Projekt. Man startet ihn mit dem Befehl OpenVAS-Client auf der Kommandozeile. Anschließend meldet sich der Benutzer beim OpenVAS-Server an. Seit Nessus 2.2 hat sich der Client nicht spürbar weiterentwickelt und wirkt unaufgeräumt. Dies ist nicht verwunderlich, da er versucht, viele Funktionen auf engstem Raum zu bieten.

Aufgaben und Teilaufgaben zeigt OpenVAS in seinem zweigeteilten Hauptfenster an. Rechts erscheinen jeweils Kommentare, Optionen und Reports zu einer Aufgabe.

Die Abbildung zeigt das Hauptfenster nach erfolgreichem Anmelden. Auf der linken Seite visualisiert eine Baumstruktur die Hierarchie von Aufgaben, Teilaufgaben sowie deren Scan-Ergebnissen. Eine Aufgabe könnte lauten: „Scannen des lokalen Netzes“, eine Teilaufgabe davon „Scannen des Test-Servers“. Für jeden durchgeführten Scan erzeugt OpenVAS einen Report. Das rechte Teilfenster zeigt für das links ausgewählte Objekt Kommentare, Optionen oder Reports an.

Jeder Report erscheint wiederum als Baum, der die Ergebnisse nach Gefährdungsgrad, IP-Adressen und Portnummern sortiert. Reports lassen sich in den Formaten NBE, XML, HTML, LaTeX, ASCII sowie PDF exportieren und zum Vergleich mit anderen Berichten importieren.

OpenVAS bringt einige integrierte Sicherheitswerkzeuge mit. Dazu gehören unter anderem NMap (Port-Scanner), Nikto (Test von Webservern), Ike-Scan (Test von IPSec-Servern) und AMap (findet offene Services). Ein weiteres Programm, das mit OpenVAS zusammenarbeitet, ist AutoNessus [d] zum Automatisieren von Scans. Das Werkzeug erzeugt Delta-Ergebnisse, die nur die Unterschiede zwischen zwei Scans enthalten. Dadurch lassen sich Veränderungen schnell erkennen.

Um ein besonderes Plug-in handelt es sich bei SLAD (Security Local Auditing Daemon). Es wurde im Zusammenhang mit der vom BSI entwickelten BOSS-CD (BSI OSS Security Suite) erstellt und erweitert die Funktionen von OpenVAS erheblich. So stellt es unter anderem dem Passwortknacker John-the-Ripper, den freien Virenscanner ClamAV, Tripwire zum Prüfen der Integrität des Dateisystems und TrapWatch zum Protokollieren von SNMP-Meldungen bereit. Diese Sammlung von Werkzeugen läuft auf den zu schützenden Systemen. SLAD bildet die Schnittstelle zwischen ihnen und OpenVAS.

OpenVAS unterscheidet sich äußerlich kaum von der alten Open-Source-Version seines Ahnen Nessus. Einer aktuellen Nessus-Variante kann es deshalb hinsichtlich des GUI nicht das Wasser reichen. Anders sieht es bei den Scan-Ergebnissen aus. Ihre Qualität hängt vor allem von der der Plug-ins ab und davon, wie deren Ergebnisse miteinander verknüpft werden. Bei diesen Punkten kann sich die Leistung von OpenVAS sehen lassen.

Die großen Veränderungen von Version 2.0 auf 3.0 fanden unter der Haube statt. Dazu gehören die aktualisierte Architektur und die Unterstützung von IPv6. Kaum verwunderlich, dass sich die Scan-Reports der beiden Versionen wenig unterscheiden. Werkzeuge zum zentralen Verwalten von Benutzern, Einstellungen und Scan-Reports sind hinzugekommen, befinden sich aber noch im frühen Entwicklungsstadium.

ist Ingénieur de Sécurité am Centre de Recherche Public Henri Tudor in Luxemburg.

www.ix.de/ix1004081

Mehr Infos

iX-Wertung

[+] eigener Plug-in-Feed

[+] Sicherheitswerkzeuge integriert

[-] unaufgeräumter Client

Mehr Infos

OpenVAS vs. Nessus

Die Studie „Nessus/OpenVAS Comparison Test“ [e] vom „Laboratory for Systems and Signals“ der „Faculty of Electrical Engineering and Computing“ der „University of Zagreb“ vergleicht die Leistungsfähigkeit des Scanners Nessus und OpenVAS 2.0. Ihre Ergebnisse gelten im Wesentlichen auch für die hier besprochene Nachfolgerversion.

Sie untersuchte 15 Produktionsserver, wobei es sich um Windows- und Linux-Systeme für E-Mail, DNS et cetera handelte, sowie diverse Infrastruktur-Systeme wie Switches, Access Points und Print-Server.

Ein erster Test übernahm die jeweiligen Defaulteinstellungen und aktivierte alle Plug-ins. Der zweite aktivierte die Option „Safe checks“, sodass OpenVAS vom Entwickler als besonders gefährlich markierte Plug-ins nicht ausführt. Dies soll Abstürze des Host verhindern. Der Studie zufolge kommt Nessus vor allem unter Berücksichtigung älterer Sicherheitslücken zu besseren Scan-Resultaten, während OpenVAS beim Aufspüren aktueller Defekte vorne liegt.

(ck)