670 likes | 900 Views
Agile + SDL Concepts and Misconceptions. Avi Douglen Aware Security avid@AwareID.com (972)-52-7891133 Nir Bregman Senior Project Manager, HP nir.bregman@hp.com (972)-54-5597038. 15/09/2011. Agenda. Introduction Misconceptions Problems Concepts Solution. Introduction.
E N D
Agile + SDL Concepts and Misconceptions Avi Douglen Aware Security avid@AwareID.com (972)-52-7891133 Nir Bregman Senior Project Manager, HP nir.bregman@hp.com(972)-54-5597038 15/09/2011
Agenda • Introduction • Misconceptions • Problems • Concepts • Solution
“Agile” – A Definition “… a group of software development methodologiesbased on iterativedevelopment, where requirements and solutions evolvethrough collaboration between self-organizing cross-functional teams.” – Wikipedia
Agile Methodology – Key Features • Early feedback • Prioritized “backlog” • Inherent improvement process • Adaptive to changes • Short, incremental iterations or sprints • ‘Release like’ version every iteration • Team selects “user stories”
“SDL” – A Definition “A Security Development Lifecycle is a software development process to reduce software maintenance costs and increase reliability of software concerning software security.” - Wikipedia
SDL – Key Features • Activities for each development phase • Relatively formal process • Carefully controlled development
SDL – Main Activities • General • Designing SDLC model • Policies & guidelines • Training & education • Tools & products • Requirements Analysis • Classification • Security planning • Security requirements • Architecture • Initial Threat Modeling • Secure Architecture • Design • Detailed Threat Modeling • Mitigation of threats • Secure Design • Formulating security guidelines • Security Design Review • Coding • Secure Coding • Unit security tests • Initial security code review • Security push • Testing • Regression testing • Final security code review • Deployment inspection • Black box penetration tests • Final Security Review • Maintenance • Security response • Secure change management • Security bug tracking • Metrics • Process improvement
Agile is… … really just “Waterfall”,repeated over and over again
SDL is… Only good for “Waterfall” process
Agile is… Like the “Wild West” of programming
SDL is… Control freaks
Agile is… Inconsistent
SDL is… Not flexible
Agile is… Out of control
SDL is… Very heavy process
Agile means… No documentation
SDL means… lots of boring documents
Agile is… An excuse to take shortcuts
SDL is… Full of duplicate activities
Agile means… No planning
SDL is… Unnecessary, for good programmers
Agile is… Never ending
SDL is… Slowing down real development
Agile is… a set of ceremonies and disconnected techniques
SDL is… a set of ceremonies and disconnected tasks
Agile + SDL = FAIL! SDL Heavy Agile Light
Agile + SDL = FAIL! SDL Strict process Agile Adaptive process
Agile + SDL = FAIL! SDL Structured phases Agile Short iterations
Agile + SDL = FAIL! SDL Lots of activities Agile “Just enough”
Agile + SDL = FAIL! SDL Predefined checkpoints Agile Predefined priorities
Agile + SDL = FAIL! SDL Centralized control Agile Independent teams
Agile + SDL = FAIL! SDL Lots o’ docs Agile Not so much
Agile + SDL = FAIL! SDL Assurance Agile Responsibility
Agile + SDL = …? Putting SDL on top of Agile kind of feels like…
Agile Philosophy For SDL • “Early Feedback” already built in • Add Security to cross-functional team • Always do “just enough” work • Focus on the current sprint backlog • Prioritize, don’t micro-manage
Training Independent developers:Just teach them how to do things right
Mapping SDL to Agile Discovery Security planning
Mapping SDL to Agile Acceptance Tests Security requirements
Mapping SDL to Agile Non-functional stories Security features
Mapping SDL to Agile Integration QA Security testing
Mapping SDL to Agile • UserStory “Done definition” • Sprint entry criteria • Release completion criteria Security tasks
Mapping SDL to Agile “Abuser” stories Countermeasures