Vorig jaar werden er elke dag gemiddeld 47 nieuwe kwetsbaarheden in allerlei soorten software geregistreerd. Dit jaar staat de teller al op een gemiddelde van 52 lekken per dag. Om de continue stroom aan kwetsbaarheden bij te houden werd de Common Vulnerabilities and Exposures (CVE)-lijst bedacht.
Met alleen al in 2019 meer dan 17.000 unieke kwetsbaarheden is een registratiesysteem niet voldoende. Het moet ook duidelijk zijn wat de impact van een kwetsbaarheid is. Het ene lek is tenslotte niet het andere lek. Daarvoor werd het Common Vulnerability Scoring System (CVSS) in het leven geroepen. CVE en CVSS spelen een belangrijke rol in hoe bedrijven, beheerders en onderzoekers met kwetsbaarheden omgaan en in dit artikel gaan we hier dieper op in.
Al sinds mensen software schrijven worden er fouten gemaakt, die tot bugs en kwetsbaarheden kunnen leiden. Ontwikkelaars komen vervolgens met een beveiligingsupdate voor het betreffende lek. Voor 1999 lieten ontwikkelaars wel weten dat er een kwetsbaarheid was verholpen, maar deze lekken waren vaak niet van een identificeerbare code voorzien. Securitybedrijven en andere partijen die beveiligingslekken monitoren gaven deze kwetsbaarheden in hun eigen databases en tooling elk een eigen naam. Hierdoor was het onduidelijk of securityproducten het over hetzelfde probleem hadden en was er geen gestandaardiseerde basis om ze te vergelijken.
In 1999 lanceerde de MITRE Corporation daarop de Common Vulnerabilities and Exposures (CVE)-lijst. CVE voorziet elke kwetsbaarheid van een uniek nummer. Dit maakt het eenvoudiger om kwetsbaarheden te volgen, informatie uit te wisselen en beveiligingsproducten te beoordelen. Het CVE-nummer begint met de letters CVE, gevolgd door een jaartal en een getal van vijf cijfers. In eerste instantie waren ervoor dit getal vier cijfers gereserveerd. Hierdoor was het echter mogelijk om maximaal 9999 kwetsbaarheden in een jaar te registreren. Vanwege het toenemend aantal gevonden beveiligingslekken werd daarop in 2015 een nieuwe versie met vijf cijfers van kracht.
CVE-nummers worden uitgegeven door een CVE Numbering Authority (CNA). MITRE is de primaire CNA. Vervolgens zijn er CNA's die alleen voor hun eigen kwetsbaarheden CVE-nummers uitgeven. Het gaat om bedrijven als Adobe, Apple, Google en Microsoft. Op dit moment zijn er meer dan 120 CNA's actief. Het grootste deel daarvan betref bedrijven. Daarnaast zijn er verschillende "Coordination Centers" die CVE-nummers aanvragen voor kwetsbaarheden die niet door de andere CNA's worden gedekt.
CNA's kunnen een CVE-nummer vragen voor een actueel beveiligingslek, maar het is ook mogelijk om een reeks van CVE-nummers te reserveren en die pas op een later moment te gebruiken. Het allereerste CVE-nummer, CVE-1999-0001, was voor een beveiligingslek in BSD. Beveiligingsbedrijven en overheidsinstanties maken in hun rapporten vaak melding van kwetsbaarheden die aanvallers gebruiken. Bekende voorbeelden CVE-2010-2568 (Windows-lek gebruikt door Stuxnet), CVE-2012-0158 (Microsoft Office-lek gebruikt via e-mailbijlagen), CVE-2017-0144 (Windows-lek gebruikt door WannaCry) en CVE-2019-19781 (Citrix-lek). Onlangs publiceerde het Amerikaanse Cybersecurity and Infrastructure Security Agency (CISA) nog een Top 10 van meest aangevallen CVE-nummers van de afgelopen jaren.
CVE maakt het mogelijk om kwetsbaarheden te identificeren en te volgen, maar het zegt niets over hoe ernstig een beveiligingslek is. Een lek waardoor een lokale gebruiker een denial of service kan veroorzaken is veel minder ernstig dan een kwetsbaarheid waardoor een aanvaller op afstand en zonder interactie van de gebruiker systemen kan overnemen.
Om de impact van een kwetsbaarheid inzichtelijk te maken kwam het Amerikaanse National Infrastructure Advisory Council (NIAC) in 2004 met het Common Vulnerability Scoring System (CVSS). CVSS biedt een gestandaardiseerde manier om de impact van een kwetsbaarheid te berekenen. Sinds 2005 is het CVSS ondergebracht bij het Forum of Incident Response and Security Teams (FIRST).
Een CVSS-score bestaat uit een schaal van 1 tot en met 10, waarbij 10 de maximale score is. De score is uit verschillende onderdelen opgebouwd. Zo wordt gekeken wat de aanvalsvector is (lokaal, fysiek of netwerk), hoe lastig het is om misbruik van de kwetsbaarheid te maken, of er interactie van de gebruiker is vereist en of de aanvaller over bepaalde permissies moet beschikken om de aanval uit te voeren. Verder wordt er ook gekeken wat de gevolgen van de kwetsbaarheid zijn voor de beschikbaarheid, vertrouwelijkheid en integriteit van informatie of het systeem.
Dit leidt tot een "basisscore" die kan worden aangevuld met een tijdelijke score, bijvoorbeeld de beschikbaarheid van exploitcode, en een omgevingsscore, die specifiek voor de organisatie van een gebruiker is. Organisaties kunnen zo zien welke kwetsbaarheden de grootste prioriteit moeten krijgen. Beveiligingslekken met een basisscore van 10 komen geregeld in het nieuws. Desondanks gaat het hier niet om uitzonderingen. Dit jaar zijn er al ruim tweehonderd van dergelijke beveiligingslekken geregistreerd. Om de CVSS-score te berekenen biedt FIRST een aparte calculator.
Naast het gebruik van CVE-nummers en CVSS zijn er de afgelopen jaren ook tal van beveiligingsonderzoekers en securitybedrijven geweest die door hen gevonden kwetsbaarheden voorzagen van namen, logo's en aparte websites. Ernstige kwetsbaarheden kunnen de nodige media-aandacht genereren. Bekende voorbeelden van de afgelopen jaren zijn Heartbleed, POODLE, Row hammer, Stagefright, Dirty COW, EternalBlue, KRACK, Ghost, BlueBorne, Meltdown, Spectre, EFAIL, RIDL, ZombieLoad, BEAST, FREAK, BlueKeep, Kr00K, SigRed, BadUSB, ShellShock.