Kwetsbaarheden in softwareproductie

Kwetsbaarheden in softwareproductie: Speuren naar de herkomst van code

Alle softwarecode ter wereld in kaart brengen. Dat is het uitgangspunt van het onderzoek van Slinger Jansen, dat in samenwerking met vier Nederlandse universiteiten en het bedrijf Software Improvement Group wordt uitgevoerd. Jansen speurt naar kwetsbaarheden in massasoftware door middel van kunstmatige intelligentie. “Software-ingenieurs moeten op de hoogte zijn van de software waar ze mee werken. Ze moeten met zekerheid kunnen stellen dat code en onderdelen ervan niet gekopieerd zijn, goed geschreven zijn en niet afhankelijk zijn van kwetsbaarheden. Een snelle, wereldwijde database van alle openbaar beschikbare softwarebroncode maakt schadelijke varianten eenvoudiger vindbaar.”

 

Compleet inzicht in de herkomst van software met een handige index

Uiteindelijk moeten gebruikers de database input kunnen geven en direct feedback krijgen. “Waar wordt de code al gebruikt en wat is de bron? Dat zijn vragen die we kunnen ondervangen. Als we weten waar de code vandaan komt, kunnen we de software end-to-end veilger maken. Met het gebruik van metadata en patroonherkenningstechnieken herkennen we kwetsbaarheden sneller.” Momenteel vertrouwen mensen vaak volledig op het software-ecosysteem. “Dat is gebaseerd op aannames. En dat is gevaarlijk. Er is vaak geen enkele garantie dat de broncode van de software veilig is. Wij kunnen een belangrijke rol spelen in die keten van vertrouwen.”

Een poortwachter voor softewarecode voor een veiliger ecosysteem

Het project zit in feite tussen de softwaredeveloper die softwarecode ontwikkelt, afrondt en naar GitHub stuurt en waar die code uiteindelijk gebruikt wordt. De code gaat door de systemen heen en dan krijgt de developer meteen feedback. Als een code al ergens gebruikt wordt, wordt de developer direct op de hoogte gesteld. “Maar ook als er een kwetsbaarheid in de geschreven code staat, geeft het systeem het aan. En het vraagt meteen waarom er niet gekeken is naar een betere optie. We kunnen zelfs zien hoeveel energie er gemoeid is en een groenere optie aanbevelen.”

Zelflerende softwaresystemen en slimme AI-technieken

Kunstmatige intelligentie speelt hier een belangrijke rol in. Onder andere met codemutatie wordt er gekeken naar welke kwetsbare code in een project terug te vinden is. Zelfs als die code erg lijkt op code die wel veilig is. “Slim verpakte kwetsbaarheden mogen niet zonder meer toegevoegd worden aan het systeem. Wij willen zorgen dat die bijdragen herkend kunnen worden, zodat ze het ecosysteem niet meer kunnen vergiftigen. Uiteindelijk willen we kijken of we dit met machine learning kunnen automatiseren. Het systeem ontdekt dan zelf welke aanpassingen leiden tot een veiliger of minder veilig software-ecosysteem.”

Kwaadwillend of simpelweg onwetend: met een snelle zoekmachine voor softwarecode, krijgen softwareontwikkelaars meer tools om hun producten te verbeteren. En krijgt de eindgebruiker een veiliger gevoel in het gebruik van allerhande technologieën. “Wij willen het vertrouwen in software terugbrengen. Ons systeem gaat ervoor zorgen dat schadelijke software het systeem niet meer binnendringt. En dat gaan we dus op wereldwijde schaal aanleggen.”