Mark Koek

Foutjes in je software? Met een hacker mindset ontdek je ze.

Laten we er niet omheen draaien: foutloze software bestaat niet. Dat ligt niet aan de programmeur, dat ligt aan de manier van kijken. Zorg voor de juiste hacker mindset en je ontdekt de foutjes eerder dan de bad guys dat doen!

Foutloze software bestaat niet

Waar gebouwd wordt, worden foutjes gemaakt. Dat geldt ook voor software. Toegegeven, in industrieën als de lucht- en ruimtevaart zijn die foutjes tot een absoluut minimum beperkt, maar als alle software aan zulke hoge eisen moet voldoen, komt er weinig van de grond. Het feit dat er fouten sluipen in applicaties, is niet dom of nalatig, het is simpelweg inherent aan de manier waarop software wordt gebouwd.

Een programmeur bouwt wat jij vraagt

Een programmeur krijgt van een opdrachtgever een aantal usecases die beschrijven wie wat met het systeem moet kunnen doen: als een gebruiker op a klikt moet er b gebeuren en als de gebruiker x invult moet er y uitrollen. Dat zijn hele concrete specificaties op basis waarvan een programmeur aan de slag gaat. Duidelijk toch?

Negatieve bedragen zijn ook bedragen

Hoe concreet de specificaties ook zijn, helemaal sluitend is het vrijwel nooit. Zo kon het gebeuren dat het bij een grote buitenlandse bank – nee, we noemen geen namen – mogelijk was om negatieve bedragen over te maken. De programmeur heeft precies gedaan wat er werd gevraagd: maak het mogelijk om in veld x een getal in te vullen, trek dat getal van het banksaldo van de rekeninghouder af en tel het op bij het banksaldo van de ontvanger. Waar niet aan werd gedacht is dat een getal met een minteken in principe ook als getal wordt geaccepteerd. Tot iemand probeerde € ‑1.000 over te schrijven en vervolgens € 1.000 rijker was. 

Andere manier van kijken

Dat wil niet zeggen dat de programmeur zijn werk niet goed gedaan heeft. Het is een manier van ergens naar kijken waar je maar net op moet komen. Vrijwel alle ontwikkelteams moeten onder forse tijdsdruk naar een deadline toewerken. Ze bouwen een applicatie volgens de specificatie, als het werkt worden er een aantal tests uitgevoerd en die gaan allemaal op groen als de software precies doet wat het moet doen. Maar daarmee dek je niet alles af. Blijkbaar is het mogelijk dat iemand die op een andere manier naar de applicatie kijkt, toch een fout vindt. 

Talent gezocht: lastige vragen stellen

Dat anders kijken’ is natuurlijk iets heel ongrijpbaars. Toch kun je dat in je proces inbedden. Of je nu op de wat meer traditionele manier werkt – de software wordt gebouwd, een acceptatietest en securitytest volgen en als de tests succesvol worden doorlopen gaat de software live – of je werkt volgens de meer Agile DevOps-ontwikkelmethode, je kunt altijd iemand bij je team betrekken die vanuit een andere hoek naar je applicatie kijkt en wiens talent het is om lastige vragen te stellen.

De kracht van de hacker mindset

Dat is precies waar onze kracht ligt: anders denken. Dat kunnen we doen door je kant-en-klare product aan een penetratietest te onderwerpen. Als je volgens de DevOps-methode werkt en dus steeds kleine releases uitbrengt, kunnen we niet met zo’n penetratietest werken. Dan haken we een tot twee keer per week aan bij je team en kijken we mee naar wat er die week gemaakt is. Wij kijken anders naar je software dan een programmeur dat doet. Wij weten hoe hackers denken en kunnen zien of jouw software daartegen bestand is. Ook kunnen we je tips geven vóór je het ontwikkeltraject ingaat. Dat is natuurlijk nog veel efficiënter omdat je zo op een andere manier naar bepaalde ontwikkelbeslissingen kunt kijken. Hoe we het ook doen, de essentie is dat jij eerder ontdekt waar de fouten in je software zitten dan dat de bad guys dat doen! 

Meer weten?

Benieuwd wat wij met onze hacker mindset voor jouw organisatie kunnen betekenen? Neem gerust contact met ons op, we denken graag met je mee.

Mark Koek, directeur HackDefense