SecurityBSides London - Jedi mind tricks for building application security programs

39
David Rook Jedi mind tricks for building application security programs SecurityBSides, London

description

Presentation by David Rook and Chris Wysopal

Transcript of SecurityBSides London - Jedi mind tricks for building application security programs

Page 1: SecurityBSides London - Jedi mind tricks for building application security programs

David Rook

Jedi mind tricks for building applicationsecurity programs

SecurityBSides, London

Page 2: SecurityBSides London - Jedi mind tricks for building application security programs

if (slide == introduction)System.out.println( "I’m David Rook ");

• Security Analyst, Realex Payments, IrelandCISSP, CISA, GCIH and many other acronyms

• Security Ninja (www.securityninja.co.uk)

• Speaker at international security conferences

• Nominated for multiple blog awards

• A mentor in the InfoSecMentors project

• Developed and released Agnitio

Page 3: SecurityBSides London - Jedi mind tricks for building application security programs

• Using Jedi mind tricks on your developers

• s/Application Security Alien/Business Language/i;

Agenda

Page 4: SecurityBSides London - Jedi mind tricks for building application security programs

Using Jedi mind tricks on developers

• Most developers actually want to write secure code

• You need to take ownership of the app sec problems with them

• Developers generally like producing quality code, use this!

• They want security knowledge with good practices and tools

Page 5: SecurityBSides London - Jedi mind tricks for building application security programs

Using Jedi mind tricks on developers

Jim Bird, blog comment:

“I’m a software guy. I don’t need a meme. I need practices and tools that work, that help me get software out the door, better software that is more reliable and more secure.”

http://securosis.com/blog/good-programming-practices-vs.-rugged-development

Page 6: SecurityBSides London - Jedi mind tricks for building application security programs

Using Jedi mind tricks on developers

• How you can help developers?

• Help them understand how to write secure code

• Own application security problems with them

• Don’t dictate! Speak, listen, learn and improve things

Page 7: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

• We speak an alien language

• We talk of injections, jackings and pwnings

Page 8: SecurityBSides London - Jedi mind tricks for building application security programs
Page 9: SecurityBSides London - Jedi mind tricks for building application security programs
Page 10: SecurityBSides London - Jedi mind tricks for building application security programs
Page 11: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

• We speak an alien language

• We talk of injections, jackings and pwnings

• We present findings in weird formats with a side order of FUD

Page 12: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

• I will use CVSS as an example

• Let’s pretend we are analysing a SQL Injection vulnerability

Page 13: SecurityBSides London - Jedi mind tricks for building application security programs
Page 14: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

CVSS base score equation

BaseScore = (.6*Impact +.4*Exploitability-1.5)*f(Impact)Impact = 10.41*(1-(1-ConfImpact)(1-IntegImpact)*(1-AvailImpact))Exploitability = 20*AccessComplexity*Authentication*AccessVectorf(Impact) = 0 if Impact=0; 1.176 otherwise

Page 15: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

CVSS Temporal Equation

TemporalScore=BaseScore*Exploitability*RemediationLevel*ReportConfidence

Page 16: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

CVSS Environmental Equation

EnvironmentalScore=(AdjustedTemporal+(10-AdjustedTemporal)*CollateralDamagePotential) * TargetDistributionAdjustedTemporal = TemporalScore recomputed with the Impact sub-equation replaced with the following AdjustedImpact equation.AdjustedImpact = Min(10, 10.41*(1-(1-ConfImpact*ConfReq)*(1-IntegImpact*IntegReq)*(1-AvailImpact*AvailReq)))

Page 17: SecurityBSides London - Jedi mind tricks for building application security programs
Page 18: SecurityBSides London - Jedi mind tricks for building application security programs

Application Security Alien

• We speak an alien language

• We talk of injections, jackings and pwnings

• We present findings in weird formats with a side order of FUD

• We feel security should just happen without having to justify it

Page 19: SecurityBSides London - Jedi mind tricks for building application security programs

The Business Language

• We need to speak the business language

• We need to talk about things the business cares about

• We need to present findings in a format that makes sense

Page 20: SecurityBSides London - Jedi mind tricks for building application security programs

The Business Language

• How does your business score risks?

• Let’s pretend we are analysing a SQL Injection vulnerability

Page 21: SecurityBSides London - Jedi mind tricks for building application security programs

The Business Language

A simple (common!) risk equation

Probability*Impact

Probability Impact Score

3 5 15

Appetite

12

Page 22: SecurityBSides London - Jedi mind tricks for building application security programs

The Business Language

• We need to speak the business language

• We need to talk about things the business cares about

• Present findings in a format that makes sense to the business

• Application security is no exception when it comes to resourcing

Page 23: SecurityBSides London - Jedi mind tricks for building application security programs

Jedi mind tricks and alien translations

• Apply the KISS principle to everything you do

• Keep everything as simple as possible, complexity doesn’t help

• Understand what developers want and need to write secure code

• Work with the business and use their language and formats

Page 24: SecurityBSides London - Jedi mind tricks for building application security programs

www.securityninja.co.uk

@securityninja

QUESTIONS?

/realexninja

/securityninja

/realexninja

Page 25: SecurityBSides London - Jedi mind tricks for building application security programs

Chris Wysopal

CTO & Co-founder

Jedi mind tricks for building application security programs

