Skip to content

Als product owner ben je verantwoordelijk voor het leveren van een product dat voldoet aan de behoeften en verwachtingen van je klanten, terwijl je er ook voor zorgt dat het veilig en betrouwbaar is. Veiligheid is niet slechts een functie die je later kunt toevoegen; het is een fundamenteel aspect van je product dat invloed heeft op de kwaliteit, bruikbaarheid en reputatie ervan.

Echter, veiligheid kan ook uitdagend en complex zijn, vooral in het dynamische en evoluerende bedreigingslandschap van vandaag. Hoe kun je ervoor zorgen dat je product beschermd is tegen mogelijke aanvallen, zonder de functionaliteit of prestaties ervan in gevaar te brengen?

Geschreven door: Keith Batterham

Een manier om deze uitdaging aan te pakken is door gebruik te maken van Threat Modelling, een proces dat je helpt bij het identificeren, analyseren en verminderen van de beveiligingsrisico’s die samenhangen met je product. Threat Modelling is geen eenmalige activiteit; het is een voortdurende praktijk die geïntegreerd moet worden in je product development lifecycle (PDLC), van de ontwerpfase tot de implementatie- en onderhoudsfases.

De voordelen van een gestructureerde aanpak

Je zult niet alleen een dieper inzicht krijgen in de architectuur, componenten, gegevensstromen en interacties met externe entiteiten van je product, maar ook:

  • De meest waarschijnlijke en impactvolle bedreigingen voor je product identificeren op basis van het aanvalsoppervlak, kwetsbaarheden en vertrouwensgrenzen ervan.
  • Bedreigingen prioriteren en rangschikken op basis van ernst, waarschijnlijkheid en impact.
  • De geschikte tegenmaatregelen en mitigatiestrategieën bepalen om de bedreigingen aan te pakken, op basis van de vereisten, beperkingen en afwegingen van je product.
  • Communiceren en samenwerken met belanghebbenden, ontwikkelaars, testers en beveiligingsexperts over de beveiligingsaspecten van je product.

Threat Modelling kan je productveiligheid op verschillende manieren verbeteren:

  • Voorkomen of verminderen van beveiligingsincidenten door potentiële zwakke plekken in je product proactief te identificeren en op te lossen voordat ze worden uitgebuit door aanvallers.
  • Je beveiligingsbewustzijn en -cultuur verbeteren door een beveiligingsmentaliteit te bevorderen bij je teamleden en belanghebbenden.
  • Tijd en middelen besparen door je beveiligingsinspanningen te richten op de meest kritieke gebieden van je product, in plaats van ze te verspillen aan onbelangrijke of lage prioriteit kwesties.
  • Je klanttevredenheid en vertrouwen vergroten door een product te leveren dat standaard en vanaf het ontwerp veilig is.

Stap voor stap aanpak

Zoals vaak het geval is bij mijn benaderingen, zul je waarschijnlijk naar het volgende kijken en denken “maar is dat niet gewoon gezond verstand?” – wel, dat is precies mijn doel, ik wil dat applicatie- en productbeveiliging ontrafeld en begrijpelijk wordt. Er zijn veel verschillende methoden en tools voor bedreigingsmodellering, maar over het algemeen volgen ze een vergelijkbaar kader:

  1. Breek je product af in de essentiële elementen op basis van je use cases, entry points, assets en afhankelijkheden. Gebruik waar mogelijk diagrammen of modellen om deze elementen te visualiseren en te documenteren, en vergeet niet om ‘gives’ (dingen die je doorgeeft aan andere systemen) en ‘gets’ (dingen die andere systemen aan jou doorgeven) op te nemen, samen met hoe deze worden vertrouwd.
  2. Bepaal en categoriseer de mogelijke bedreigingen voor je product, op basis van het aanvalsoppervlak en de kwetsbaarheden ervan. Je kunt verschillende technieken gebruiken om bedreigingen te genereren en te classificeren, zoals STRIDE (Spoofing, Tampering, Repudiation, Information Disclosure, Denial of Service en Elevation of Privilege). Er zijn specifieke tools die je hiervoor kunt gebruiken (Threat Dragon, IriusRisk, enz.), maar er is niets mis met het beginnen met standaardproductiviteitstools waarmee je tabellen kunt maken.
  3. Zodra je een lijst van bedreigingen hebt, moet je ze prioriteren en rangschikken op basis van hun risiconiveau, dat afhangt van hun ernst (hoeveel schade ze kunnen veroorzaken), waarschijnlijkheid (hoe waarschijnlijk ze zijn) en impact (hoeveel mensen of systemen ze kunnen beïnvloeden). Vergeet niet om ook het type risico en de potentiële kosten als dit zou gebeuren op te nemen.
  4. Beslis hoe je deze bedreigingen gaat aanpakken. Je kunt verschillende strategieën gebruiken om de bedreigingen te verminderen, zoals het implementeren van beveiligingsmaatregelen (bijv. versleuteling, authenticatie), het toepassen van best practices (bijv. invoervalidatie, foutafhandeling) of het wijzigen van het ontwerp of de architectuur van je product om het aanvalsoppervlak te verkleinen. Je moet de effectiviteit van de tegenmaatregelen afwegen tegen hun kosten, complexiteit en impact op de functionaliteit en prestaties van je product.

Betrek het hele team erbij

Je zult absoluut de beste resultaten behalen door het hele team erbij te betrekken. Een terugkerend probleem dat ik zie, is dat Threat Modelling wordt gezien als slechts een initiatief van engineering, wat betekent dat elementen die naar de backlog worden geschoven mogelijk gebrek hebben aan zakelijke context en daarom niet correct worden geprioriteerd. Er worden veel technische termen gebruikt, maar als je deze presenteert in de context van vragen die beginnen met “Binnen ons product, is het mogelijk voor iemand of iets om dit te doen? (beschrijf dan spoofing, enz.)”, waaruit:

  • Als het antwoord ja is, wat zou je eraan kunnen doen?
  • Als het antwoord nee is, leg dan uit waarom het niet mogelijk is.

Door deze dingen te doen, krijgt het bredere team inzicht in hoe het product echt werkt, en krijgt de producteigenaar ook een uitgebreid beeld van de relatieve beveiligingsstatus van hun product, zowel in termen van de organisatie als van de gebruikers!

Afsluitend

Threat Modelling op zichzelf is geen wondermiddel dat de beveiliging van je product kan garanderen. Het maakt deel uit van een continu proces dat regelmatige updates en beoordelingen vereist om bij te blijven met de veranderingen in de functies, omgeving of bedreigingsomgeving van je product. Door dit te gebruiken als onderdeel van je PDLC, kun je aanzienlijk de beveiligingspositie van je product verbeteren en waarde leveren aan je klanten.

pic

Heb je een vraag?
Onze specialisten staan voor je klaar