Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 38

Software Security

Hoorcollege 4
Threat modelling

share your talent. move the world.


Weekplanning
Wat gaan we doen en waar staan we nu?
• Week 1: breken en beveiligen van desktop- en webapplicaties
• Week 2: ethical hacking (gastcollege door INF/Wortell)
• Week 3: security in softwareontwikkeling
• Week 4: threat modelling
• Week 5: privacy threat modelling
• Week 6: software security – de verantwoordelijkheid van de
ontwikkelaar?!

06/01/2023 Software Security HC 4 share your talent. move the world.


Maar eerst…
…wat is er de afgelopen tijd nu weer gehackt?

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat model(l)ing
Wat houdt het in?
• “Using models to find security problems”
• Abstractie van software gebruiken om risks én oplossingen daarvoor
(mitigaties) te vinden
– Dus op grote lijnen, niet de nitty-gritty technische details
• Week 1: Threat = mogelijke attack
– Gebruikmakend van 1 of meer vulnerabilities

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling
Waarom?
• Security-bugs tijdig ontdekken (shift left)
• Hulpmiddel
– Bij opstellen van security-requirements
– Bij het maken van een secure ontwerp
• Betere producten opleveren
• Problemen vinden die andere technieken niet kunnen vinden

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling
Hulpmiddelen
• De Vier Vragen (week 1)
– Waar werken we aan?
– Wat kan er misgaan?
– Wat gaan we daaraan doen?
– Hebben we het goed gedaan?
• STRIDE
• PASTA
• Attack libraries
• Attack trees

01-06-2023 Software Security HC 4 share your talent. move the world.


STRIDE
Hulpmiddel bij Threat Modelling
• STRIDE is een zogenaamde Mnemomic
– Spoofing
– Tampering
– Repudiation
– Information disclosure
– Denial of service
– Elevation of privilege

06/01/2023 Software Security HC 4 share your talent. move the world.


STRIDE
Spoofing
• Doen alsof je iets of iemand anders bent
• Gericht op:
– Processen (bijv. vervangende versie maken met dezelfde naam)
– Files (vervangen, link veranderen…)
– Machines (ARP, IP, DNS…)
– Websites (denk aan phishing)
– Personen
– Rollen

Bron: Wikipedia

06/01/2023 Software Security HC 4 share your talent. move the world.


STRIDE
Tampering
• Data wijzigen
• Gericht op:
– Geheugen (denk terug aan smashing the stack)
– Netwerk (denk aan ARP spoofing)
– Files
– Databases

06/01/2023 Software Security HC 4 share your talent. move the world.


STRIDE
Repudiation
• Kunnen ontkennen dat je iets gedaan hebt, al dan niet terecht
• Gericht op:
– Acties
• “Ik heb daar niet op geklikt”
• “Ik heb die mail nooit ontvangen”
– Logs
• Er zijn geen logs
• Log injection-aanvallen

06/01/2023 Software Security HC 4 share your talent. move the world.


STRIDE
Information disclosure
• Informatie zien die je niet mag zien
• Gericht op:
– Processen (met name door lekkage van error-informatie)
– Data stores (databases)
– Data flows

06/01/2023 Software Security HC 4 share your talent. move the world.


STRIDE
Denial of service
• Platleggen van resources, zoals websites ((D)DoS)
• Gericht op:
– Processen
• RAM, geheugen op disk, CPU
– Data stores
• Compleet vullen, vertragen
– Data flows
• Netwerk-resources volledig gebruiken

06/01/2023 Software Security HC 4 share your talent. move the world.


STRIDE
Elevation of privilege
• Iemand dingen laten doen die ze niet mogen doen
• Mogelijk door o.a. ontbrekende of foutieve autorisatie-controle
• Gericht op:
– Processen (denk weer aan smashing the stack)
– Data (via tampering)

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling
Andere methodes dan STRIDE
• PASTA
– Process for Attack Simulation and Threat Analysis
– 7 stages
– Gebruikt door o.a. Gitlab
• Attack libraries
– OWASP Top 10
– Common Attack Pattern Enumeration and Classification (CAPEC)
• Attack trees
– Aanvallen modelleren als een boomstructuur
• Doel als root
• Middelen als leaves
– Voorbeeld op volgende sheet

