sdl in an agile world mssd-3 третья по счету конференция,...

37
SDL in an Agile World MSSD-3 — третья по счету конференция, посвященная всестороннему обсуждению популярной и важной темы – минимизация уязвимостей программного обеспечения при его разработке.

Upload: cora-beckford

Post on 31-Mar-2015

241 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

SDL in an Agile World

MSSD-3 — третья по счету конференция, посвященная всестороннему обсуждению популярной и важной темы – минимизация уязвимостей программного обеспечения при его разработке.

Page 2: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

What does “Agile” mean, anyway?

Page 3: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

What does “Agile” mean, anyway?

Page 4: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

The Agile manifesto

• Individuals and interactions

• Processes and tools

• Working software • Comprehensive documentation

• Customer collaboration

• Contract negotiation

• Responding to change

• Following a plan

Page 5: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Security Development Lifecycle

Ongoing Process Improvements

ProcessEducation

Accountability

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: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Challenges

Page 7: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Iterative nature of Agile• Projects may never end• Just-in-time planning/YAGNI mentality• Emphasis on project/iteration backlogs• General avoidance of automated tools

Challenges of adapting SDL to Agile

Page 8: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Fits spiral or waterfall…• …but Agile doesn’t have phases

SDL “Classic” phased approach

Page 9: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Very secure!• But not Agile.

Idea: Do the full SDL every iteration

Page 10: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• From the Principles Behind the Agile Manifesto:

Short timescale

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

preference to the shorter timescale.”

Page 11: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Very Agile!• But not secure.

Idea: Move SDL tasks to product backlog

Page 12: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• But every requirement is, well, required

• We need to keep all requirements• We need to reorganize into Agile-friendly form

Idea: Drop some requirements

Page 13: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

SDL-Agile process

Page 14: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

SDL-Agile process

Page 15: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Three classes of requirements

Every Sprint

Training

Threat modeling

etc...

One-Time Only

Set up tracking

Create response

plan

etc...

Bucket

Fuzz parsers

Refresh response

plan

etc…

Page 16: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• One-time requirements get added to the Product Backlog (with deadlines)

• So do bucket requirements

• Every-sprint requirements go to the Sprint Backlog directly

Requirements as backlog items

Product Backlog• Set up tracking system• Upgrade to VS2012• Fuzz image parser• Fuzz network parser• …

Sprint Backlog• Threat model new stored

procedures• Run static analysis• …

Page 17: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Agile “sashimi”

• All every-sprint requirements complete

• No bucket items more than six months old

• No expired one-time requirements

• No open security bugs

Page 18: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Iterative nature of Agile• Projects may never end• Just-in-time planning/YAGNI mentality• Emphasis on project/iteration backlogs• General avoidance of automated tools

Challenges of adapting SDL to Agile

Page 19: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

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

Security incident response

Page 20: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Iterative nature of Agile• Projects may never end• Just-in-time planning/YAGNI mentality• Emphasis on project/iteration backlogs• General avoidance of automated tools

Challenges of adapting SDL to Agile

Page 21: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Writing secure code

• 90% Writing secure features• Overflow defense• Input validation• Output encoding

• 10% Writing security features• Cryptography• Firewalls• Access Control

Lists

Page 22: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Secure code cannot be a "feature"

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 23: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Some SDL requirements are straightforward...– Enable compiler switches– Run static analysis tools

• …some are more difficult (not actionable)– Avoid banned APIs– Access databases safely

Breaking the SDL into tasks

Page 24: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Two options

• Verify manually • Verify with tools

Page 25: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Iterative nature of Agile• Projects may never end• Just-in-time planning/YAGNI mentality• Emphasis on project/iteration backlogs• General avoidance of automated tools

Challenges of adapting SDL to Agile

Page 26: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• FxCop• CAT.NET• PREFast (/analyze)• And/or your alternative tool(s) of choice

• These are “every-sprint” requirements• Better still: Continuous Integration

Static analysis requirements

Page 27: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Fuzzers (homegrown)• AppVerifier• Passive HTTP traffic analysis• And/or your alternative tool(s) of choice

• These are “bucket” requirements• Or Continuous Integration

Dynamic analysis requirements

Page 28: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Web Protection Library (a.k.a AntiXss)• StrSafe• SafeInt

• Use always, check every sprint

Secure coding libraries

Page 29: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Strengths

Page 30: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Bucket activities easily move in & out of sprints

• Teams self-select best security activities• Each iteration is a gate

Strengths of Agile in SDL

Page 31: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Bucket activities easily move in & out of sprints

• Teams self-select best security activities• Each iteration is a gate

Strengths of Agile in SDL

“Welcome changing requirements, even late in development. Agile processes harness change for the customer’s

competitive advantage.”

Page 32: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Bucket activities easily move in & out of sprints

• Teams self-select best security activities• Each iteration is a gate

Strengths of Agile in SDL

“At regular intervals, the team reflects on how to become more effective, then

tunes and adjusts its behavior accordingly.”

Page 33: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• Bucket activities easily move in & out of sprints

• Teams self-select best security activities• Each iteration is a gate

Strengths of Agile in SDL

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

development lifecycle”

Page 34: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

The Agile manifesto

• Individuals and interactions

• Processes and tools

• Working software • Comprehensive documentation

• Customer collaboration

• Contract negotiation

• Responding to change

• Following a plan

Page 35: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

The SDL-Agile manifesto

• Continuous, incremental effort

• Heroic pushes

• Automated tools • Manual processes

• Planned response • Ad-hoc response

Page 36: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

• http://www.microsoft.com/sdl• http://blogs.msdn.com/b/sdl

More resources

Page 37: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной

Thank you

Спасибо за внимание