← Nieuwste papers
💻 computer science

Vulnerability Abundance: A formal proof of infinite vulnerabilities in code

Dit artikel presenteert een formeel bewijs dat een enkel C-programma, de 'Vulnerability Factory', een oneindig aantal kwetsbaarheden kan bevatten, en introduceert het concept van 'kwetsbaarheids-overvloed' om de verdeling en dynamiek van deze kwetsbaarheden in software te analyseren.

Oorspronkelijke auteurs: Eireann Leverett, Jeroen van der Ham-de Vos

Gepubliceerd 2026-04-10
📖 4 min leestijd☕ Koffiepauze-leesvoer

Oorspronkelijke auteurs: Eireann Leverett, Jeroen van der Ham-de Vos

Oorspronkelijk artikel gelicentieerd onder CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dit is een AI-gegenereerde uitleg van het onderstaande artikel. Het is niet geschreven of goedgekeurd door de auteurs. Raadpleeg het oorspronkelijke artikel voor technische nauwkeurigheid. Lees de volledige disclaimer

De Oneindige Fabriek: Waarom er altijd meer gaten in software zullen zijn

Stel je voor dat je een fabriek bouwt die gaten maakt in muren. Maar niet zomaar gaten. Deze fabriek is zo slim ontworpen dat hij elke keer als je hem aanzet, een nieuwe, unieke muur bouwt met een nieuw, uniek gat erin.

Dat is precies wat deze wetenschappers hebben gedaan. Ze hebben een computerprogramma geschreven (een stukje code) dat ze de "Vulnerability Factory" (Gatenfabriek) noemen. Hun grote ontdekking is dit: Deze fabriek kan oneindig veel verschillende gaten maken.

Hier is hoe het werkt, vertaald naar alledaagse taal:

1. De Magische Machine (De Bewijslast)

Stel je een bakker voor die broodjes bakt. Normaal maakt hij één soort broodje. Maar deze bakker heeft een magisch recept.

  • Hij begint met een basisrecept (een paar bekende fouten in code).
  • Elke keer als hij een broodje bakt, verandert hij één ding: hij maakt het broodje net iets groter, of voegt een extra korst toe, of verandert de vulling.
  • Omdat hij dit proces oneindig kan herhalen, maakt hij oneindig veel verschillende broodjes.

In de computerwereld betekent dit: het programma maakt oneindig veel verschillende software-bestanden. Elk bestand heeft een klein foutje (een "kwetsbaarheid" of vulnerability). Omdat elk bestand uniek is, is elk foutje uniek.
Conclusie: Er zijn niet gewoon "veel" gaten in software; er zijn oneindig veel. Je kunt ze niet allemaal tellen, net zoals je niet alle getallen kunt tellen.

2. De Verwarring: Oneindig Gaten vs. Oneindig Dieven

Nu komt het belangrijkste deel. Veel mensen denken: "Oh nee! Als er oneindig veel gaten zijn, zijn we allemaal verloren!"
Maar de auteurs zeggen: "Nee, wacht even."

Stel je voor dat er een oneindig grote oceaan is (alle gaten in de wereld). Maar er zijn maar een paar boten (de hackers die de gaten gebruiken).

  • Oneindig veel gaten: Ja, dat klopt. Er zijn oneindig veel manieren waarop software kapot kan gaan.
  • Oneindig veel diefstallen: Nee. Slechts een heel klein percentage van die gaten wordt ooit gebruikt door hackers.

De auteurs zeggen dat minder dan 6% van alle bekende gaten ooit echt wordt gebruikt om iets te stelen. Waarom? Omdat het maken van een "sleutel" (een hack) om een specifiek gat open te maken, heel veel werk is. Het is als het maken van een sleutel voor een deur die niemand gebruikt. Waarom zou je dat doen?

3. De "Chemische" Metafoor: De Abondantie van Gaten

De auteurs introduceren een nieuw woord: Vulnerability Abundance (Overvloed van kwetsbaarheden). Ze vergelijken dit met chemie.

  • In de natuur: Er is veel waterstof in het heelal, maar heel weinig goud. Dit noemen we de "overvloed".
  • In software: Sommige soorten gaten komen heel vaak voor, andere bijna nooit.
    • Als je programmeert in C (een oude taal), is het alsof je in een goudmijn werkt waar je overal gaten in de muur ziet (geheugenfouten).
    • Als je programmeert in Python of Rust (modernere talen), zijn er minder gaten in de muur, maar zijn er andere soorten gaten (zoals fouten in de logica of inlogproblemen).

De boodschap is: De taal die je kiest, bepaalt welk soort "gaten" je krijgt. Als we allemaal overstappen op veiligere talen, verdwijnt het ene soort gat, maar komen er andere voor in de plaats.

4. Waarom is dit belangrijk voor jou?

Je zou denken: "Oké, er zijn oneindig veel gaten. Wat moet ik daar mee?"

De auteurs zeggen: Stop met proberen elk gat te dichten. Dat is onmogelijk, net als het proberen te tellen van alle zandkorrels op het strand.
In plaats daarvan moeten we kijken naar risico:

  • Een gat in een systeem dat 90% van de wereld gebruikt (zoals Windows of een populaire webbrowser) is gevaarlijker dan 1000 gaten in een systeem dat niemand gebruikt.
  • Hackers zijn slim: ze zoeken niet naar alle gaten, maar alleen naar de gaten in de populairste systemen.

De les voor de toekomst:
We moeten niet panikeren omdat er "oneindig veel gaten" zijn. We moeten in plaats daarvan kijken naar de verdeling:

  1. Welke talen gebruiken we? (Zorgen ze voor veel gaten?)
  2. Welke systemen zijn het populairst? (Zorgen ze dat hackers zich op die gaten richten?)
  3. Hoe kunnen we de "chemie" van onze software veranderen zodat de gevaarlijkste gaten verdwijnen?

Samenvatting in één zin

De auteurs hebben bewezen dat er oneindig veel manieren zijn om software kapot te maken, maar dat hackers slechts een handjevol van die manieren gebruiken; daarom moeten we ons niet richten op het dichten van elk gat, maar op het begrijpen van welke gaten het gevaarlijkst zijn en welke systemen het meest kwetsbaar zijn.

Het is alsof je niet elke steen op de oceaanvloer kunt ophalen, maar je wel moet weten waar de stroming naartoe gaat om niet te verdrinken.

Verdrinkt u in papers in uw vakgebied?

Ontvang dagelijkse digests van de nieuwste papers die bij uw onderzoekswoorden passen — met technische samenvattingen, in uw taal.

Probeer Digest →