Is mijn software kwetsbaar?

augustus 2022

Je website, webshop of webapplicatie is verbonden met het internet. Dit houdt in dat in de meeste situaties dit systeem bereikbaar is voor een groot publiek. Is je systeem daarmee kwetsbaar of zal het wel wat meevallen?


Is mijn software kwetsbaar?

Je gebruikt waarschijnlijk een computer voor je bedrijf. Je verwerkt daarmee contactgegevens, bestellingen, e-mails, project documenten, facturen et cetera. Naast jouw eigen computer hebben ook je collega's waarschijnlijk een computer of worden ze gedeeld tussen jou en collega's. Daarnaast heeft je bedrijf een website en wellicht diverse applicaties voor de verwerking en automatisering van bepaalde processen. Klanten en andere internet gebruikers kunnen vaak ook gebruik maken van een deel van deze faciliteiten.

Je werkt wellicht bij een relatief klein bedrijf in vergelijking met andere grote bedrijven, dus moet jij je eigenlijk wel zo druk maken om beveiliging en periodiek de veiligheid testen? Niemand die je kent is ooit gehacked (of in ieder geval hebben ze het je nooit verteld of doorgehad) en je hebt ook niet iets van echte waarde op je website, want dat staat allemaal op jouw computer. Waar zou je je druk om maken?

Er zijn een hoop kwaadwillende internetgebruikers met uiteenlopende motieven en doelen. De een wil je geheimen stelen, een ander wil je computers en je netwerk gebruiken voor aanvallen op anderen, een ander wil je website uit de lucht halen en weer een ander wil alleen maar opscheppen tegen vrienden dat het gelukt is in te breken. Over het algemeen kan het een hacker weinig schelen wat de grootte en status van je bedrijf is.

Daarnaast zijn er ook een hoop bots die automatisch het hele internet doorzoeken naar kwetsbare systemen en hierop inbreken zonder dat ze specifiek jouw bedrijf als doel hebben.

Mijn software beschermen

Er zijn veel verschillende onderdelen die nodig zijn om je software te laten werken en die stuk voor stuk goed geconfigureerd, geschreven en bijgehouden moeten worden.

Hosting

Wanneer je een server hebt of huurt moet je voortdurend nadenken over beveiligingsmaatregelen. Een hostingpartij zal je veelal de opties geven om dit te bewerkstelligen maar je zult zelf moeten weten wat je wel en niet doet, op welke manier en beoordelen of dit op de juiste manier geconfigureerd is. Het is natuurlijk ook belangrijk om te kijken of je geen dingen dubbel doet of dat er een efficiëntere/goedkopere manier is met hetzelfde resultaat. Het is boven alles belangrijk dat je weet wat je doet of deze kennis ontvangt via een adviesrapport van een expert. 

De locatie waar je gegevens worden opgeslagen bepaalt natuurlijk mede het niveau van gegevensbescherming en -beveiliging. Is de hostingpartij bijvoorbeeld ISO 27001-gecertificeerd dan betekent dit dat je data volledig vallen onder de strenge europese privacywetgeving.

Geinstalleerde software

Je server kan nog zo goed beveiligd zijn, wanneer geinstalleerde programma's niet goed zijn geconfigureerd introduceert dit onmiddelijk weer nieuwe risico's. Denk bijvoorbeeld aan backup-software wat de backups op een onveilige manier verstuurd naar een externe locatie.

Opensource pakketten

Veel software maakt gebruik van opensource pakketten zodat een programmeur niet bij alles het wiel opnieuw hoeft uit te vinden. Deze pakketten bestaan vaak uit duizenden tot miljoenen regels code. Iedereen kan een foutje maken en wanneer een kwetsbaarheid gevonden is dan maakt de uitgever van het pakket een 'patch' om deze kwetsbaarheid te verhelpen.

Het is dus belangrijk dat we een bron hebben waar deze pakketten vandaan komen. Wanneer je slechts 1 bron hebt is het misschien al genoeg om de release-pagina van de maker periodiek te raadplegen. Wanneer je pakketten van meerdere makers hebt wordt dit lastiger en moet je meerdere release-pagina's in de gaten houden of een systeem vinden die deze gegevens voor je kan verzamelen.

Eigen ontwikkelde software

Het is belangrijk dat de code-kwaliteit van je software goed is. Is dit niet het geval, dan nemen de voorspelbaarheid, functionaliteit en veiligheid van jouw software af terwijl de foutgevoeligheid toeneemt. Je kan er niet meer op vertrouwen dat de software het op de juiste momenten doet en zodra gegevens op straat liggen is dit onomkeerbaar. Tijdens het ontwikkelen moet je daarom met veel onderdelen constant rekening houden zoals input/output, headers, validatieregels, tabnapping, veilige sql statements, et cetera.

Door het toepassen van versiebeheer, pair-programming, code-reviews en security scans kan de code-kwaliteit zoveel mogelijk geborgd worden. Door ook periodiek een externe pen- en hacktest uit te laten voeren krijg je een goed beeld hoe goed je software beschermd tegen aanvallen.

Een pen- en hacktest heeft vaak de volgende niveaus:

  • blackbox (de tester heeft geen voorkennis van systeem en architectuur);
  • graybox (de tester heeft rechten van een ingelogde gebruiker en eventueel hogere rechten);
  • whitebox (de tester heeft toegang tot alle gebruikersrechten, documentatie en broncode).

Gebruikersbeheer

Gebruikersbeheer is nog steeds een van de meest voorkomende beveiligingsrisico's van je systeem. Hier blijven vaak gebruikers in staan die helemaal geen rechten meer zouden moeten hebben (collega's die niet langer in dienst zijn), gebruikers die de verkeerde rechten hebben omdat er niet goed en/of automatisch periodiek gecontroleerd wordt op reeds toegewezen rechten, wachtwoorden die maandenlang niet veranderd worden, et cetera.

Maar het meest waarschijnlijke is nog het kiezen van een makkelijk te raden wachtwoord. Dankzij onze emotie voor dingen die we leuk vinden, is de kans groot dat gekozen wachtwoorden gebaseerd zijn op onze interesses, hobby’s, huisdieren, familie, enzovoort. In feite zijn wachtwoorden meestal gebaseerd op alle dingen waar we graag over praten op sociale media en zelfs in onze profielen opnemen. Wachtwoordkrakers kijken zeer waarschijnlijk naar deze informatie en maken een paar – vaak correcte – goed onderbouwde 'gokjes' wanneer ze proberen een wachtwoord te kraken zonder rainbow tables of brute force technieken te hoeven gebruiken.

Mocht je geen extra beveiliging hebben ingebouwd zoals ip-filters of multi-factor authenticatie dan kan in bovenstaand voorbeeld een hacker direct zijn schade aanrichten.

Tot slot

Jij bent verantwoordelijk voor de verwerking van persoonsgegevens en andere vertrouwelijke informatie die je ontvangt van klanten, collega's en partners. Wanneer dit fout gaat brengt dit je bedrijf, groot of klein, in gevaar. Met een goede basis, een zorgvuldig gedocumenteerde werkwijze en periodieke controles zorg je er voor dat jij en je klanten goed beschermd blijven tegen kwaadwillende gebruikers. Wanneer je dit goed inricht of met behulp van een externe expert hoeft dit niet duur te zijn en geeft het rust en optimale focus op de doelstellingen van je bedrijf.