06/01/2023 Software Security HC 4 share your talent. move the world.


Attack trees
Een voorbeeld

06/01/2023 Software Security HC 4 share your talent. move the world.


Strategieën voor threat modelling
• Advies: focus op (een model van) de hard- en software
– In plaats van op assets
• Asset = iets wat je wilt beschermen, iets wat de aanvaller wil of
een “stapsteen” naar de eerste twee
• Nadeel: er is geen directe relatie van assets naar threats
– In plaats van op attackers
• Gebruik modellen van soorten aanvallers (“persona’s”)
• Nadeel: helpt vaak niet om objectief te bedenken wat die fictieve
aanvallers kunnen gaan doen
• Gebruik een Data Flow Diagram (DFD)

06/01/2023 Software Security HC 4 share your talent. move the world.


Data Flow Diagram (DFD)
Onderdelen

• Processen proces

• Externe entiteiten ext. entiteit

• Datastromen (data flows)


• Data-opslag (data stores) data store

• Trust boundaries
– De belangrijkste en tevens het startpunt

06/01/2023 Software Security HC 4 share your talent. move the world.


Data Flow Diagram (DFD)
Voorbeeld

06/01/2023 Software Security HC 4 share your talent. move the world.


Data Flow Diagram (DFD)
Werkwijze
• Werk top-down en breadth-first
– Begin met een overzicht van het systeem als geheel
• Vul aan met gedetailleerde deel-modellen indien nodig
– Ga bijvoorbeeld eerst alle trust-boundaries bij langs
• Vul gaandeweg, a.d.h.v. STRIDE een tabel met threats
– Per diagram-element, of
– Per threat, of
– Op volgorde van ontdekking
• Threats zijn issues of zelfs bugs!

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling: resultaat
Voorbeeld van een tabel met gevonden threats

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling: en dan?
Wat te doen met de gevonden threats
• Er zijn 4 manieren om met threats om te gaan (META):
– Mitigate
– Eliminate
– Transfer
– Accept

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling: en dan?
Mitigate
• Threat proberen weg te nemen
• Bijvoorbeeld door:
– Feature(s) toe te voegen
– Configuratie aan te passen
– Redesign van de code te doen
• Let op: mitigaties kunnen zelf weer leiden tot nieuwe threats!
– Dan zijn er dus weer nieuwe, hogere-orde mitigaties nodig, etc.
• Er zijn lijsten met mitigaties voor elk van de STRIDE-threats (zie de komende slides), vaak
komen daarin terug:
– (File-)permissies
– Encryptie, hashing en digital signatures
– Logging

06/01/2023 Software Security HC 4 share your talent. move the world.


Digital signatures
Hoe zat het ook alweer?
Extra beveiliging: berichten uniek

maken door toevoegen van een

nonce (one-time code)

06/01/2023 Software Security HC 4 share your talent. move the world.


Mitigaties
Per STRIDE-onderdeel (1)
• Spoofing
– Authenticatie (personen en rollen maar ook files)
– Volledige padnamen gebruiken (files)
– Technieken zoals IPSEC en DNSSEC (adressen)
– TLS/SSL, secure cookies (websites)
• Tampering
– Integrity
– (File-)permissies
– Crypto: hashes en digital signatures
– Logging

06/01/2023 Software Security HC 4 share your talent. move the world.


Mitigaties
Per STRIDE-onderdeel (2)
• Non-repudation
– Fraude-preventie
– Logging
– Digital signatures
• Information disclosure
– Confidentiality
– File-permissies
– Encryptie van files en andere data
– Mix networks, onion routing, steganografie (communicatie)

06/01/2023 Software Security HC 4 share your talent. move the world.


