![Page 1: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/1.jpg)
SDL in an Agile World
MSSD-3 — третья по счету конференция, посвященная всестороннему обсуждению популярной и важной темы – минимизация уязвимостей программного обеспечения при его разработке.
![Page 2: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/2.jpg)
What does “Agile” mean, anyway?
![Page 3: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/3.jpg)
What does “Agile” mean, anyway?
![Page 4: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/4.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/5.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/6.jpg)
Challenges
![Page 7: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/7.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/8.jpg)
• Fits spiral or waterfall…• …but Agile doesn’t have phases
SDL “Classic” phased approach
![Page 9: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/9.jpg)
• Very secure!• But not Agile.
Idea: Do the full SDL every iteration
![Page 10: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/10.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/11.jpg)
• Very Agile!• But not secure.
Idea: Move SDL tasks to product backlog
![Page 12: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/12.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/13.jpg)
SDL-Agile process
![Page 14: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/14.jpg)
SDL-Agile process
![Page 15: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/15.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/16.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/17.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/18.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/19.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/20.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/21.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/22.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/23.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/24.jpg)
Two options
• Verify manually • Verify with tools
![Page 25: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/25.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/26.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/27.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/28.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/29.jpg)
Strengths
![Page 30: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/30.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/31.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/32.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/33.jpg)
• 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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/34.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/35.jpg)
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 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/36.jpg)
• http://www.microsoft.com/sdl• http://blogs.msdn.com/b/sdl
More resources
![Page 37: SDL in an Agile World MSSD-3 третья по счету конференция, посвященная всестороннему обсуждению популярной и важной](https://reader035.vdocument.in/reader035/viewer/2022081505/5519bafa5503465b578b4985/html5/thumbnails/37.jpg)
Thank you
Спасибо за внимание