Goede programmatuur is belangrijk om software goed te beveiligen tegen kwaadwillende intenties van gebruikers. Een applicatieontwikkelaar heeft bijna honderd procent kans dat zijn software wordt gehackt.
Applicaties zijn steeds vaker het doelwit van kwaadwillenden. Applicatieontwikkelaars moeten daarom applicaties maken die voldoende beveiligd zijn. Veel lekken zijn al door een juiste manier van programmeren op te lossen. Dat zei Steve Riley, senior security specialist bij Microsoft tijdens de DevDays 2008. "Softwarecode heeft een kans van bijna honderd procent doelwit te worden van kwaadwillenden."
Als applicatieontwerper moet je niet alleen uitgaan van nette gebruikers die een programma op de juiste manier gebruiken. Vaak wordt een applicatie juist op een heel andere manier gebruikt dan dat het eigenlijk zou moeten. Riley noemt dat het verschil tussen de bedoelde manier en de eigenlijke manier van gebruik. Tussen deze twee manieren zit weinig overlap. Applicatieontwerpers moeten daarom de software niet alleen testen of het functioneert bij gebruik waarvoor het bedoeld is, maar ook testen op oneigenlijk gebruik. Juist de laatse manier testen is belangrijk. Dan kom je achter zitten de fouten waar hackers gebruik van maken.
Buffer overrun
Voorbeelden die Riley noemt zijn bijvoorbeeld een buffer overrun of format string problemen. Hier zijn tools voor om deze problemen op te lossen, zoals fuzzingtools. Volgens .Net-ontwikkelaar Jorrit Venema zijn veel van deze problemen te voorkomen door de compiler te gebruiken. "Maar misschien bedoelt Riley dat je er niet van moet uitgaan dat de compiler alle problemen eruit haalt," zegt hij.
De strijd tegen hackers is een moeilijke strijd als je Riley moet geloven. Als ontwikkelaar moet je er namelijk voor zorgen dat alle fouten eruit zijn. Een hacker hoeft maar één fout te vinden. Omdat een ontwikkelaar zoekt naar zeldzame fouten kost dat hem veel werk. Een hacker hoeft niet veel te doen, er zijn veel tools die hij kan gebruiken om fouten in de software te vinden.
“Omdat een ontwikkelaar zoekt naar zeldzame fouten kost dat hem veel werk. Een hacker hoeft niet veel te doen, er zijn veel tools die hij kan gebruiken om fouten in de software te vinden.”
– vraag: en waarom doet een ontwikkelaar dan niet wat een hacker kan?
Het is absoluut zaak om software goed te testen, vandaar dat softwaretesting ook zo’n opmars heeft gemaakt de afgelopen jaren.
Een stroming binnen softwaretesting kan dan zijn dat testers met een ‘hackers’-pet op gaan testen. Het kan zelfs zo ver gaan dat een organisatie hackers inhuurt of zelf in dienst neemt om zo te waarborgen dat zij alle ontwikkelingen op het gebied van hacken bijhouden en zodoende tijdig kunnen pareren.
Hoe goed MS in testen is hebben we aan SP3 van XP gezien.