Rapid7 InsightVM
In deze post gaan we kijken naar een vulnerability scanner. En niet zomaar 1. Deze vulnerability scanner is de evolutie van Rapid7 zijn Nexpose scanner en gaat draagt de naam “InsightVM”. InsightVM is eveneens een product van Rapid7 met meer moderne technieken, mogelijkheden en een nieuwe interface. InsightVM is ontworpen om de moderne organisatie optimaal te kunnen ondersteunen. Waar we vroeger servers, desktops en laptops wilde onderwerpen aan een periodieke vulnerability scan daar komen we vandaag niet meer mee weg. Nieuwe technieken hebben relatief snel hun intrede gedaan in het bedrijfsnetwerk. Denk aan cloud, mobiele devices en virtualisatie technieken. InsightVM ondersteund deze technieken en biedt de gebruiker een moderne interface met meer mogelijkheden dan Nexpose. Laten we eens een kijkje nemen.
InsightVM is dus een geavanceerde vulnerability scanner voor de moderne organisatie. InsightVM biedt ondersteuning voor zogenaamde “container registries” zoals Azure, AWS maar ook DHCP. De kracht van InsightVM zit hem in het duidelijk meetbaar, schaalbaar en inzichtelijk maken van gegevens zodat op basis van de uitkomsten snel een goede conclusie getrokken kan worden. Een belangrijk onderdeel in het schaalbaar en inzichtelijk maken van gegevens is de Insight-cloud. De zogenaamde Rapid7 Insight-cloud is gelanceerd in 2015 en brengt Rapid7’s knowledge base over kwetsbaarheidsonderzoek van Nexpose samen met exploit kennis vanuit Metasploit en kennis van wereldwijd aanvalsgedrag samen en maakt hier realtime rapportage van die ze “Liveboards” noemen. InsightVM gebruikt de Insight-cloud als een veilig platform om de gebruiker een volledig beschikbare, schaalbare en efficiënte manier te bieden om kwetsbaarheidsgegevens te verzamelen en om te zetten in antwoorden.
InsightVM ken automatische acties zoals het automatisch ontdekken van nieuwe assets, het classificeren van nieuwe assets en vervolgens het uitvoeren van gedefinieerde acties op deze assets. Als er vulnerabilities gevonden worden dan worden deze geclassificeerd middels Rapid7 zijn eigen risicoscore. Voor deze riskscore worden o.a. CVE- en CVSS-basisscores gebruikt in combinatie met andere factoren zoals blootstelling aan malware, misbruik en de leeftijd van het beveiligingslek. CVE en CVSS scores zijn dus meteen inzichtelijk en worden gebruikt om een goede eigen riskscore te berekenen. Deze riskscore is een waarde van 1-1000. Deze score maakt de ernst van de vulnerability dus een stuk beter inzichtelijk dan een relatief simpele “laag-gemiddeld-hoog-kritisch” score.
Zoals al eerder aangegeven in de Metasploit Pro review is Metasploit Pro te koppelen met InsightVM om vanuit Metasploit een vulnerability scan uit te voeren via InsightVM. Andersom kan InsightVM de Metasploit resultaten 1-op-1 overnemen voor nog meer inzicht en duidelijkere rapportage. InsightVM komt met default report welke al een zeer goede rapportage kunnen genereren. Uiteraard kun je ook je eigen rapportages maken. InsightVM is een krachtige tool en door Gartner meerdere malen bekroont tot “leader” door de Forrester Wave.
Al dit moois kost natuurlijk een bepaalde prijs. InsightVM betaal je per node. Scan je 10 nodes dan betaal je de prijs van 10 nodes. Voor dit bedrag kun je nodes onbeperkt scannen. Uiteraard geldt er een staffelkorting wanneer je de licentie afneemt voor een groot aantal nodes. De default prijs is 22 USD per node, per maand en dus 264 USD per node per jaar. Dit is aan de prijzige kant maar hievoor krijg je ook heel veel moois terug. Of het echt zo mooi is moeten we natuurlijk zelf even bekijken!
InsightVM Installatie
InsightVM kan geinstalleerd worden op zowel Windows als Linux. De volgende systemen zijn supported:
- Microsoft Windows Server 2016
- Microsoft Windows Server 2012 R2
- Microsoft Windows Server 2008 R2
- Microsoft Windows 8.1
- Microsoft Windows 7 SP1
- Ubuntu Linux 18.04 LTS
- Ubuntu Linux 16.04 LTS
- Ubuntu Linux 14.04 LTS
- Red Hat Enterprise Linux Server 7
- Red Hat Enterprise Linux Server 6
- CentOS 7
- Oracle Linux 7
Wij gaan InsightVM installeren op een Ubuntu 18.04 LTS desktop. De minimale specificaties voor installatie zijn een Dual Core processor, 8GB RAM geheugen en 100GB storage. De installatie is de downloaden v.a. de website (https://insightvm.help.rapid7.com/docs/download).
De installatie op Ubuntu volgt de volgende stappen:
Je kunt kiezen om alleen de scan engine te installeren (hosts) en om de security console + scan engine (voor local host) te installeren. Uiteraard kiezen we voor het complete pakket, dus de security console + scan engine.
Naast het downloaden van het installatiebestand downloaden we ook de MD5 checksum file van de download pagina om onze installatiesoftware te verifiëren. We plaatsen de file in dezelfde folder als de installatie en voeren het volgende commando uit:
md5sum -c %installer-filename%.md5sum |
Nu gaan we het bestand uitvoerbaar maken:
chmod +x %installer-filename% |
En we draaien het installatiebestand:
sudo ./%installer-filename% -c |
Zoals je ziet op bovenstaande screenshot krijgen we een installatiewizard. Hierin maken we de volgende belangrijke keuzes:
1. We kiezen voor de installatie van het Security Console en de local Scan Engine. Het installatiepad houden we default op “/opt/rapid7/nexpose”.
2. Onder “Requirements” houden we het default poortnummer op 5432. Onder “Account Details” maken we de juiste inlog credentials aan en gegevens voor het aanmaken van de self-signed SSL certificaten.
3. Ook kies ik ervoor om na de installatie de initialisatieprocedure te starten. De “initialisation procedure” bereid de applicatie voor op het eerste gebruik en voert een update uit van de vulnerability database. Het inschakelen van deze optie vergroot de installatietijd maar het moet toch gebeuren dus kunnen we het maar beter meteen achter de rug hebben.
4. Nadat de installatie volledig is moeten we de machine herstarten om de services te starten (sudo systemctl start nexposeconsole.service).
5. Nadat de installatie helemaal gereed is kun je inloggen via de webconsole op:
https://%hostname%:3780 OF https://%ip-adres%:3780 |
Configureren InsightVM
Nu de installatie volledig is wordt het zaak om hem te configureren. Laten we de meest basale stappen van de configuratie doorlopen om zo eveneens een goed inzicht van de console en de InsightVM mogelijkheden te krijgen.
Nadat je succesvol bent ingelogd met de credentials die je tijdens de setup hebt aangemaakt kunnen we de licentie invoeren zodat we volledige functionaliteit krijgen. Let op, onderstaande sleutel is fictief.
Vervolgens is het zaak om de terminologie van InsightVM te begrijpen. De volgende termen komen op regelmatige basis terug:
- Asset: Een node / device.
- Dynamic Asset Group: Dit is een groep van assets welke gefilterd zijn op een bepaalde waarde. Zo kun je uit een vorige scan bepaalde assets filteren. Of kun je assets toevoegen aan een dynamische asset groep op basis van een kenmerk.
- Site: Collectie van assets en asset-groups. Een site wordt gebruikt om te scannen. Een site is dus feitelijk een groep van assets voor een scan.
- Scan Template: De scan template definieert waar je op wilt scannen en hoe het de scan uitvoert.
- Scan Engine – Scan engines zijn de werkpaarden van het scanproces en verantwoordelijk voor het ontdekken van assets tijdens een scan, het controleren op kwetsbaarheden van die assets en het controleren op policy complaince. Daarnaast dienen de scanengines als datacollectors om de gegevens op te slaan. Dit opslaan is slechts tijdelijk omdat na de lokale opslag de gegeven opgeslagen worden in de PostgreSQL-database op de security Console. Je kunt gebruik maken van de lokale scan engine op de security console, of distributed scan engines aanmaken. Distributed scan engines zijn nodig in grote omgevingen om de scan load te verdelen. Ook kun je nog gebruik maken van de Rapid7 Externe Scan Engine services. Dit is uiteraard een betaalde dienst.
- Scan Templates: Scan Templates definiëren alle scansettings voor de scanengine.
En als je inlogt bent zie je het volgende overzicht. That’s InsightVM for ya… een kale InsightVM wel te verstaan.
We doorlopen altijd eerst de configuratie zodat we eventueel nog wat puntje op de i kunnen zetten. In de user configuration is echter zonder verdere configuratie nog niet heel veel in te stellen. Onder de configuratie kun je voornamelijk je user toegang configureren en een aantal settings. Het is aan te raden om onder “General” je e-mailadres in te vullen zodat je ook rapportages en notificaties kunt ontvangen.
That’s it voor de user settings. Onder de “Administration” settings hebben we echter een hele berg aan extra opties.
- Users – Deze setting geeft ons de mogelijkheid om rollen aan te maken, nieuwe gebruikers toe te voegen en om een user password policy aan te maken. InsightVM komt zelf al met de meest gebruikte rollen en toegangsopties maar deze optie geeft de mogelijkheid om nog meer te customizen.
- Asset Groups – Hier kunnen we statische en dynamische asset groepen aanmaken.
- Exceptions and Overwrites – Vanuit de vulnerabilities bibliotheek en rapportages kunnen requests gemaakt worden om vulnerabilities te excluden. Deze verzoeken komen hier binnen en zullen na goedkeuren niet meer in de rapportages en risico calculaties verschijnen.
- Calendar – De kalander is ook beschikbaar v.a. het topmenu. In de agenda kunnen scans, rapportages en maintenance momenten gepland worden.
- Scan Options – Deze sectie geeft links naar verschillende scan opties. Zo kun je de scan historie bekijken, root CA’s managen, blackouts (momenten dat scan’s niet mogen draaien) plannen en credentials beheren. Ook heb je toegang tot de scan enigines en heb je hier de mogelijkheid om alle scan templates in te kijken te modificeren en te verwijderen. Uiteraard kun je ook je eigen scan templates maken waarbij altijd het advies geldt om een bestaande template te kopiëren en aan te passen. Wanneer je een template aan gaat passen krijg je verdeeld in een aantal stappen een aantal overzichtelijke opties waarmee je volledig beheer hebt over de uit te voeren acties van de scan. Kies b.v. of logging aangezet wordt, hoe assets en services gevonden worden maar bovenal welke controles er uitgevoerd moeten worden. Zo kun je dus een scan template maken op een specifieke vulnerability om snel inzicht te verkrijgen. Tijdens het maken van een scanscenario kun je zelfs de scanopties kiezen op basis van CVE’s. Vervolgens kun je kiezen om web spidering uit te voeren en om compliance te controleren middels voor gedefinieerde policies.
- Discovery Options – Onder de discovery options stellen we in hoe InsightVM zijn assets kan ontdekken. Zo kan de NSX Manager un trusted scan service aanmaken binnen een VMWare NSX netwerk. Als een trusted service kunnen alle hosts op het NSX netwerk unauthorized ontdekt en gescand worden. Ook kunnen handmatige verbindingen gemaakt worden en kunnen de logs van het discovery proces worden uitgelezen.
- Global and Console Settings – Onder de global options kunnen we instellingen definiëren die van toepassing zijn op de gehele omgeving zoals risk score berekeningen of instellingen voor een specifieke security console zoals b.v. auto-update opties.
- SCAP – Binnen de SCAP (Security Content Automation Protocol) opties kun je bekijken over welke SCAP definities InsightVM momenteel beschikt.
- Maintenance – Onder de “maintenance” kop zijn diverse functies te vinden voor het onderhoud op de database, data opslag, export mogelijkheden en troubleshooting.
Het eerste wat we vervolgens moeten doen (als we geen default scan willen maken) is het customizen van een scan template. Vervolgens gaan we een scan starten en een rapportage draaien.
Een nieuwe template maken we aan via Maintenance – Create Template. Zodra we een template aan gaan maken krijgen we een groot scala aan opties welke allemaal invloed hebben op de scan.
We beginnen met het configureren en gaan een template maken voor een specifieke vulnerability. We kiezen op de homepage dus voor een “Vulnerabilities” scan en geven de scan een naam.
Vervolgens kiezen we op welke manier we assets vinden om te scannen:
Om op vulnerabilities te kunnen scannen moet men weten welke services er draaien. Om deze redenen stellen we in hoe we op services gaan scannen:
Vervolgens selecteren we de settings die impact hebben op de performance zoals het aantal connection retries en scan delays (als je niet te intrusive wilt zijn):
Tenslotte gaan we selecteren op welke vulnerabilities we willen scannen. We kiezen hier voor de “CVE-2019-1226 | Remote Desktop Services Remote Code Execution Vulnerability”. We kunnen op verschillende manieren naar vulnerabilities zoeken. Wij kiezen een individual check op basis van CVE.
Vervolgens kunnen we scannen of bepaalde bestanden voorkomen (i.v.m. policy compliance). Deze laten we blanco. Daarna kunnen we kiezen om mailservers te testen op open mail relay. Ook dit gaan we niet doen. De daarop volgende optie is om eventueel database servers en databases te scannen op vernerabilities. Onze vulnerability is een Windows vulnerabiliy dus ook deze configuratie is overbodig. Ook alle overige optionele checks laten we blanco (mail server, CVS, DHCP en Telnet scanning). En als we alles geconfigureerd hebben slaan we de scan template op.
Het volgende wat we moeten doen is het configureren van een site. Zoals je in de definitie hebt gelezen is een site een verzameling van assets en asset-groups. Een site wordt gemaakt om te scannen. Zorg ervoor dat er echter niet overbodig veel assets in de site aanwezig zijn en maak een site met de gedachte “efficiënt data verzamelen”. Maak b.v. een site “Web Vulnerability Scan ”of “File Servers”.
Een site kent een groot scala aan onderdelen om te configureren. Denk hierbij aan access management, templates, schedule etc. In het eerste “General” tabblad geef je de site een naam. Ook kun je nog organisatiegegeven invoeren en wie er rechten op deze site heeft.
In het volgende tabblad (assets) ken je de juiste assets toe aan de site. Dit kan op basis van hostname, ip, subnet etc. Uiteraard kun je hier desgewenst ook specifieke hosts excluden.
In de “Authentication” tab heb je de mogelijkheid om authenticatiegegevens toe te voegen welke benodigd kunnen zijn op de geselecteerde assets. Er kunnen meerdere credentials toegevoegd worden (Kerberos / SSH / SMB etc). en na het toevoegen kunnen deze credentials getest worden.
Onder de “Templates” tab kiezen we de scan template welke we voor de scan willen gebruiken en onder de “Engines” tab hebben we verschillende mogelijkheden. Hier kiezen we het type engine dat gebruikt moet worden voor de scan. In de meeste gevallen zul je hier kiezen voor de “Local Scan Engine”.
De Alerts tab geeft de mogelijkheid om alerts in te stellen. Dus gebeurtenissen waarop een alert getriggerd moet worden. Let wel, alerts worden in clear-tekst verzonden en zijn niet versleuteld.
En op het laatste tabblad “Schedule” hebben we de mogelijkheid om de scan in te plannen. Deze verschijnt vervolgen weer in je agenda / planner.
Als we klaar zijn kunnen we de scan opslaan (save) of opslaan en scannen (save and scan). Daarna zal InsightVM de scan starten.
Als de scan voltooid is zal InsightVM de resultaten opslaan en kunnen hier rapportages op gedraaide worden. Je kunt gebruik maken van default rapportage templates of je eigen templates bouwen. Tijdens het maken van de rapportage selecteer je welke nodes uit een specifieke scan je in het rapport wilt vermelden. Je kunt rapportages opslaan als PDF, RTF, XML, HTML en Tekst en je kunt ervoor kiezen om rapportages periodiek te draaien of eenmalig.
Nadat de rapportage compleet is kan deze worden bekeken en worden opgeslagen.
And that my friends …. Are the basics of Rapid7 InsightVM! Uiteraard kunnen we nog veel en veel meer met InsightVM maar hiervoor is al snel een cloud koppeling en soms een additionele licentie nodig. Wanneer je een optie aanklikt die niet stand-alone gebruikt kan worden maakt InsightVM dit zelf kenbaar middels onderstaande popup. Het is dus aan te raden om minimaal een Rapid7 Insight Platform account aan te maken om de volledige kracht van InsightVM te gebruiken. Meer informatie over het cloud platform volgt later.
Conclusie
InsightVM is echt een complete applicatie. Voor een goed oordeel zou ik InsightVM graag aan een grote test willen onderwerpen maar daarvoor beschik ik momenteel niet over de juiste licenties. Voor wat ik nu heb gezien is InsightVM een zeer stabiele applicatie met voldoende diepgang om allerhande devices te scannen op een vooraf slim ingerichte methode. Maatwerk is prima mogelijk en de rapportages zijn erg goed. De voorlopige testen geven voldoende aanknopingspunten tot nader onderzoek. Is InsightVM de beste vulnerability scanner op de markt? Als we de critici moeten geloven behoord InsightVM zeker tot het beste segment. Een goede test vereist eenzelfde scan over meerdere nodes met verschillende vulnerability scanners en dan pas kunnen we de werkelijke resultaten vergelijken. Maar over het algemeen ziet het er ontzettend degelijk, goed, modern en niet overmatig ingewikkeld uit. Dus nu op naar een uitgebreide test. Rapid7… hebben jullie nog een grote bulk licenties over? 🙂
Vond je het leuk om meer te lezen over InsightVM? Of gebruik je InsightVM en wil je je mening met mij en de lezers delen? Stuur me dan een berichtje. Want to show more love? Deel dan mijn berichtje op je eigen website of sociale media en geef een leuke comment of like! Dankjewel!