Een groot en belangrijk deel van het internet is een onbetaald hobbyproject. Dat moet anders

Ot van Daalen
Gastcorrespondent Technologie

Het internet draait op opensourcesoftware die vaak beheerd wordt door vrijwilligers. Onderbetaalde hobbyisten die kwetsbaar zijn voor cyberaanvallen. En dat maakt de gebruikers (lees: wij allemaal) kwetsbaar.

In maart 2024 ontsnapte de wereld aan een cyberrampje.

Die maand ontdekte een programmeur waarom zijn computer zo traag was; Een achterdeur klinkt misschien onschuldig, maar het betekent dat aanvallers – denk aan geheime diensten of criminele bendes – op afstand een computer kunnen overnemen, kunnen meekijken, bestanden kunnen wegsluizen, financiële opdrachten kunnen geven, en ga zo maar door.

En de software waarin deze achterdeur zat, vervulde een belangrijke functie in het digitale ecosysteem: het was software waarmee je bestanden minder ruimte laat innemen. Het zat dan ook standaard geïnstalleerd op honderdduizenden, zo niet miljoenen computers. want het maakte dat al die computers opeens kwetsbaar waren.

Na zijn ontdekking waarschuwde de programmeur daarom eerst de bedrijven die deze software standaard meeleveren met hun besturingssysteem, zodat die het gat konden dichten. En op 29 maart 2024 informeerde hij de rest van de wereld.

Zo bleef de schade deze keer beperkt. Maar het probleem is: dit kan zomaar nog een keer gebeuren. En dat heeft te maken met de manier waarop die achterdeur in de software was gesneakt – een manier die aantoont hoe enorm kwetsbaar onze digitale infrastructuur is.

Gesloten of openbare broncodes

Om dat te begrijpen eerst een stoomcursus software bouwen.

Software ontwikkel je op ruwweg twee manieren: binnen een gesloten omgeving, vaak een bedrijf (denk aan Microsoft), of daarbuiten, via een open, los-vaste samenwerking over het internet.

Die eerste variant is het bekendst. Bedrijven als Apple, Microsoft en Google bouwen bijna al hun software op die manier. Duizenden mensen werken binnen zo’n bedrijf samen om een product te maken, bijvoorbeeld een app. Zij werken eerst intern aan de app, en pas als hij af is wordt de app gedeeld met gebruikers. Die kunnen het eindproduct installeren en ontvangen misschien af en toe updates.

Closed source: het schrijven van de Encyclopedia Britannica. Open source: het bijwerken van Wikipedia

Er is óók een radicaal andere manier om software te ontwikkelen, de opensource-manier. Het heet zo, omdat de source, de broncode waarmee de software wordt gebouwd, openbaar is. En omdat de broncode openbaar is, kunnen allerlei mensen meehelpen.

Dat soort software begint vaak met één of meer personen die een eerste versie online publiceren – dat zijn de beheerders van de software. Die beheerders hebben een cruciale rol in de ontwikkeling van de software. Want omdat de software openbaar is, kan iedereen verbeteringen voorstellen, maar de beheerders bepalen of zij een voorstel overnemen. Als het voorstel wordt overgenomen, dan wordt het onderdeel van de officiële versie van de software, die weer wordt gepubliceerd, et cetera.

Closed source: het schrijven van de Encyclopedia Britannica. Open source: het bijwerken van Wikipedia.

Een world wide web van afhankelijkheden

Onze digitale infrastructuur draait voor een belangrijk deel op dit soort opensourcesoftware, de Wikipedia-variant dus. En dat zijn echt niet alleen websites of besturingssystemen. Ook telefoons, wifi-antennes en bewakingscamera’s  En ja, zelfs moderne auto’s rijden deels op softwarecode die is geschreven door een groepje mensen

Dat de hele wereld draait op opensourcesoftware is niet gek, want je wilt bij het bouwen van nieuwe producten en diensten zo min mogelijk het wiel opnieuw hoeven uitvinden. Dus als iemand anders al een opensourcesoftwarepakket heeft geschreven dat doet wat je zoekt, dan gebruik je liever dat pakket dan dat je het zelf gaat bouwen.

Stel dat je bijvoorbeeld een televisie bouwt: dan wil je zo min mogelijk tijd stoppen in de software waarmee de televisie via het internet kan communiceren. Het liefst gebruik je daarvoor vrij beschikbare pakketten. Die zijn er, in de vorm van opensourcesoftware.

En ook de ontwikkelaars van opensourcesoftware zelf willen zo min mogelijk het wiel opnieuw uitvinden. Vaak maken die opensourcesoftwarepakketten zélf dus óók weer gebruik van ándere opensourcepakketten, pakketten die weer worden onderhouden door andere vrijwilligers, et cetera.

Kortom: de software van onze moderne digitale infrastructuur is een web van afhankelijkheden. En veel lijntjes in dat ecosysteem lopen naar opensourcesoftware.

Openbare software is ook kwetsbare software...

