49

Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Embed Size (px)

Citation preview

Page 1: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205
Page 2: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

SDL-Agile: Microsoft's Approach to Security for Agile Projects

Bryan SullivanSenior Security Program MgrMicrosoftSIA205

Page 3: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

What does “Agile” mean, anyway?

www.goldenrice.org

Page 4: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

The Agile Manifesto

Individuals and interactions

Working software

Customer collaboration

Responding to change

Processes and tools

Comprehensive documentation

Contract negotiation

Following a plan

Page 5: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Security Development Lifecycle

Ongoing Process Improvements

ProcessEducation

Accountability

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.

Page 6: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges

Page 7: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges: Adapting SDL to Agile

Iterative nature of AgileProjects may never endJust-in-time planning/YAGNI mentalityGeneral avoidance of project artifactsEmphasis on project/iteration backlogsGeneral avoidance of automated tools

Page 8: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges: Adapting SDL to Agile

Iterative nature of AgileProjects may never endJust-in-time planning/YAGNI mentalityGeneral avoidance of project artifactsEmphasis on project/iteration backlogsGeneral avoidance of automated tools

Page 9: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Security Development Lifecycle

SDL “Classic” phased approachFits spiral or waterfall……but Agile doesn’t have phases

Page 10: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Idea: Move SDL to product backlog

Very AgileBut not secure!

Page 11: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Idea: Do the full SDL every iteration

Very secureBut not Agile!

Page 12: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Iterative nature of Agile

From the Principles Behind the Agile Manifesto:

“Deliver working software frequently, from a couple of weeks to a couple of months, with a

preference to the shorter timescale.”

Page 13: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Idea: Drop some requirements

But every requirement is, well, required

Need to keep all requirementsNeed to reorganize into Agile-friendly form

Page 14: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

SDL-Agile process

Page 15: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Three classes of requirements

Every Sprint

Training

Threat modeling

etc...

Page 16: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Requirements as backlog items

One-time requirements get added to the Product Backlog (with deadlines)So do bucket requirementsEvery-sprint requirements go to the Sprint Backlog directly

Product Backlog

• Set up tracking system• Upgrade to VS2010• Fuzz image parser• Fuzz network parser• …

Sprint Backlog

• Threat model new stored procedures• Run static analysis• …

Page 17: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Agile sashimi

At the end of every sprint:

All every-sprint requirements completeNo bucket items more than six months oldNo expired one-time requirementsNo open security bugs over the bugbar

dinner.wordpress.com

Page 18: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Bug bar

•EoP: Remote Anonymous•Info Disc: HBI/PIICritical•EoP: Local Anonymous•DoS: Asymmetric PersistentImportant

•Info Disc: LBI•DoS: TemporaryModerate

•Info Disc: Random memoryLow

Page 19: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges: Adapting SDL to Agile

Iterative nature of AgileProjects may never endJust-in-time planning/YAGNI mentalityGeneral avoidance of project artifactsEmphasis on project/iteration backlogsGeneral avoidance of automated tools

Page 20: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Security Incident Response

Because 2:00 AM Christmas morning is a poor time to hold a Scrum meeting…

Page 21: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges: Adapting SDL to Agile

Iterative nature of AgileProjects may never endJust-in-time planning/YAGNI mentalityGeneral avoidance of project artifactsEmphasis on project/iteration backlogsGeneral avoidance of automated tools

Page 22: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Security bug tracking

Must track bug causeBuffer overflowXSSEtc

And effectSTRIDE

Important for bugbar criteria

Page 23: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Threat modeling

“The cornerstone of the SDL”

Data Flow Diagrams (DFDs)STRIDE/elementMitigationsAssumptionsExternal dependencies

Page 24: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Sidebar: Exception workflowLevel 1

Level 2

Level 3

Level 4

Level 5

Page 25: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges: Adapting SDL to Agile

Iterative nature of AgileProjects may never endJust-in-time planning/YAGNI mentalityGeneral avoidance of project artifactsEmphasis on project/iteration backlogsGeneral avoidance of automated tools

Page 26: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Writing secure code

