Am 10.Mai 2012 ist der Schwachstellen-Scanner OpenVAS in der Version 5 erschienen. Gemäß der offiziellen Webseite wurde die Software verbessert und neue Funktionen hinzugefügt.
Darüber hinaus sind kostenfrei über 25000 Prüfmodule verfügbar und 20 neue Funktionen eingearbeitet worden, die die tägliche Arbeit mit OpenVAS vereinfachen sollen. Der u.a. vom Bundesamt für Sicherheit in der Informationstechnik (BSI) eingesetzte Schwachstellen-Scanner wird vom Unternehmen Greenbone Networks als Basis für ihre Appliance Produkte als Open Source entwickelt .
Dies ist Anlass genug, um OpenVAS 5 in meiner Testumgebung als virtuelle Maschine aufzusetzen und einem Hosts einem Vulnerability-Scan zu unterziehen.
Die Installation der virtuellen Maschine
OpenVAS ist für alle wichtigen Linux-Distributionen verfügbar. Dabei wird vorrangig CentOS in den Versionen 5 und 6 unterstützt. Ich wollte ein schlankes System aufsetzen und hatte mich aus diesem Grund entschieden, Centos 6.2 (Mini) 64 bit als Betriebssystem zu installiere. Dazu habe ich die Datei CentOS-6.2-x86_64-minimal.iso als ISO-Image von einem der zahlreich verfügbaren Spiegel-Server heruntergeladen.
http://mirror.netcologne.de/centos/6.2/isos/x86_64/
Als Virtualisierung sumgebung nutze ich VirtualBox . Dabei sollte VMWare oder eine ähnliche Software ohne Probleme funktionieren. In diesem Zusammenhang sollte beachtet werden, dass der Einsatz von OpenVAS in einer virtuellen Maschine (VM) nur für Demonstrationszwecke gedacht ist und so keineswegs produktiv einsetzbar ist. Aus meinen früheren Tests habe ich gelernt, dass der Scanner sehr ressourcenintensiv ist und eine gewissen Zeit braucht, bis er tatsächlich seine Arbeit verrichtet. Deshalb habe ich der VM, die in meiner Testumgebung maximal möglichen Ressourcen (4 CPU, 4 GB RAM) zugeteilt.
OpenVAS installieren
Nach einem Neustart des frisch installierten CentOS-Systems steht in der minimalen Ausführung keine grafische Oberfläche zur Verfügung. Dies sollte man von dem gut 300 MB großen ISO-Image aber auch nicht erwarten. Die Installation von OpenVAS kann man aber ohne große Probleme von der Konsole ausführen. Als erster Schritt muss das Atomicorp Repository konfiguriert werden. Das erledigt man mit folgenden Anweisung und Root-Rechten:
yum install wget
cd /home
wget http://www.atomicorp.com/installers/atomic
chmod 755 atomic
./atomic
In einem zweiten Schritt wird OpenVAS installiert. Neben dieser Softwaren werden weitere Pakete für den Betrieb benötigt. In meinem Fall wurden insgesamt 109 Pakete (u.a. Python, Nmap und W3af) heruntergeladen. Insgesamt ist dies aber mit zwei Befehlen zu realisieren:
yum install openvas
openvas-setup
Im Setup wird u.a ein Nutzer eingerichtet und ein Passwort zugewiesen. Hier braucht man dem neuerstellten User aber keine Rollen zuweisen und kann die Eingabe relativ schnell mit der Tastenkombination Strg-D beenden.
Nachdem dies geschehen ist, kann man das Webinterface von OpenVAS nutzen und sich über folgende URL einloggen.
https://IP-Adresse:9392
Hierzu nutzt man eine andere VM im gleichen Netzwerksegment und seinen favorisierten Browser. In diesem Zusammenhang ist festzustellen, dass in der CentOS-Installation die Firewall über iptables eingeschaltet ist. Diese verhindert richtigerweise den Remote-Zugriff zum Webinterface. Als Lösung kann man die Firewall mit dem Befehl service iptables stop abschalten oder die Konfiguration entsprechend anpassen. Wer sich entscheidet iptables anzupassen, sollte folgende Zeile in die Konfigurationsdatei /etc/sysconfig/iptables aufnehmen:
-A INPUT -m state –state NEW -m tcp -p tcp –dport 9392 -j ACCEPT
Konfiguration testen
Abschließend empfehle ich, den Zustand von OpenVAS nach der Installation zu prüfen. Dazu wird das Skript openvas-check-setup zur Verfügung gestellt. Hierbei sollte immer die aktuelle Version heruntergeladen werden. Die folgenden Anweisungen zeigen dies:
cd /home
wget --no-check-certificate https://svn.wald.intevation.org/svn/openvas/trunk/tools/openvas-check-setup
chmod +x openvas-check-setup
./openvas-check-setup --v5 --server
Wenn alles ordnungsgemäß installiert ist, sollten folgende Meldungen angezeigt werden.
openvas-check-setup 2.2.0
Test completeness and readiness of OpenVAS-5
Please report us any non-detected problems and
help us to improve this check routine:
http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss
Send us the log-file (/tmp/openvas-check-setup.log) to help analyze the problem.
Step 1: Checking OpenVAS Scanner ...
OK: OpenVAS Scanner is present in version 3.3.1.
OK: OpenVAS Scanner CA Certificate is present as /var/lib/openvas/CA/cacert.pem.
OK: NVT collection in /var/lib/openvas/plugins contains 25563 NVTs.
WARNING: Signature checking of NVTs is not enabled in OpenVAS Scanner.
SUGGEST: Enable signature checking (see http://www.openvas.org/trusted-nvts.html).
Step 2: Checking OpenVAS Manager ...
OK: OpenVAS Manager is present in version 3.0.1.
OK: OpenVAS Manager client certificate is present as /var/lib/openvas/CA/clientcert.pem.
OK: OpenVAS Manager database found in /var/lib/openvas/mgr/tasks.db.
OK: Access rights for the OpenVAS Manager database are correct.
OK: sqlite3 found, extended checks of the OpenVAS Manager installation enabled.
OK: OpenVAS Manager database is at revision 56.
OK: OpenVAS Manager expects database at revision 56.
OK: Database schema is up to date.
OK: OpenVAS Manager database contains information about 25563 NVTs.
OK: xsltproc found.
Step 3: Checking OpenVAS Administrator ...
OK: OpenVAS Administrator is present in version 1.2.0.
OK: At least one user exists.
OK: At least one admin user exists.
Step 4: Checking Greenbone Security Assistant (GSA) ...
OK: Greenbone Security Assistant is present in version 3.0.1.
Step 5: Checking OpenVAS CLI ...
SKIP: Skipping check for OpenVAS CLI.
Step 6: Checking Greenbone Security Desktop (GSD) ...
SKIP: Skipping check for Greenbone Security Assistant.
Step 7: Checking if OpenVAS services are up and running ...
OK: netstat found, extended checks of the OpenVAS services enabled.
OK: OpenVAS Scanner is running and listening on all interfaces.
OK: OpenVAS Scanner is listening on port 9391, which is the default port.
OK: OpenVAS Manager is running and listening on all interfaces.
OK: OpenVAS Manager is listening on port 9390, which is the default port.
OK: OpenVAS Administrator is running and listening only on the local interface.
OK: OpenVAS Administrator is listening on port 9393, which is the default port.
OK: Greenbone Security Assistant is running and listening on all interfaces.
OK: Greenbone Security Assistant is listening on port 9392, which is the default port.
Step 8: Checking nmap installation ...
OK: nmap is present in version 5.51.
Step 9: Checking presence of optional tools ...
OK: pdflatex found.
OK: PDF generation successful. The PDF report format is likely to work.
OK: ssh-keygen found, LSC credential generation for GNU/Linux targets is likely to work.
OK: rpm found, LSC credential package generation for RPM based targets is likely to work.
WARNING: Could not find alien binary, LSC credential package generation for DEB based targets will not work.
SUGGEST: Install alien.
OK: nsis found, LSC credential package generation for Microsoft Windows targets is likely to work.
It seems like your OpenVAS-5 installation is OK.
If you think it is not OK, please report your observation
and help us to improve this check routine:
http://lists.wald.intevation.org/mailman/listinfo/openvas-discuss
Please attach the log-file (/tmp/openvas-check-setup.log) to help us analyze the problem.
Der ersten Schwachstellenscan
Als ersten Versuch habe ich eine virtuelle Maschinen in meinem Testlab ausgewählt, die ich nun einen Schwachstellenscan unterziehen möchte. Dabei handelt es sich um ein (zugegebenermaßen “nicht vollständig” gepachtes) Linux-System mit vielen Schwachstellen. Für diesen Test habe ich Metasploitable ausgewählt. Eine Beschreibung der installierten Software findet man z.B. hier. Dabei wurden die Scans mit der Scan-Konfiguration “Full and fast” bzw. “Full and very deep ultimate” durchgeführt.
Die Vorgehensweise soll hier nicht weiter erläutert werden. Es sollte folgende Reihenfolge eingehalten werden:
1. Crendentials festlegen (Nutzen Sie für die besten Ergebnisse nur administrative Accounts)
2. “Targets” auswählen. (Hier das komplette Netzsegment oder einzelne Hosts angeben)
3. Mittels “New Tasks” eine neue Aufgabe erstellen und hier die zu scannenden Host und die zu verwendeten Credentials angeben.
4. Schwachstellenscan
Hier sind die Scanergebnisse (Reports) als pdf-Dateien abgelegt.