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.