Mitigaties
Per STRIDE-onderdeel (3)
• Denial of Service
– Availability
– Inputvalidatie, bounds checking
– Reverse proxy, rate limiting, throttling
– Gebruik van een “wasstraat”
• Elevation of Privilege
– Autorisatie
– (File-)permissies
– Role / Permission Based Access Control
– sudo / Run as…

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling: en dan?
Eliminate
• Verwijder simpelweg het gedeelte dat de kwetsbaarheid bevat
• Bijvoorbeeld het verwijderen van een “lekke” API

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling: en dan?
Transfer
• Draag de verantwoordelijkheid over het kwetsbare gedeelte over aan
een andere partij
• Bijvoorbeeld het onderbrengen van de beveiliging van je server of
container(s) bij je cloudhost

06/01/2023 Software Security HC 4 share your talent. move the world.


Threat modelling: en dan?
Accept
• Accepteer de kwetsbaarheid en doe er niets aan
• Denk even terug aan de afweging risico vs. kosten uit week 1

06/01/2023 Software Security HC 4 share your talent. move the world.


Even pauze en daarna…
…aan de slag!

06/01/2023 Software Security HC 4 share your talent. move the world.


Aan de slag met Threat modelling
Onze casus: beschrijving
• De Hanze wil met z’n tijd mee en ook “iets met IoT” gaan doen
• De toegangsdeuren, paslezers, thermostaten, verwarmingen en koffieautomaten
worden via WiFi verbonden met het interne Hanze-netwerk
• Eveneens aan dat netwerk komt een server te hangen met daarop een applicatie die
acties en meetwaardes vastlegt in een database
• Deze applicatie kan tevens de deuren en de verwarmingen aansturen
• In een aparte “IoT Control Room” staat een pc waarmee de server-applicatie bediend
kan worden
• Ook draait er een webapplicatie op de server waarmee je van buitenaf in kunt loggen
en de applicatie kunt bedienen
• Via een speciale poort heeft de systeembeheerder zelfs vanuit huis toegang tot de
server-applicatie

06/01/2023 Software Security HC 4 share your talent. move the world.


Aan de slag met Threat modelling
Onze casus: schematisch

06/01/2023 Software Security HC 4 share your talent. move the world.


Aan de slag met Threat modelling
Onze casus: DFD

06/01/2023 Software Security HC 4 share your talent. move the world.


Aan de slag met Threat modelling
Let’s threat model!
• Samen aan de slag met
– DFD van de casus
– Excelsheet om de bevindingen in te zetten
• Tip: een beetje “movie plotting” is OK!

06/01/2023 Software Security HC 4 share your talent. move the world.


Elevation of Privilege
Een serious cardgame om te helpen STRIDE toe te passen
• Ontwikkeld door Microsoft
• Online versie: https://eopgame.azurewebsites.net/
• EoP spelen met een groep ontwikkelaars, designers, testers etc.
– Kaart trekken
– Kijken waar de genoemde threat zou kunnen spelen
– Oplossing bedenken (META)
– Threat + onderdeel + oplossing vastleggen in issue-tabel
– Herhaal…
• Iets soortgelijks ga je in het practicum van deze week ook doen

06/01/2023 Software Security HC 4 share your talent. move the world.


Einde van het hoorcollege!
• Wat hebben we ook alweer besproken?
– Threat modelling
– STRIDE
• Wat vonden jullie ervan?
• Op naar het practicum!
– Onderwerp: Threat modelling zelf toepassen op een casus
– Opdracht voor het einde van de week inleveren via BB

06/01/2023 Software Security HC 4 share your talent. move the world.


Weekplanning
Wat gaan we volgende keer doen?
• Week 1: breken en beveiligen van desktop- en webapplicaties
• Week 2: ethical hacking (gastcollege door INF/Wortell)
• Week 3: security in softwareontwikkeling
• Week 4: threat modelling
• Week 5: privacy threat modelling
• Week 6: software security – de verantwoordelijkheid van de
ontwikkelaar?!

06/01/2023 Software Security HC 4 share your talent. move the world.


Tot slot…

© Scott Adams, dilbert.com

06/01/2023 Software Security HC 4 share your talent. move the world.

You might also like