90% Writing Secure Features

Overflow defenseInput validationOutput encoding

10% Writing Security Features

CryptographyFirewallsACLs

Page 27: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Secure code does not featurize

Not a User Story

Doesn’t go in the Product

Backlog

Can’t get prioritized in or

out

Can’t decide to not do security

this sprint

Page 28: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Taskifying the SDL

Some are straightforward...Enable compiler switchesRun static analysis tools

…some are tougher (not actionable)Avoid banned APIsAccess databases safely

Page 29: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Two strategies

Verify these things by hand (alone or in pairs)Verify these things with tools

www.sondheim.com www.dow.com

Page 30: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Challenges: Adapting SDL to Agile

Iterative nature of AgileProjects may never endJust-in-time planning/YAGNI mentalityGeneral avoidance of project artifactsEmphasis on project/iteration backlogsGeneral avoidance of automated tools

Page 31: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Static analysis requirements

FxCopCAT.NETPREFast (/analyze)And/or your alternative tool(s) of choice

These are “every-sprint” requirementsBetter still: Continuous Integration

Page 32: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Dynamic analysis requirements

Fuzzers (homegrown)File parsersRPC interfacesActiveX controlsCOM objects

AppVerifierPassive HTTP traffic analysisAnd/or your alternative tool(s) of choice

These are “bucket” requirementsOr CI…

Page 33: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Secure coding libraries

AntiXssStrSafeSafeInt

Use always, check every sprint

<opinion>

This is the future of the SDL</opinion>

Page 34: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Strengths

Page 35: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Strengths: Adapting SDL to Agile

Bucket activities easily move in & out of sprintsTeams self-select best security activitiesSDL versioning is simpler and more currentEach iteration is a gate

Page 36: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Strengths: Adapting SDL to Agile

Bucket activities easily move in & out of sprintsTeams self-select best security activitiesSDL versioning is simpler and more currentEach iteration is a gate

“Welcome changing requirements, even late in development. Agile processes harness change for

the customer’s competitive advantage.”

Page 37: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Strengths: Adapting SDL to Agile

Bucket activities easily move in & out of sprintsTeams self-select best security activitiesSDL versioning is simpler and more currentEach iteration is a gate

“At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its

behavior accordingly.”

Page 38: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Strengths: Adapting SDL to Agile

Bucket activities easily move in & out of sprintsTeams self-select best security activitiesSDL versioning is simpler and more currentEach iteration is a gate

Page 39: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

SDL-Agile “versioning”

SDL-Classic

Updated yearlyGrandfather clause

SDL-Agile

Updated at any timeAutomatic updating

Page 40: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Strengths: Adapting SDL to Agile

Bucket activities easily move in & out of sprintsTeams self-select best security activitiesSDL versioning is simpler and more currentEach iteration is a gate

Page 41: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Each iteration is a gate

“Security and privacy are most effective when ‘built-in’ throughout the entire development

lifecycle”

“Security is most effective when it is ‘baked-in’ from the start”

This fits Agile perfectly

Page 42: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

The Agile Manifesto

Individuals and interactions

Working software

Customer collaboration

Responding to change

Processes and tools

Comprehensive documentation

Contract negotiation

Following a plan

Page 43: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

The SDL-Agile Manifesto

Continuous, incremental effort

Automated tasks

Planned incident response

Heroic pushes

Manual processes

Ad-hoc response

Page 44: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Security Development Lifecycle v4.1a- including SDL for Agile Development Guidance

announcing

Page 45: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

More Resources

http://www.microsoft.com/sdlhttp://blogs.msdn.com/sdl

My alias: bryansul

Page 46: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

question & answer

Page 47: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

www.microsoft.com/teched

Sessions On-Demand & Community

http://microsoft.com/technet

Resources for IT Professionals

http://microsoft.com/msdn

Resources for Developers

www.microsoft.com/learning

Microsoft Certification & Training Resources

Resources

Page 48: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

Complete an evaluation on CommNet and enter to win an Xbox 360 Elite!

Page 49: Bryan Sullivan Senior Security Program Mgr Microsoft SIA205

© 2009 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.