Page 26: SecurityBSides London - Jedi mind tricks for building application security programs

The formative years… Padawan?

It was all about attack.

Early web app testing: Lotus Domino, Cold FusionWindows Security: Netcat for Windows, L0phtCrackEarly disclosure policies: RFPolicy, L0pht Advisor ies

Page 27: SecurityBSides London - Jedi mind tricks for building application security programs

Now with professional PR team…

Time to help the defensive side

Led @stake research team@stake application security consultantPublished Art of Software Security TestingVeracode CTO and Co-Founder

Page 28: SecurityBSides London - Jedi mind tricks for building application security programs

Why do we need executive buy in?

�Application security programs will require developer training�Application security programs will require tools/services�Application security programs will impact delivery schedules�Application security cannot be “voluntary”

Authority

Page 29: SecurityBSides London - Jedi mind tricks for building application security programs

Speaking the language of executives

CEOsCFOsCIOs

Page 30: SecurityBSides London - Jedi mind tricks for building application security programs

If money is the language of execs what do they say?

How do I grow my top line?How do I lower costs?How do I mitigate risk?

Talk in terms of business risk and use monetary terms when possible.Then we can we can speak the same language.

Page 31: SecurityBSides London - Jedi mind tricks for building application security programs

Different types of risk

Legal risk – Legal costs, settlement costs, finesCompliance risk – fines, lost businessBrand risk – lost businessSecurity risk - ????

Page 32: SecurityBSides London - Jedi mind tricks for building application security programs

Translate technical risk to monetary risk

� What is the monetary risk from vulnerabilities in y our application portfolio?

� Monetary risk is your expected loss; derived from yourvulnerabilities, your breach cost, threat space data

32

YourVulnerabilities

YourBreachCost

Threat SpaceData

Page 33: SecurityBSides London - Jedi mind tricks for building application security programs

Your Breach Cost

33

� Use cost analysis from your earlier breaches� Use breach cost from public sources

– Example: April 2010 Ponemon Institute Report

(US Dollars) Detection & Escalation

Notification Ex-Post Response

Lost Business

Total

Average 264,208 500,321 1,514,819 4,472,030 6,751,451

Per-capita 8 15 46 135 204

Communication

Consumer

Education

Energy

Financial

Healthcare

Hotel & Leisure

Manufacturing

Media Pharma Research

Retail Services

Technology

Transportation

209 159 203 237 248 294 153 136 149 310 266 133 256 192 121

Ponemon per-capita data by US industry sector (US Dollars)

Ponemon average and per-capita US breach cost (US Dollars)

Page 34: SecurityBSides London - Jedi mind tricks for building application security programs

Threat Space Data

34

40% of data breaches are due to hackingSource: Verizon 2010 Data Breach Investigations Report

Top 7 application vulnerability categories

62% of organizations experienced breaches in critical applications in 12 month period

Source: Forrester 2009 Application Risk Management and Business Survey

Page 35: SecurityBSides London - Jedi mind tricks for building application security programs

How to Derive Your Expected Loss

35

Baseline expected loss for your organization due to SQL Injection*

*If your SQL Injection prevalence is similar to average SQL Injection prevalence, assumes 100,000 records

expected lossvulnerability category = f(

% of orgs breached Xbreach cost X

breach likelihood from vuln. category)

expected lossSql injection = f

62% X$248 X 100,00 X

25% )(

Page 36: SecurityBSides London - Jedi mind tricks for building application security programs

Monetary Risk Derived From Relative Prevalence

Vulnerability Category

Breach Likelihood

Baseline Expected loss

Average % of Apps Affected 1

Your % of Apps Affected 2

Your Monetary Risk

Backdoor/Control Channel

29% $4,459,040 8% 15% higher

SQL Injections 25% 3,844,000 24% 10% lower

Command Injection

14% 2,152,640 7% 6% same

XSS 9% 1,383,840 34% 5% lower

Insufficient Authentication

7% 1,076,320 5% 2% lower

Insufficient Authorization

7% 1,076,320 7% 7% same

Remote File Inclusion

2% 307,520 <1% <1% same

36

Assume 100,000 customer records. For SQLi the expected loss is: 62% * $248 * 100,000 * 25% = $3,844,000

1. Veracode 2010 State of Software Security Report, Vol. 22. De-identified financial service company data from Veracode industry data

Page 37: SecurityBSides London - Jedi mind tricks for building application security programs

Executives want…

�An organizational wide view. Am I lowering overall application risk?– Internal code– Outsourced– Vendor supplied– Open source

�A program that has achievable objectives. What am I getting for the money I am spending?

�A program that is measurable: metrics and reporting . Am I marching toward the objectives?– Which dev teams, outsourcers are performing well?– How is my organization doing relative to my peers?

Page 38: SecurityBSides London - Jedi mind tricks for building application security programs

Tips to make the program successful

�The right people have to understand what is going to happen before you start�Do a real world pen test or assessment of a project. Demonstrate relevant risk.�Integrate into existing processes

� SDLC� Procurement/legal� M&A

Page 39: SecurityBSides London - Jedi mind tricks for building application security programs

39

Q&ASpeaker Contact

Information:Chris Wysopal

([email protected])Twitter: @WeldPond

@securityninja

/realexninja

/securityninja

/realexninja

www.securityninja.co.uk

David Rook