De beheerders van die opensourcesoftware, degenen die bepalen wat wordt opgenomen in de officiële versie van de software, hebben door die afhankelijkheden een serieuze verantwoordelijkheid. Als zij besluiten om iets in hun pakket te veranderen, kan dat via via doorwerken in allerlei andere software en apparaten die de software gebruiken – van televisies tot auto’s.

Nu is een van de rollen van zo’n beheerder om de verbetervoorstellen van anderen te beoordelen. Stel dat iemand bijvoorbeeld een spelfout tegenkomt in de software, dan kan diegene een verbetervoorstel indienen bij de beheerder. Die beheerder besluit vervolgens of ze dat voorstel overneemt in de officiële versie van de software.

Maar het is voor die beheerders niet altijd makkelijk om de gevolgen van bepaalde verbetervoorstellen in te schatten. Dat checken van die voorstellen kost dus tijd.

Het beheer was een ‘onbetaald hobbyproject’ van één persoon – maar wel een hobbyproject met gebruikers wereldwijd

En het gekke is: sommige beheerders doen al dat werk – dat controleren, dat verbeteren en dat accepteren – in hun vrije tijd. Óók voor software die ongelooflijk belangrijk is in het digitale ecosysteem. Óók voor software die in telefoons, televisies en auto’s zit.

En zo was het ook met het softwarepakket waarin de achterdeur verstopt zat. Het was een ‘onbetaald hobbyproject’ van één persoon – maar wel een hobbyproject met gebruikers wereldwijd. En dat hobbymatige wisten de aanvallers geraffineerd uit te buiten.

Kijk maar naar de  – alle software en wijzigingen zijn immers openbaar. Je ziet een aanvaller met veel geduld en serieuze psychologische skills. Eerst wint de aanvaller het vertrouwen van de enige beheerder van het pakket door onschuldige verbetervoorstellen te doen, het eerste in oktober 2021. Vervolgens voeren ‘anderen’ – mogelijk ook de aanvaller – de druk op, door te mailen dat de beheerder verbetervoorstellen niet snel genoeg doorvoert. Onder die emotionele druk geeft de beheerder vervolgens de aanvaller rechten om de software te beheren.

En in 2024 introduceert de aanvaller ongemerkt het achterdeurtje.

...maar we kunnen het ook anders doen

Het is een gekke situatie: de hele wereld is afhankelijk van software, de schade als het misloopt kan enorm zijn, en die software wordt soms beheerd door vrijwilligers.

Kan dat niet beter?

De Europese Commissie dacht van wel. Ze maakt zich al langer zorgen om kwetsbaarheden in software, zowel in open- als closedsourcesoftware. In 2022 stelde ze daarom nieuwe regels voor middels Zo moeten producenten beveiligingsgaten in software voorkomen, en áls er gaten worden ontdekt moeten ze die snel dichten.

De opensourcegemeenschap was echter bezorgd dat een aantal van die eisen ook zou gelden voor niet-commerciële opensourceprojecten. Ze was bang dat sommige van die projecten niet aan de administratieve verplichtingen zouden kunnen voldoen. Dat zullen vaak de meest kwetsbare vrijwilligersprojecten zijn. En dat kon weer betekenen dat 

De Europese wetgever deelde die zorgen, – zodat niet-commerciële projecten nu minder verplichtingen hebben om software veilig te houden.

De moeite waard om geld in te steken

Nu denk je misschien dat we met die Europese regels dus geen klap zijn opgeschoten om open source veiliger te krijgen. En dat klopt. Maar het maakt eigenlijk ook niet zoveel uit, want ook als de strengere beveiligingsplichten volledig zouden gelden voor opensourcesoftware, dan nog was het échte probleem niet opgelost. Het echte probleem gaat namelijk over geld.

Opensourcesoftware is een klassiek publiek goed: iedereen maakt er gebruik van, niemand wil ervoor betalen

Neem een van de belangrijkste beveiligingspakketten ter wereld, OpenSSL. Dat zit in alle financiële systemen en wordt gebruikt in alle browsers. Om je een idee te geven van hoe belangrijk dat pakket is: in 2014 werd een serieuze kwetsbaarheid in OpenSSL gevonden, en allerlei organisaties moesten direct hun systemen bijwerken. De kosten van het verhelpen van de kwetsbaarheid in al die systemen worden geraamd

Hoeveel mensen beheerden die belangrijke software?

De jaarlijkse donaties aan de twee ontwikkelaars vóór dat lek?

Het was een reden voor het Nederlandse parlement om opensourcebeveiligingssoftware zoals OpenSSL te steunen met En het is de bestaansreden voor die met donaties opensourceprojecten aanjagen.

Toch voelen dit soort initiatieven – zelfs de miljoenen die NLNet tot haar beschikking heeft – als een druppel op een gloeiende plaat. Opensourcesoftware is een klassiek publiek goed: iedereen maakt er gebruik van, niemand wil ervoor betalen.

Dat moet anders. De Europese Unie én nationale overheden moeten serieus gaan investeren in opensourcesoftware. Dat is niet alleen goed voor digitale soevereiniteit – het is ook goed voor digitale veiligheid.