Kwetsbaarheden in code
Besturingssysteemsoftware, toepassingssoftware of firmware in een embedded systeem zijn elementaire onderdelen van elke digitale infrastructuur. De toenemende versnelling en tijdsdruk in digitaliseringsprojecten leiden echter vaak tot verwaarlozing van dwingende informatiebeveiligingsaspecten. De ontwikkelingseisen voor software zijn meestal functiegericht en leggen de nadruk op constructieve aspecten, zodat de destructieve kijk op potentiële beveiligingskwetsbaarheden meestal haaks staat op de eigenlijke ontwikkelingsdoelstellingen: het ontbreekt veel programmeurs simpelweg ook aan een gestructureerde en aangescherpte kijk op cyberbeveiliging.
Onder deze omstandigheden hebben ontwikkelingsteams het moeilijk om de codering van hun software voortdurend te herzien en consequent te beveiligen, zoals blijkt uit de vele kwetsbaarheden die de non-profit MITRE Corporation elk jaar publiceert in haar CVE-lijst (Common Vulnerabilities and Exposures). De regelmatige beveiligingspatches van zelfs bekende softwarefabrikanten zijn een indicatie van de Sisypheïsche taak om veiligheidsrelevante bugs te dichten, laat staan ze te identificeren voordat ze op de markt worden gebracht.
Open broncode - een speciaal geval
Bij het coderen van zelfontwikkelde software nemen programmeurs graag hun toevlucht tot open source bibliotheken en modules. De praktische voordelen liggen voor de hand: als je het wiel niet steeds opnieuw hoeft uit te vinden, profiteer je van deze technologieboost, snelle ontwikkeling, lagere ontwikkelingskosten, meer transparantie door open broncode, en hogere interoperabiliteit door open normen en interfaces.
Er wordt ook vaak gezegd dat code uit open source een hoge mate van veiligheid biedt omdat de code door vele gebruikers is gevalideerd en de zwerm intelligentie van de open source gemeenschap een snelle en efficiënte bug fixing mogelijk maakt.
In de praktijk moet dit vertrouwen nu gedifferentieerd en kritisch worden beoordeeld. Het ernstigste voorbeeld is het zero-day beveiligingslek Log4Shell in de veelgebruikte logbibliotheek Log4J voor Java-toepassingen, dat in november 2021 werd ontdekt. U hebt wellicht gehoord van het rode waarschuwingsniveau dat door het Duitse Bundesamt für Informationssicherheit (BSI) is afgegeven voor Log4Shell. De Log4J-bibliotheek, verspreid als een betrouwbaar werkende quasi-standaard via de Apache Foundation, heeft zich sinds 2013 in veel systemen gevestigd - waaronder bekende webdiensten zoals Amazon AWS.
De complexiteit van deze goed ontwikkelde en ook onderhouden bibliotheken biedt impliciet krachtige functionaliteiten waarvan een importerende ontwikkelaar zich in zijn eigen gecombineerde nieuwe ontwikkeling vaak niet bewust is, maar die door aanvallers kunnen worden uitgebuit.
Een andere onveiligheidsfactor van open source componenten zijn de zogenaamde supply chain attacks, d.w.z. bedoelde ingebouwde kwetsbaarheden door kwaadwillenden die zich voordoen als deel van de open source gemeenschap en helpen bij de ontwikkeling van de code. Een dergelijke kwetsbaarheid is voor hackers een uiterst efficiënte manier om een groot aantal downstream gebruikersorganisaties aan te vallen. Geen wonder dus dat deze aanvalsvector snel groeit: een Sonatype-studie stelde een toename van 650% vast bij een vergelijking tussen 2020 en 2021.