De fouten ontstaan doordat ontwikkelaars in een programmeertaal coderegels schrijven die niet of niet goed worden omgezet in machineleesbare code door de bijbehorende compiler. Doorgaans is het probleem dat de ontwikkelaar zich niet helemaal aan de regels houdt en daardoor optimization-unstable code levert. Op zich hoeft deze code geen veiligheids- of functioneel probleem op te leveren. Echter doordat de compiler de coderegels niet snapt, slaat hij ze over waardoor de kwetsbaarheid kan ontstaan.
De compilers geven lang niet altijd feedback aan de ontwikkelaar over deze missers.
160 bugs in verschillende programma's opgespoord
Het probleem doet zich vooral voor bij programma's geschreven in C++ of een andere lage orde taal, zegt Xi Wang, onderzoeker aan het Massachusetts Institute of Technology (MIT) in zijn voordracht op de USENIX-conferentie. Hij vond zo meer dan 160 bugs in verschillende programma's waaronder 11 in het open source Kerberos network authentication protocol. Ook in de PostgreSQL database werden 68 fouten gevonden die op deze manier waren geïntroduceerd. De gevonden bugs zijn inmiddels allemaal hersteld.
Wang en zijn medewerkers hebben software geschreven die ontwikkelaars kan helpen bij het opsporen van dergelijke onstabiele code in c en C++. De software genaamd Stack is onder een open source licentie vrij verkrijgbaar in de Github-verzameling.
Reacties
Om een reactie achter te laten is een account vereist.
Inloggen Word abonnee