OpenVAS: speurhond naar kwetsbaarheden - Wees hackers te snel af!

VAS staat voor Vulnerability Assessment System. Dit soort applicaties gaan op zoek naar zwakheden in je systeem, die voor indringers interessant zijn. Dat doen ze op basis van een lijst van Network Vulnerability Tests (NVT's). Bij OpenVAS zijn dat er inmiddels ruim 50.000! De applicatie speurt het systeem of netwerk af en voert deze tests uit. Voor de gevonden besturingssystemen en applicaties krijg je dan een overzicht van de testresultaten. Dat helpt je om je computers en netwerk qua veiligheid te verbeteren, zodat hackers minder kans maken.  

 

De scanner en manager vormen samen de kern van OpenVAS. De scanner voert de tests uit, terwijl de manager de scanresultaten, de configuratie en gebruikers beheert. Om met de manager te communiceren, gebruik je een webinterface.

Bij populaire distributies, waaronder Fedora en Ubuntu, vind je de pakketten voor OpenVAS in de repositories. We gebruiken in dit artikel Fedora als voorbeeld. Bij deze distributie moet je nog wat werk verrichten, voordat OpenVAS draait. Sinds versie 8 van OpenVAS is de Redis database vereist, maar die komt niet automatisch als afhankelijkheid mee. Installeer die daarom allereerst:

 

sudo dnf install redis

 

OpenVAS gebruikt een Unix socket om met Redis te communiceren. Pas daarom in het configuratiebestand /etc/redis.conf de volgende regel aan:

 

# unixsocket /tmp/redis.sock

 

Haal hiervan het hekje '#' weg en start dan de Redis service:

 

sudo systemctl start redis

 

Om later rapporten als PDF te exporteren, is er nog een pakket vereist:

 

sudo dnf install texlive-collection-latexextra

 

Nu kunnen we met OpenVAS aan de slag.

 

Scanner

Installeer als eerste de scanner:

 

sudo dnf install openvas-scanner

 

De scanner gebruikt SSL om de communicatie met clients te beveiligen. Genereer het servercertificaat als volgt:

 

sudo openvas-mkcert

 

Dit start een dialoog, waarin je onder andere de geldigheidsduur en de naam van je organisatie opgeeft. Als je geen moeite hebt met standaardwaarden als landcode DE en locatie Berlin in het certificaat, dan volstaat telkens een druk op Enter. Je vindt de certificaten en keys onder de volgende directory:

 

/etc/pki/openvas

 

Als je al met een eigen infrastructuur SSL-certificaten beheert, hoef je openvas-mkcert niet te gebruiken. Controleer dan wel het volgende configuratiebestand, zodat de scanner je certificaten en keys vindt:

 

/etc/openvas/openvassd.conf

 

Om te detecteren en testen heeft de scanner een lijst van NVT's nodig. Haal die als volgt op:

 

sudo openvas-nvt-sync

 

Dit maakt gebruik van rsync op poort 873 van de feed server. Houd hiermee rekening als je achter een firewall zit. Hoewel je met de optie --wget of --curl kunt synchroniseren via HTTP op poort 80, geldt dat voor het ophalen van de volgende aanvullende veiligheidsinformatie niet:

 

sudo openvas-scapdata-sync

sudo openvas-certdata-sync

 

De SCAP-data (Security Content Automation Protocol) bevatten lijsten met kwetsbaarheden en bijbehorende tests. CERT (Computer Emergency Readiness Team) organisaties verspreiden informatie over gevonden veiligheidslekken en cyberaanvallen. Het ophalen van ongeveer 1 GB aan SCAP-data duurt ongeveer 30 minuten. Volgende synchronisaties gaan veel sneller, omdat rsync dan alleen incrementele lijsten ophaalt. Zowel de NVT's als SCAP- en CERT-data ontvangen regelmatig updates. Gebruik bijvoorbeeld een cron job om frequent te synchroniseren.

 

Start nu de scanner:

 

sudo systemctl start openvas-scanner

 

De scanner luistert vervolgens op poort 9391.

 

 

Manager

Installeer nu de manager van OpenVAS:

 

sudo dnf install openvas-manager

 

De manager zoekt de scanner op localhost 127.0.0.1. Als je de scanner en manager op verschillende hosts hebt geïnstalleerd, moet je het volgende bestand aanpassen:

 

/etc/sysconfig/openvas-manager

 

Geef hier bij SCANNER_LISTEN het juiste IP-adres op. De manager gebruikt een cache voor de NVT's. Die moet je initialiseren:

 

sudo openvasmd –rebuild

 

Verder heeft de manager een clientcertificaat nodig. Start hiervoor een dialoog vergelijkbaar met het servercertificaat:

 

sudo openvas-mkcert-client -i

 

Door de optie -i komen het certificaat en de key terecht onder /etc/pki/openvas. Zonder die optie staan die in /tmp en moet je ze handmatig naar de juiste mappen verplaatsen. Maak vervolgens een beheerder aan:

 

sudo openvasmd --create-user=<mijn_naam>

 

Het wachtwoord verschijnt op het scherm. Omdat dit een lange en nauwelijks te onthouden string is, veranderen we dit direct:

 

openvasmd --user=<mijn_naam> --new-password=<mijn_wachtwoord>

 

Start tot slot de manager:

 

sudo systemctl start openvas-manager

 

Deze luistert standaard op poort 9390.

 

De basis van OpenVAS draait nu. Mocht je problemen ondervinden, check dan je installatie met het commando: 

 

openvas-check-setup

 

Dit laat zien wat er mogelijk schort aan je systeem voor een correcte werking van OpenVAS.

 

 

Webinterface

De Greenbone Security Assistant (GSA) biedt een gebruiksvriendelijke webinterface voor de manager. Installeer die als volgt:

 

sudo dnf install openvas-gsa

 

De GSA zoekt de manager op localhost 127.0.0.1. Als je de GSA en manager op verschillende hosts hebt geïnstalleerd, moet je het IP-adres voor MANAGER_LISTEN in het volgende bestand aanpassen:

 

/etc/sysconfig/openvas-gsa

 

Start nu de GSA:

 

sudo systemctl start openvas-gsa

 

De GSA luistert op poort 9443. Ga in je browser naar het volgende adres: https://127.0.0.1:9443/

 

De browser klaagt over het eigen aangemaakte certificaat. Zorg dat de browser dat alsnog accepteert, zodat de webinterface verschijnt. Log vervolgens in als de hierboven aangemaakte beheerder.

 

Scan

Je ziet nu een wizard om snel een scan te starten. De wizard gebruikt een standaard scanprofiel en maakt een scantarget aan op basis van het opgegeven IP-adres. Daarna creëert de wizard een taak om de scan direct uit te voeren.

 

Dat doen we, zodat we direct resultaat van onze inspanningen hebben. Vul rechts bij Quick start een IP-adres of hostname in. Om een heel netwerk te scannen, geef je een range op, bijvoorbeeld 192.168.0.0/24. Druk vervolgens op Start Scan. Boven de wizard zie je de voortgang van de scan als taak in een lijst.

 

Afhankelijk van je systeem of netwerk duurt een scan soms lang. Met name een firewall, die pakketten weigert met 'drop' in plaats van 'reject', dwingt de scan tot lang wachten op een time-out. De scan is voltooid als de status Done is.

 

Op de achtergrond heeft de wizard een scantaak aangemaakt. Dat doen we straks ook zelf, maar vanaf de vierde taak verdwijnt de wizard van de startpagina. Roep hem dan op via het paarse icoontje bovenaan met toverstok.

 

Rapport

Voor een rapport van gevonden kwetsbaarheden klik je op de status van een taak. Je hoeft niet te wachten tot de scan klaar is, omdat resultaten van reeds afgeronde tests meteen beschikbaar zijn. Onder de kolom Severity zie je de ernst van de gevonden zwakke plek. Vooral zwakke plekken met de status High en Medium verdienen aandacht. Low en Log geven in het algemeen aan dat slechts informatie over componenten gevonden is zonder een direct veiligheidsrisico. Dit betreft bijvoorbeeld versienummers, die mogelijk wel bruikbare informatie aan indringers geven.

 

In de kolomnaam rechts ervan zie je QoD staan. Die afkorting betekent Quality of Detection en is een maat voor de betrouwbaarheid waarmee de kwetsbaarheid is vastgesteld. Een firewall bijvoorbeeld kan interfereren. Maar ook een patch is niet altijd goed te detecteren en executables geven evenmin altijd betrouwbare versie-informatie. Een QoD van 100% kom je overigens zelden tegen. Dat is alleen mogelijk als de scan een exploit daadwerkelijk uitvoert. Dan pas weet je namelijk echt 100% zeker dat de test een kwetsbaarheid aantoont.

 

Standaard zie je het resultatenrapport. Klik op het kleine pijltje naar beneden links van Report: Results voor andere rapportages. Kies hier bijvoorbeeld een overzicht van alle open poorten of gevonden applicaties. Om het rapport op te slaan, klik je bovenin op het groene icoontje met pijl. In de lijst ernaast heb je vele opties voor het formaat, waaronder HTML-webpagina of PDF. Door de grote hoeveelheid technische informatie zijn dit overigens uitgebreide rapporten van tientallen pagina's.

 

Klik op een resultaat in de kolom Vulnerability in het rapport om details te zien. Je krijgt dan veel nuttige en nauwkeurige informatie, zoals de relevante versienummers, een beschrijving van de nadelige gevolgen en een oplossing. Wie nog technischer de diepte in wil, moet op de links naar CVE- en CERT-informatie helemaal onderaan klikken.

 

Door de gevonden aandachtspunten te verhelpen, maak je je systeem veiliger. Om dit te verifiëren voer je de betreffende taak nogmaals uit. Dat doe je door naar Scan Management -> Tasks te gaan. Klik vervolgens bij de juiste taak in de lijst op het eerste groene icoontje met pijl in de kolom Actions.

 

Target

Om zelf een scan te definiëren, moet je allereerst een target aanmaken via Configuration -> Target. In de lijst staat al het target dat door de wizard is aangemaakt. Maak een nieuw target aan door op het blauwe icoontje met ster helemaal boven te klikken. Geef vervolgens een naam op en vul bij Hosts een IP-adres, adresrange of hostname in. Meerdere targets geef je op door ze te scheiden met komma's.

 

De optie Reverse Lookup Only betekent dat je alleen hosts scant, waarvan de DNS reverse lookup bij het IP-adres een hostname vindt. Reverse Lookup Unify houdt in, dat als meerdere adressen dezelfde hostname hebben, de scan toch maar eenmaal uitgevoerd wordt.

 

Bij Port List kies je welke poorten je wilt scannen. OpenVAS scant standaard alleen de bij IANA geregistreerde TCP-poorten. Dat zijn de poorten die bij bepaalde applicaties horen, zoals poort 22 bij SSH of poort 5432 bij PostgreSQL. In de drop-down list vind je andere lijsten, zoals alle TCP-poorten of alleen de geprivilegieerde poorten 0 tot en met 1023. Een eigen lijst maak je aan via Configuration -> Port Lists. Op die manier maak je bijvoorbeeld specifiek voor een webserver een lijst met alleen de poorten 80 en 443.

 

OpenVAS voert standaard een ping uit om te checken of een host up is. Krijgt hij heen antwoord, dan slaat de scanner de betreffende host over. Vaak volstaat dit in een lokaal netwerk, maar een firewall kan bijvoorbeeld roet in het eten gooien. Gebruik dan de optie Alive Test om een andere methode te kiezen of om zelfs aan te nemen dat de host up en running is.

 

De laatste opties helemaal onderaan dienen om inloggegevens op te geven. Daarmee geef je OpenVAS toegang tot een systeem. Je gebruikt dit om OpenVAS software lokaal te laten testen of om uitgebreidere resultaten te krijgen, zoals patch levels. De inloggegevens maak je eerst aan via Configuration -> Credentials en dit kies je dan hier in de drop-down lists.

 

Klik tot slot op Create Target rechtsonder.

 

Taak

Vervolgens maak je een taak aan via Scan Management -> Tasks (afbeelding 3). Klik op het blauwe icoontje met ster helemaal bovenaan. Geef een naam en kies vervolgens in de drop-down list bij Scan Targets het target dat je zojuist hebt gedefinieerd. Om een alert of tijdschema voor de scan op te geven, moet je die eerst aanmaken via Configuration -> Alerts, respectievelijk Schedules. Voor de alert regel je bijvoorbeeld dat je een e-mail wilt ontvangen en onder welke voorwaarden. Bij het tijdschema bepaal je niet alleen de frequentie of starttijd van een scan, maar ook hoe lang die maximaal mag duren. Bij overschrijding breekt OpenVAS de taak dan af.

 

Standaard vind je via het menu Asset Management een lijst van gevonden hosts tijdens de scan. Je ziet per host een overzicht van open poorten en applicaties. Waar mogelijk staat er ook informatie over de gedetecteerde hardware. Als je dit niet wil, kies dan de optie no bij Add results to Asset Management.

 

De opties onder het kopje Scanner hoef je in het algemeen niet aan te passen op Scan Config na. Standaard zie je hier Discovery. Dit houdt in dat de scanner zoveel mogelijk informatie over targetsystemen verzamelt, zonder echter op kwetsbaarheden te testen. In de drop-down list vind je nog twee andere Discovery varianten, die zich beperken tot het vinden van hosts en systeeminformatie, zoals het besturingssysteem. De wizard gebruikt als configuratie Full and Fast en dit is meestal de juiste keuze. De overige configuraties leveren namelijk weinig meer resultaat tegenover veel meer scantijd. Bijkomend nadeel is dat van die configuraties sommige NVT's services of systemen kunnen verstoren of zelfs onderuithalen.

 

Klik tenslotte op Create Task rechtsonder. Als je geen tijdschema hebt gemaakt, voer je de taak uit door boven op het groene icoontje met pijl naar rechts te klikken.

 

Tot slot

Je moet even wat tijd investeren in het installeren en configureren van OpenVAS, maar dankzij de webinterface is de bediening daarna gemakkelijk. Het opzetten van een scan verloopt eenvoudig en je krijgt snel en uitgebreid inzicht in waar je systeem kwetsbare plekken vertoont.

 

 

Links

OpenVAS: www.openvas.org 

 

 

 

 

 

 

NEDLINUX FORUM

Het nederlandse linuxforum
Voor beginners en pro’s

 

 

 

 

E-mailadres



 

 

Nieuwste editie:

Linuxmag op Facebook

@linuxmagnl op Twitter

linuxmagNL Ondanks dat 95 % van de datacentra op onze planeet op VMware gevirtualiseerd lijkt te zijn, is Linux ook een zeer g… https://t.co/thSrQInhIK
linuxmagNL Nog geen nieuwe Raspberry Pi, wel een nieuwe Raspbian! Raspbian Jessie is opgevolgd door een ander Disney figuur ui… https://t.co/FAQEJTPbZG
linuxmagNL De twaalf jaar oude fout Stack Clash bedreigt niet alleen Linux, maar ook andere Unix-achtige besturingssystemen. S… https://t.co/qG5jlJhxZM