Jaren geleden hoorde ik tot mijn grote (en naïeve) verbazing dat er geen belletje gaat rinkelen (of een ander waarschuwingssignaal) als een programmeur in de fout gaat. Er zijn inmiddels steeds meer hulpmiddelen gekomen om fouten in programma’s te voorkomen, maar die zijn allerminst feilloos gegeven de baaierd aan fouten waarin nieuwe (versies van) toepassingen en besturingssystemen telkens weer op de proppen komen. Programmeertaal Rust zou de meest opzichtige fouten, die, onder meer, kunnen leiden tot lekken, kunnen voorkomen.
Twaalf jaar geleden begon Rust als bijproduct van een Mozilla-onderzoeker (Mozilla is onder meer maker van Firefox en Thunderbird). C is nu al bijna vijftig jaar en tegenwoordig veel gebruikt. Rust zou minder fouten maken en, niet onbelangrijk, werkt niet trager.
Die taal wordt steeds populairder. Microsoft, Google en Amazon gebruiken die al sedert 2019. De techbedrijven richtten met Mozilla en Huawei in 2020 een stichting op die het gebruik bevordert. Ook Linux, een open besturingssysteem, werkt er sedert kort mee.
Rust heet een ‘geheugenveilige’ taal te zijn. Die zit zo in elkaar dat het niet mogelijk is in een programma om ‘per ongeluk’ onbedoeld gegevens uit het geheugen te halen. In bijvoorbeeld C en C++ moet dat steeds tijdens het programmeren gecontroleerd worden. Met Rust zou zelfs een beginnende programmeur er verzekerd van zijn dat hij zulke fouten niet maakt/kan maken.Deze fouten maken een groot deel uit van de kwetsbaarheden in programmatuur die worden gevonden. Dat er nu een Rust is maakt dan ook veel uit voor de veiligheid van digitale systemen.
Werken met Rust bleek ook geen problemen te geven zoals was gevreesd bij het overschakelen op een andere programmeertaal. Probleem is en blijft natuurlijk dat je bij het programmeren van nieuwe versies niet het hele programma van voor af aan schrijft.
Je breit er steeds stukjes aan en die stukjes kunnen wel eens botsen met eerder geschreven code. Zo’n bouwwerk kan, net als een steeds hogere blokkenstapel, gaandeweg steeds gammeler worden. Fouten die eerder niet opvielen in de oude code, kunnen later een probleem worden.
Strategie
De strategie is om met verbeteringen in de veiligheid te beginnen in de belangrijkste onderdelen van een toepassing en van daaruit verder te werken. “Dat is een hoop werk”, stelt Josh Aas van de Internet Research Security Group, “maar techbedrijven hebben biljoenen en programmeurs. Wij hebben de middelen. Problemen die louter bestaan uit veel werk zijn geweldig.”
Bron: Wired