Development

Security
shiny code

Waarom Rust niet roest en klaar is voor een opmars onder programmeurs

De behoefte aan veilig programmeren geeft Rust flinke groeipotentie.

© Shutterstock Emmily
15 maart 2021

De behoefte aan veilig programmeren geeft Rust flinke groeipotentie.

Heel snel programmeren kun je er niet mee. Ook is het niet de gemakkelijkste programmeertaal. Toch is Rust wel voor het vijfde jaar op rij de meest geliefde programmeertaal onder ontwikkelaars, althans volgens de Rust Foundation zelf. De reden: Rust behoedt ontwikkelaars voor het maken van fouten.

Aan de populariteitscijfers zou je het succes van Rust niet direct afleiden, constateert Dark Reading. In het jaarlijks overzicht van Stack Overflow onder bijna 60.000 ontwikkelaars zegt een magere 5,1% Rust te gebruiken. Maar wie het gebruikt, lijkt heel enthousiast, vooral vanwege de foutmeldingen. Rust dwingt tot het schrijven van correcte code door steeds te wijzen op fouten en suggesties te doen hoe het beter kan. De compiler stokt op sommige patronen in code die bekend staan dat ze makkelijk aanleiding geven tot buffer overflows, use-after-free kwetsbaarheden, double-free geheugenproblemen en null-pointer deferences. Daardoor zullen in code geschreven met Rust vrijwel nooit de kwetsbaarheden voorkomen die hoog scoren in de Common Vulnerability and Exposures (CVE)-lijst.

Rust is in 2006 ontwikkeld als een persoonlijk project van een werknemer van Mozilla. Tien jaar later werd de taal gebruikt voor een complete vernieuwing van de FireFox-browser. In 2019 verklaarde Microsoft Rust breed in te gaan zetten bij software-ontwikkeling, waaronder Windows. Inmiddels is de taal een opensourceproject geworden onder de Rust Foundation waaraan Microsoft, Google, Amazon en Huawei grote bijdragen leveren.

Ryan Levick, principal cloud developer advocate bij Microsoft stak in in 2019 in een blog al de loftrompet over Rust. "Wij geloven dat Rust de spelregels herdefinieert, als het aankomt op het schrijven van veilige systeemsoftware. Rust levert de prestaties en de controle om low-level systems te maken en stelt tegelijkertijd softwareontwikkelaars in staat robuuste en veilige code te schrijven."

Fouten maken blijft mogelijk

Overigens is het niet onmogelijk om met Rust slechte en onveilige code te schrijven. De taal legt beperkingen op en biedt daarom mogelijkheden om blokken code die niet passen in de voorgeschreven stramienen, te labelen als 'UNSAFE'. De compilercontrole slaat die blokken vervolgens over. Dat kan bijvoorbeeld wanneer de ontwikkelaar er zeker van is dat deze uitstap veilig geprogrammeerd is. Maar daarmee kunnen dus toch wel fouten binnensluipen in de software. Maar ook de Rust-compilercheck biedt geen absolute zekerheid omdat sommige kwetsbaarheden toch onontdekt blijven. Een overtuigend bewijs daarvan is te vinden op de site RustSec, die een lijst heeft van 250 kwetsbaarheden die met Rust kunnen worden geïntroduceerd.

Lees meer over
Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.