Computerwetenschapper Elia Geretto optimaliseerde een belangrijke tool die helpt software te beveiligen.
Programma's hebben kwetsbaarheden die door een aanvaller kunnen worden gebruikt om controle te krijgen over de computers waarop ze draaien. Dit betreft vaak eenvoudige fouten die programmeurs hebben gemaakt bij het schrijven van code. Om deze te elimineren, beoordelen en testen beveiligingsexperts code om kwetsbaarheden te vinden en te verhelpen. Experts gebruiken vaak tools die dit proces gedeeltelijk kunnen automatiseren, zodat ze meer code met minder moeite kunnen verkennen.
Fuzzers
Het onderzoek van computerwetenschapper Elia Geretto richt zich op het verbeteren van fuzzers, een van zulke tools. Specifiek maakt het ze sneller. Het kernprincipe van een fuzzer is om willekeurige input aan een programma te geven en te kijken hoe het zich gedraagt. De snelheid van zo’n fuzzer is een zeer belangrijke eigenschap, omdat een snellere fuzzer meer willekeurige input kan genereren en zo het programma grondiger kan testen.
De belangrijkste conclusie die Geretto uit zijn onderzoek kan trekken is dat de optimalisaties die hij voorstelt voor drie specifieke soorten fuzzers, namelijk snapshot fuzzers, hybride fuzzers en gerichte fuzzers, hun snelheid verhogen. Bovendien heeft hij aangetoond dat de behaalde snelheidsverhogingen resulteren in fuzzers die programma's grondiger kunnen verkennen. Tenslotte laat hij zien dat het bouwen van snelle fuzzers ook helpt bij het trekken van passende conclusies bij het evalueren van andere optimalisaties, omdat hun effect varieert met de snelheid.
Telefoons en laptops
Geretto's onderzoek is belangrijk voor beveiligingsonderzoekers. Zijn optimalisaties zijn allemaal online openbaar toegankelijk en kunnen worden geïntegreerd in bestaande fuzzers om ze sneller te maken. Deze verbeterde fuzzers zullen beveiligingsonderzoekers helpen code grondiger te beoordelen en zo het aantal kwetsbaarheden in uitgegeven software te verminderen.
Minder kwetsbaarheden in software betekent bovendien dat de bevindingen ook invloed hebben op algemene gebruikers. Zowel de apparaten die we dagelijks gebruiken, zoals telefoons en laptops, als de servers in de cloud die onze gegevens beheren, zullen veiliger worden.
Geretto's onderzoek kan grofweg in vier stappen worden verdeeld: ten eerste ontwierp hij een optimalisatie waarvan hij dacht dat deze de snelheid van een bestaande fuzzer zou kunnen verbeteren. Vervolgens implementeerde hij die optimalisatie door code te schrijven om die bestaande fuzzer te wijzigen. Daarna voerde hij experimenten uit om de prestaties van de fuzzer met en zonder de optimalisatie te vergelijken. Tenslotte analyseerde hij de verzamelde gegevens met statistische methoden om te bewijzen dat zijn optimalisatie de prestaties van de fuzzer inderdaad verbeterde.
Meer informatie over het