Slide 1

Slide 1 text

Barbarians at the Gate - Fortifying Your Defenses with Threat Modeling Adam Englander Ijeoma Ezeonyebuchi Eric Mann

Slide 2

Slide 2 text

Hello. Adam Englander Architect, iovation Ijeoma Ezeonyebuchi Mobile Quality Assurance Engineer, NPR Eric Mann Director of Engineering, Vacasa

Slide 3

Slide 3 text

Today’s Session What is Threat Modeling? What is the Process? S.T.R.I.D.E. D.R.E.A.D. Practical Illustrations Action Items you can Implement Today

Slide 4

Slide 4 text

What is Threat Modeling? Threat modeling is a process by which potential threats ... can be identified, enumerated, and prioritized – all from a hypothetical attacker’s point of view. - Wikipedia

Slide 5

Slide 5 text

What is Threat Modeling? Threat modeling is a process by which potential threats ... can be identified, enumerated, and prioritized – all from a hypothetical attacker’s point of view. - Wikipedia

Slide 6

Slide 6 text

What is the Process? 01 Document everything you possibly can about your application, its use cases, and the users interacting with it.

Slide 7

Slide 7 text

What is the Process? 01 Document everything you possibly can about your application, its use cases, and the users interacting with it. 02 Map out your application - both process flows and data flows.

Slide 8

Slide 8 text

Map out your application’s data flows Image Source: Wikipedia

Slide 9

Slide 9 text

Map out your application’s process flows Image Source: Wikipedia

Slide 10

Slide 10 text

What is the Process? 01 Document everything you possibly can about your application, its use cases, and the users interacting with it. 02 Map out your application - both process flows and data flows. 03 Identify system dependencies.

Slide 11

Slide 11 text

What is the Process? 01 Document everything you possibly can about your application, its use cases, and the users interacting with it. 02 Map out your application - both process flows and data flows. 03 Identify system dependencies. 04 Identify threats.

Slide 12

Slide 12 text

Identify threats - STRIDE Image Source: https://resources.infosecinstitute.com/threat-modeling-finding-defects-early-in-the-cycle/

Slide 13

Slide 13 text

Identify threats - Spoofing ● Phishing - sending email impersonating another entity to capture credentials ● Session take over - presenting yourself as a currently authenticated user ● Logging in with another user’s credentials

Slide 14

Slide 14 text

Identify threats - Tampering ● SQL Injection ● Malicious code injection ● Man-in-the-middle (MITM) attack

Slide 15

Slide 15 text

Identify threats - Repudiation ● Log saturation prevents your ability to find bad behavior due to the volume of data ● Log disabling prevents logs from being written in the first place ● Log manipulation alters the logs to mask the user performing the attack

Slide 16

Slide 16 text

Identify threats - Information Disclosure ● Leaking sensitive data via standard means like direct object access ● Leaking sensitive data via code repositories ● Leaking sensitive data via SQL injection

Slide 17

Slide 17 text

Identify threats - Denial of Service ● DDoS via botnet ● DoS via load testing tools ● DoS via code or data deletion

Slide 18

Slide 18 text

Identify threats - Elevation of Privilege ● Improperly implemented access control - hiding admin URLs and not checking user’s privileges ● Providing ability for user to active “GOD” mode

Slide 19

Slide 19 text

Identify threats - DREAD Risk Ratings Score each of the following from 1-10 ● Damage Potential ● Reproducibility ● Exploitability ● Affected Users ● Discoverability

Slide 20

Slide 20 text

Identify threats - Damage Potential ● What is the financial impact of the threat? ● What is the potential impact on your customer base?

Slide 21

Slide 21 text

Identify threats - Reproducibility ● Can the threat be triggered in a web browser, or does it require special skills? ● Does the system have to be in a particular state for the attack to be reproduced? ● Who would likely be able to reproduce this attack.

Slide 22

Slide 22 text

Identify threats - Exploitability ● What does someone need to know to leverage this weakness? ● What skills or tools are required to execute the exploit? ● Who has the knowledge or skills required?

Slide 23

Slide 23 text

Identify threats - Affected Users ● Which classes of users are affected? ● How many users are affected?

Slide 24

Slide 24 text

Identify threats - Discoverability ● Is the weakness, threat, or vulnerability published in the public eye? ● Who would be most likely to discover this vulnerability in the wild? ● How much “insider knowledge” would be required to discover this vulnerability?

Slide 25

Slide 25 text

Practical Illustrations ● Add threat modeling to the definition of done ● Starting from scratch with a new application, service, or feature ● Paying down the security debt on existing applications ● Continuous review

Slide 26

Slide 26 text

Practical Illustrations: Definition of Done ● Aligns everyone to the expectations a. Business owners b. Project management / scrum masters c. Developers d. QA ● Ensures the time needed for threat modeling is included in estimates ● Ensures it is always done ● Helps reinforce the security mindset

Slide 27

Slide 27 text

Practical Illustrations: Starting from Scratch ● Threat model as part of your design stage a. Design b. Threat Model c. Adjust Design d. GOTO b ● Revisit the end result and threat model any in-development changes

Slide 28

Slide 28 text

Practical Illustrations: Paying Down Debt ● We all have some security debt a. Legacy code b. Uneven security practices c. Last minute crucial request from customers d. Insufficient threat modeling ● Identify the gaps ● Have a plan for paying down your debt ● Track progress of the plan ● Review progress at regular intervals

Slide 29

Slide 29 text

Practical Illustrations: Continuous Review ● You need to continuously revisit threats identified as fully or partially mitigated to ensure they are still mitigated ● Refactor your threat models - think of threat modeling like writing code a. The skills you and your team have today are far better than the past b. You use tools better than you have before c. You understand the product and its dependencies better d. Your team changes and acquires different perspectives that can improve the product e. You should constantly improve the product base in the items above

Slide 30

Slide 30 text

Action Items you can Implement Today Just Get Started!

Slide 31

Slide 31 text

Action Items you can Implement Today ● Learn to think like an attacker ● Promote and reward self-reporting ● Start a Bug Bounty

Slide 32

Slide 32 text

Questions?

Slide 33

Slide 33 text

Thank you! Please rate our talk: https://joind.in/talk/009bd