· 6 minuten lezen.
CWE versus CVE: het verschil in één voorbeeld
Neem CVE-2021-44228, Log4Shell. De CWE is dat wel CWE-917: expressietaalinjectie. De twee niveaus vereisen twee verschillende oplossingen.
De CVE repareren betekent het upgraden van Log4j naar versie 2.17. Het is urgent, het gebeurt in een avond en het beschermt je alleen tegen dat ene minpunt.
De CWE repareren betekent voorkomen dat binnenkomende gegevens ooit een expressie-evaluator bereiken. Het kost tijd en vraagt om een ontwerpherziening – en het beschermt je ook tegen de volgende drie gebreken van dezelfde familie, inclusief de gebreken die nog geen nummer hebben.
Eén enkele CWE bestrijkt duizenden CVEs. Daarom beschrijft een beveiligingsrapport dat alleen over CVEs spreekt een momentopname en nooit een trend.
De zwakke punten waar je het meest tegenaan zult lopen
Een handvol CWE's is verantwoordelijk voor een groot deel van de gepubliceerde CVEs. Voor elk ervan maakt een bekend voorbeeld het idee concreet:
| CWE | Zwakte | Wat de aanvaller krijgt | Bekend geval |
|---|---|---|---|
CWE-79 | Cross-site scripting (XSS) | Voer code uit in de browser van een andere gebruiker | Talloze CMS- en plug-infouten |
CWE-89 | SQL-injectie | Lees of wijzig de database | CVE-2023-34362 (MOVEit) |
CWE-787 | Buiten de grenzen schrijven | Corrupt geheugen, vaak helemaal tot aan de uitvoering van de code | Browser- en netwerkstackfouten |
CWE-22 | Pad doorlopen | Bestanden lezen buiten de beoogde directory | Edge-apparaat- en VPN-fouten |
CWE-352 | Vervalsing van cross-site verzoeken (CSRF) | Laat een ingelogde gebruiker handelen zonder dat hij het weet | Slecht beveiligde beheerdersinterfaces |
CWE-862 | Ontbrekende autorisatie | Een functie bereiken zonder dat dit mag | Zeer vaak voorkomende API-fouten |
CWE-416 | Gebruik daarna gratis | Uitvoering van het kapingprogramma | Motorfouten weergeven |
CWE-78 | OS-opdrachtinjectie | Voer opdrachten uit op de server | Apparaat- en routerfouten |
CWE-917 | Expressietaalinjectie | Voer code uit via een geïnterpreteerde tekenreeks | CVE-2021-44228 (Log4Shell) |
De volledige lijst bevat meer dan 900 vermeldingen, hiërarchisch georganiseerd: van zeer algemene pijlers tot zeer specifieke varianten. Het is beschikbaar op cwe.mitre.org; we dupliceren de 900 rijen hier niet, omdat ze je niets zouden leren van de officiële catalogus.
De CWE Top 25: waar hij echt voor is
Elk jaar publiceert MITRE de CWE Bovenste 25 gevaarlijkste zwakke punten, gerangschikt door de frequentie van geassocieerde CVEs te combineren met hun ernst. In de editie van 2024 CWE-79 (XSS) staat weer bovenaan, vóór CWE-787 (buiten het bereik schrijven) en CWE-89 (SQL-injectie).
Deze ranglijst is niet bedoeld om te beslissen wat er deze week moet worden opgelost: het is om te beslissen waar een team op moet worden getraind en waarop de statische analysehulpmiddelen moeten worden afgestemd. Het is een preventie-instrument, geen alarmtriage-instrument; deze twee worden vaak door elkaar gehaald, en dat verspilt aan beide kanten tijd.
De CAPEC-, CWE-, CVE-keten
Drie catalogi, drie vragen: an aanvalspatroon (CAPEC) beschrijft hoe het gedaan wordt, a zwakte (CWE) beschrijft de fout wordt uitgebuit, a kwetsbaarheid (CVE) beschrijft waar die fout eigenlijk zit.
Toegepast op Log4Shell: code-injectie (CAPEC-242) → expressietaalinjectie (CWE-917) → Log4j 2.0 tot 2.14.1 (CVE-2021-44228). Door in deze richting te lezen, kun je anticiperen; als je de andere kant op leest, kun je reageren.
Wat het voor u betekent, in de praktijk
Drie toepassingen die passen in een teamvergadering:
- Tel uw CVEs bij CWE gedurende de afgelopen twaalf maanden. Als
CWE-862acht keer verschijnt, heb je geen acht bugs: je hebt een ontwerpprobleem met toegangscontrole. - Stem uw analysetools af naar de drie meest voorkomende CWE's in uw code in plaats van naar de 900-standaardregels. Het percentage fout-positieve resultaten daalt en het team negeert de rapporten niet meer.
- Zet de CWE in het ticket, niet alleen de CVE. De ontwikkelaar die het repareert, begrijpt dan wat hij elders niet opnieuw moet schrijven.
Veelgestelde vragen
Hoeveel CWE's zijn er?
Meer dan 900, georganiseerd als een hiërarchie (pijlers, klassen, bases, varianten). Slechts een honderdtal komen regelmatig voor in de gepubliceerde CVEs: dat zijn degenen waar we ons op moeten concentreren.
CWE of CVE om de applicatiebeveiliging te verbeteren?
CWE voor preventie, omdat het een reeks fouten beschrijft die u tijdens de ontwerpfase kunt elimineren. CVE voor reactie, omdat het een specifieke fout identificeert die in een specifiek product moet worden opgelost. Beide, nooit het één in plaats van het ander.
Kan een CVE meerdere CWE's hebben?
Ja, en het is gebruikelijk. Een exploitketen combineert vaak een autorisatiezwakte met een injectie. De records vermelden vervolgens verschillende CWE's; de eerstgenoemde is meestal de meest directe oorzaak.