32
The Microsoft ® Security Development Lifecycle (SDL) 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Embed Size (px)

Citation preview

Page 1: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

The Microsoft® Security Development Lifecycle (SDL)

12 November 2009

Bryan SullivanSenior Security Program Manager,Microsoft SDL

Page 2: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Microsoft’s Security Development Lifecycle (SDL)

The SDL: Microsoft’s industry leading software security assurance process designed to protect customers by reducing the number and

severity of software vulnerabilities before release.

SDL EXECUTIVE COMMITMENT MANDATORY MICROSOFT PROCESS SINCE 2004

Page 3: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Measurable Improvements At Microsoft

Page 4: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Microsoft SDL and SQL Server

Sources: Analysis by Jeff Jones (Microsoft technet security blog)

SQL Server 2000 SQL Server 2005 Competing commercial DB

34

3

187

Before SDL After SDL

91% reduction in Vulnerabilities

Total Vulnerabilities Disclosed 36 Months After Release

Page 5: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Windows: 45% reduction of vulnerabilities

Source: Windows Vista One Year Vulnerability Report, Microsoft Security Blog 23 Jan 2008

Windows XP Windows Vista OS I OS II OS III

119

66

400

242

157

Total vulnerabilities disclosed one year after release

Before SDL After SDL

45% reduction in vulnerabilities

Page 6: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Microsoft SDL and Internet Explorer (IE)

Source: Browser Vulnerability Analysis, Microsoft Security Blog 27-NOV-2007

Internet Explorer 6 Internet Explorer 7

1814

8

3

Medium High

Before SDL After SDL

35% reduction in vulnerabilities63% reduction in high severity vulnerabilities

Vulnerabilities Fixed One Year After Release

Page 7: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Attacks are focusing on applications

Calculated from the Microsoft Security Intelligence Report V6

90% of vulnerabilities are remotely exploitable Sources: IBM X-Force, 2008

1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 20080%

10%

20%

30%

40%

50%

60%

70%

80%

90%

100%

% of vulnerability disclosures:Operating system vs browser and application vulnerabilities

OS vulns Browser vulns Application vulns

Page 8: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Most vulnerabilities are in smaller companies' applications

11%

89%

Vendors' accountability for vulnerabilities in 2008

Top 5 ISVs

Others

Sources: IBM X-Force 2008 Security Report

Page 9: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

What is Microsoft doing about the threat?

Page 10: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Working to protect our users…

Administer and track security training

IncidentResponse (MSRC)

Sign up with MSECDefine business ownerDefine security lead

Define product-specific security measures Meet SDL requirements

Guide product teams to meet SDL requirements

Security engineeringFeedback for SDL improvements

Establish release criteria and sign-off

as part of FSR

Meet release criteria

Ongoing Process Improvements

Education

Process AccountabilityTwC

Product

Groups

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 11: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Pre-SDL Requirements: Security Training

Assess organizational knowledge on security and privacy – establish training program as necessary

Establish training criteriaContent covering secure design, development, test and privacy

Establish minimum training frequencyEmployees must attend n classes per year

Establish minimum acceptable group training thresholds Organizational training targets (e.g. 80% of all technical personnel trained prior to product RTM)

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 12: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase One: Requirements

Opportunity to consider security at the outset of a project

Development team identifies lead security and privacy contacts – “Champions”Security Advisor assigned Security Advisor reviews product plan, makes recommendations, may set additional requirementsMandate the use of a bug tracking/job assignment systemDefine and document security and privacy bug bars

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 13: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase Two: Design

Define and document security architecture, identify security critical components

Document attack surface and limit through default settingsDefine supplemental security ship criteria due to unique product issues

Cross-site scripting testsDeprecation of weak crypto

Threat ModelingSystematic review of features and product architecture from a security point of viewIdentify threats and mitigations

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 14: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

SDL Threat Modeling Tool

demonstration

Page 15: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase Three: Implementation

Full spectrum review – used to determine processes, documentation and tools necessary to ensure secure deployment and operation

Specification of approved build tools and optionsStatic analysis (/analyze (PREfast), FXCop, CAT.NET)

Banned APIsUse of operating system “defense in depth” protections (NX, ASLR and HeapTermination)

Online services specific requirements (e.g., Cross-site scripting , SQL Injection etc)

Secure coding librariesConsider other recommendations (e.g., Standard Annotation Language (SAL))

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 16: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase Four: Verification

Started as early as possible – conducted after “code complete” stage

Start security response planning – including response plans for vulnerability reportsRe-evaluate attack surfaceFuzz testing – files, installable controls and network facing codeConduct “security push” (as necessary, increasingly rare)

Not a substitute for security work done during developmentCode reviewPenetration testing and other security testingReview design and architecture in light of new threats

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 17: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase Five: Release – Response Plan

Creation of a clearly defined support policy – consistent with MS corporate policies

Provide Software Security Incident Response Plan (SSIRP)Identify contacts for MSRC and resources to respond to events24x7x365 contact information for 3-5 engineering, 3-5 marketing, and 1-2 management (PUM and higher) individuals

Ensure ability to service all code including “out of band” releases and all licensed 3rd party code.

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 18: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase Five: Release – Final Security Review (FSR)

Verify SDL requirements are met and there are no known security vulnerabilities

Provides an independent view into “security ship readiness”The FSR is NOT:

A penetration test – no “penetrate and patch” allowedThe first time security is reviewedA signoff process

Key Concept: The tasks for this phase are used as a determining factor on whether or not to ship – not used as a “catchall” phase for missed work in earlier phases

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 19: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Phase Five: Release – Archive

Security response plan complete

Customer documentation up-to-dateArchive RTM source code, symbols, threat models to a central locationComplete final signoffs on Checkpoint Express – validating security, privacy and corporate compliance policies

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 20: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Post-SDL Requirement: Response

“Plan the work, work the plan…”

Execution on response tasks outlined during Security Response Planning and Release Phases

Training Requirements DesignImplementati

onVerification Release ResponseTraining Requirements Design

Implementation

Verification Release Response

Page 21: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

applicability

Page 22: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Universal Applicability

Any operating systemAny languageAny deployment scenarioAny development methodology

Page 23: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Agile Development Methodologies

SCRUMExtreme Programming (XP)DSDMAdaptive Software DevelopmentCrystalFeature-Driven DevelopmentPragmatic Programming

Common trait: iterative approach

Page 24: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Unsuccessful Approaches

Make SDL requirements into product backlog items

Not secure

Do the complete SDL every iterationNot Agile

Remove some requirementsAlso not secure

Page 25: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

SDL-Agile process

Page 26: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Three classes of requirements

Every Sprint

Training

Threat modeling

etc...

One-Time Only

Set up tracking

Upgrade compilers

etc...

Bucket

Fuzz parsers

Create response

plan

etc…

Page 27: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

conclusions

Page 28: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Secure Software Development Requires Process Improvement

Key Concepts

Simply “looking for bugs” doesn’t make software secure

Must reduce the chance vulnerabilities enter into design

and code

Requires executive commitment

Requires ongoing process improvement

Requires education & training

Requires tools and automation

Requires incentives and consequences

Page 29: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Summary

Attacks are moving to the application layer

SDL = embedding security into software and culture

Measurable results for Microsoft software

Microsoft is committed to making SDL widely available

and accessible

Page 31: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

Questions?

Page 32: 12 November 2009 Bryan Sullivan Senior Security Program Manager, Microsoft SDL

© 2008 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.

The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the

date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.