72
Threat modelling for developers Arne Padmos

Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Threat modellingfor developers

Arne Padmos

Page 2: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

xkcd

Page 3: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

SafetyvsSecurity

Page 4: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 5: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

William WarbyWarner Bros

Page 6: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 7: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Are we doomed?

Page 8: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 9: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

“ Building security in ”

“ Security by design ”

“ Shifting security left ”

Page 10: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Microsoft

Page 11: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Microsoft

Page 12: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

“ If we ... could do only one thing “ to improve software security … “ we would do threat modelling “ every day of the week. ”

— Howard & Lipner

Page 13: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

“ If we ... could do only one thing “ to improve software security … “ we would do threat modelling “ every day of the week. ”

— Howard & Lipner

Page 14: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Requirements engineering&Architectural analysis

Page 15: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

What’s your threat model?( security assumptions )

Page 16: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 17: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

“ More precisely, we will assume“ the following about a saboteur: ”

– obtain any message– initiate any conversation– be a receiver to any user

Page 18: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Utagawa Kuniyoshi

Page 19: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

NSA

Page 20: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Eleanor Saitta

Page 21: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

What couldpossiblygo wrong?

& how

Page 22: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

What couldpossiblygo wrong?

& how

Page 23: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Types of threat modelling

– Attacker-centric– Asset-centric– System-centric

Page 24: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

William Warby

Page 25: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Paul Pols

Page 26: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Cyril Davenport

Page 27: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Eleanor Saitta et al.

Page 28: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Stewart Brand

Page 29: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Antti Vähä-Sipilä

Page 30: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Popular approaches( system-centric )

– STRIDE– Trike– PASTA

Page 31: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Relevant questions

1. What are we working on?2. What can go wrong?3. What are we going to do?4. Did we do a good job?

Adam Shostack

Page 32: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Lightweight methodology

1. Draw data flows2. Elicit threats3. Ranking + controls4. Check your work

Page 33: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Lightweight methodology

1. Draw data flows2. Elicit threats3. Ranking + controls4. Check your work

Page 34: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

CMU

Page 35: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Adam Shostack

Page 36: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Mark Dowd et al.

Page 37: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Trail of Bits

Page 38: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Lightweight methodology

1. Draw data flows2. Elicit threats3. Ranking + controls4. Check your work

Page 39: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

ConfidentialityIntegrityAvailability

AuthenticationAuthorisationAccountability

Page 40: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Information disclosureTamperingDenial of service

SpoofingElevation of privilegeRepudiation

Page 41: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

“STRIDE”

Page 42: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

SAFEcode

Page 43: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

SWIFT

Page 44: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Adam Shostack

Page 45: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Lightweight methodology

1. Draw data flows2. Elicit threats3. Ranking + controls4. Check your work

Page 46: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Dick Bruna

Page 47: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Parker Brothers

Page 48: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Risk ≈ likelihood × impact

Page 49: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

ThoughtWorks

Page 50: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Howard & Lipner

Page 51: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Lightweight methodology

1. Draw data flows2. Elicit threats3. Ranking + controls4. Check your work

Page 52: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

“ All models are wrong,“ some models are useful. ”

— George Box

Page 53: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Koyaanisqatsi

Page 54: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Stephen Checkoway et al.

Page 55: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 56: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Howard & Lipner

Page 57: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

xkcd

Page 58: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Lightweight methodology

1. Draw data flows2. Elicit threats3. Ranking + controls4. Check your work

Page 59: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 60: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Dick Bruna

Page 61: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

ThoughtWorks

Page 62: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

ThoughtWorks

Page 63: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

ThoughtWorks

Page 64: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

ThoughtWorks

Page 65: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 66: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 67: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

@wilg

Page 68: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Rijksoverheid

Page 69: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

What couldpossiblygo wrong?

& how

Page 70: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

Arne [email protected]

Page 71: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2
Page 72: Threat modelling for developers - fosdem.org · What can go wrong? 3. What are we going to do? 4. Did we do a good job? Adam Shostack. Lightweight methodology 1. Draw data flows 2

github.com/arnepadmos/resources

my “toy collection”