Kwetsbaarheidsscan: hoe computers zelf naar zwakke plekken zoeken
Een kwetsbaarheidsscan is een geautomatiseerde controle waarbij software een computer, netwerk of website afspeurt naar bekende zwakke plekken. Vergelijk het met een inspecteur die een gebouw langsloopt met een checklist: zit het slot op de voordeur nog op het juiste niveau, is de brandblusser niet verlopen, staat er geen raam op een kier? De inspecteur breekt niet in, hij noteert alleen wat er niet in orde is. Een kwetsbaarheidsscanner doet hetzelfde, maar dan voor digitale systemen: hij controleert of software verouderd is, of instellingen onveilig staan en of er bekende zwakheden aanwezig zijn.
Zo'n scan wordt bijvoorbeeld gedraaid door een bedrijf dat wil weten of de eigen webserver kwetsbaar is voor een aanval die elders in het nieuws is geweest. Stel dat er een lek bekend wordt in populaire software: een scan langs alle bedrijfssystemen laat binnen een paar uur zien welke machines die kwetsbare versie nog gebruiken, zodat ze snel bijgewerkt kunnen worden voordat een kwaadwillende dat lek misbruikt.
Wat is het precies?
Een kwetsbaarheidsscanner werkt in een aantal stappen. Eerst zoekt hij welke apparaten en diensten bereikbaar zijn, vaak door poorten af te gaan: digitale 'deuren' waarachter een dienst kan draaien, zoals een webserver of een e-mailserver. Vervolgens probeert de scanner via bannergrabbing te achterhalen welke software en welke versie daar precies draait, ongeveer zoals je aan een kenteken kunt zien welk automerk je voor je hebt.
Die verzamelde informatie wordt vergeleken met een database van bekende kwetsbaarheden. De belangrijkste standaard hiervoor is CVE, wat staat voor Common Vulnerabilities and Exposures: een internationaal genummerde lijst van publiek bekende zwakke plekken in software, bijgehouden door de Amerikaanse organisatie MITRE. Komt de gevonden softwareversie overeen met een versie waarvoor een CVE bekend is, dan meldt de scanner dat als bevinding.
Er bestaan twee hoofdvormen. Bij een unauthenticated scan kijkt de scanner van buitenaf, zonder inloggegevens, precies zoals een aanvaller dat zou doen. Bij een authenticated scan krijgt de scanner een gebruikersaccount, waardoor hij dieper in het systeem kan kijken en ook interne configuratiefouten vindt. Dit is iets anders dan een penetratietest, waarbij een mens actief probeert binnen te dringen en kwetsbaarheden ook daadwerkelijk uitbuit; een scan blijft passiever en signaleert alleen. Het verschilt ook van een security audit, die breder kijkt naar beleid, procedures en menselijk gedrag, niet alleen naar techniek.
Een bekend probleem is de false positive: een melding die een kwetsbaarheid suggereert terwijl die er in de praktijk niet is, bijvoorbeeld omdat een systeembeheerder een lek al met een tijdelijke maatregel heeft afgedekt zonder de softwareversie aan te passen. Beveiligingsteams moeten dit soort meldingen altijd handmatig nalopen.
Wat wil men ermee bereiken?
Het belangrijkste doel is simpel: kwetsbaarheden vinden voordat een aanvaller dat doet. Organisaties willen weten waar hun zwakke plekken zitten zodat ze die kunnen verhelpen, vaak door software bij te werken (patchen) of instellingen aan te passen.
Daarnaast speelt regelgeving een rol. Normen zoals ISO 27001, een internationale standaard voor informatiebeveiliging, en de Europese NIS2-richtlijn, die sinds 2024 geldt voor veel bedrijven in vitale sectoren, verplichten organisaties om structureel kwetsbaarheden in kaart te brengen. Een kwetsbaarheidsscan is vaak het meetbare bewijs dat een organisatie hieraan voldoet.
Ten slotte helpt het bij het verkleinen van het zogeheten attack surface, het totale oppervlak waarop een systeem aanvalbaar is. Hoe minder onbeheerde, verouderde of verkeerd geconfigureerde systemen er zijn, hoe kleiner de kans dat een aanvaller een ingang vindt.
Voorbeelden uit de praktijk
Een van de bekendste recente voorbeelden is Log4Shell, een ernstige kwetsbaarheid die in december 2021 werd ontdekt in Log4j, een veelgebruikte Java-bibliotheek voor logging. Binnen dagen werd wereldwijd massaal gescand, zowel door beveiligingsteams die wilden weten of ze kwetsbaar waren, als door aanvallers die zochten naar systemen om te misbruiken.
De open-source scanner OpenVAS, tegenwoordig ontwikkeld onder de naam Greenbone Vulnerability Management door het Duitse bedrijf Greenbone Networks, wordt wereldwijd gebruikt door organisaties die geen commerciële licentie willen betalen.
Commercieel is Nessus van Tenable een van de bekendste namen. De scanner werd begin jaren negentig gestart door Renaud Deraison en groeide uit tot een veelgebruikt product in de sector.
Ook Qualys is een grote speler, met een cloud-gebaseerd platform waarmee bedrijven continu, in plaats van incidenteel, hun systemen laten scannen.
Tot slot is er Shodan, een zoekmachine die sinds ongeveer 2009 door John Matherly is opgezet en die apparaten op het internet indexeert, van webcams tot industriële systemen. Onderzoekers en beveiligingsteams gebruiken Shodan om te zien welke kwetsbare systemen wereldwijd nog vindbaar zijn, wat na de ontdekking van grote lekken vaak razendsnel gebeurt.
Hoe ver is de techniek?
Kwetsbaarheidsscannen is een volwassen en breed toegepast vakgebied; het bestaat al decennia en is inmiddels standaardpraktijk bij vrijwel elke organisatie met een IT-omgeving. Toch verandert het gebied nog voortdurend.
Een duidelijke trend is cloud-native scanning: doordat steeds meer systemen in de cloud draaien, verschuiven scanners mee naar het controleren van cloudconfiguraties, containers en Kubernetes-omgevingen (een systeem om softwarecontainers te beheren). Ook wordt scannen steeds vaker ingebouwd in CI/CD-pijplijnen, de geautomatiseerde processen waarmee software wordt gebouwd en uitgerold, zodat kwetsbaarheden al worden gevonden voordat code live gaat. Dit noemt men DevSecOps: beveiliging als vast onderdeel van softwareontwikkeling in plaats van een losse latere stap.
Kunstmatige intelligentie en machine learning worden steeds vaker ingezet om de vloed aan meldingen te prioriteren: welke kwetsbaarheid is het meest urgent gezien de context van een specifiek bedrijf? Dit staat echter nog volop in ontwikkeling en is geen exacte wetenschap.
De belangrijkste obstakels blijven hardnekkig. Het aantal false positives is nog altijd hoog, wat tijd kost om uit te zoeken. Het scannen van OT- en ICS-systemen, de industriële besturingssystemen die bijvoorbeeld fabrieken en energienetten aansturen, is riskant, omdat een scan een kwetsbaar of verouderd systeem soms kan laten vastlopen. Daarnaast groeit het aantal geregistreerde CVE's explosief: inmiddels worden er jaarlijks tienduizenden nieuwe kwetsbaarheden geregistreerd, wat het voor organisaties steeds lastiger maakt om alles bij te houden en tijdig te patchen. Belangrijk om te beseffen: een kwetsbaarheidsscan is een momentopname en biedt geen garantie tegen een inbraak. Nieuwe kwetsbaarheden kunnen de dag na een scan alweer ontdekt worden.
Wie werken eraan?
Aan de commerciële kant zijn Tenable (met Nessus), Qualys en Rapid7 (met Nexpose en InsightVM) grote namen. Aan de open-source kant is Greenbone Networks met OpenVAS toonaangevend, en Shodan vervult een aanvullende rol als zoekmachine voor kwetsbare apparaten.
Op het gebied van standaardisatie speelt MITRE een centrale rol als beheerder van de CVE-lijst, terwijl het Amerikaanse NIST de bijbehorende NVD (National Vulnerability Database) onderhoudt met extra details en risico-inschattingen. De Amerikaanse overheidsinstantie CISA publiceert waarschuwingen over actief misbruikte kwetsbaarheden.
In Nederland vervult het NCSC (Nationaal Cyber Security Centrum) een coördinerende rol richting overheid en vitale sectoren, en is DIVD (Dutch Institute for Vulnerability Disclosure) een non-profitorganisatie van vrijwillige onderzoekers die kwetsbaarheden opspoort en verantwoord meldt bij getroffen partijen.
Als aanvulling op geautomatiseerde scans bestaan er bug bounty-platforms zoals HackerOne en Intigriti, waar bedrijven onafhankelijke onderzoekers belonen voor het melden van kwetsbaarheden die scanners mogelijk missen, omdat menselijke creativiteit soms zwakke plekken vindt die geen enkele database kent.