Agile + SDL Concepts and Misconceptions

63
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation OWASP http://www.owasp.org Agile + SDL Concepts and Misconceptions Avi Douglen Aware Security [email protected] (972)-52-7891133 Nir Bregman Senior Project Manager, HP [email protected] (972)-54-5597038 15/09/2011

description

Agile + SDL Concepts and Misconceptions. Avi Douglen Aware Security [email protected] (972)-52-7891133 Nir Bregman Senior Project Manager, HP [email protected] (972)-54-5597038. 15/09/2011. Agenda. Introduction Misconceptions Problems Concepts Solution. Introduction. - PowerPoint PPT Presentation

Transcript of Agile + SDL Concepts and Misconceptions

Page 1: Agile + SDL  Concepts and Misconceptions

Copyright © The OWASP FoundationPermission is granted to copy, distribute and/or modify this document under the terms of the OWASP License.

The OWASP Foundation

OWASP

http://www.owasp.org

Agile + SDL Concepts and Misconceptions

Avi DouglenAware [email protected](972)-52-7891133

Nir BregmanSenior Project Manager, HP [email protected](972)-54-5597038

15/09/2011

Page 2: Agile + SDL  Concepts and Misconceptions

OWASP 2

Agenda

IntroductionMisconceptionsProblemsConceptsSolution

Page 3: Agile + SDL  Concepts and Misconceptions

OWASP

INTRODUCTION

3

Page 4: Agile + SDL  Concepts and Misconceptions

OWASP

“Agile” – A Definition

“… a group of software development methodologies based on iterative development, where requirements and solutions evolve through collaboration between self-organizing cross-functional teams.”

– Wikipedia 4

Page 5: Agile + SDL  Concepts and Misconceptions

OWASP

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”5

Page 6: Agile + SDL  Concepts and Misconceptions

OWASP

“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

6

Page 7: Agile + SDL  Concepts and Misconceptions

OWASP

SDL – Microsoft Model

7

Page 8: Agile + SDL  Concepts and Misconceptions

OWASP

SDL – OWASP Model (CLASP)

8

Page 9: Agile + SDL  Concepts and Misconceptions

OWASP

SDL – Key Features

Activities for each development phaseRelatively formal processCarefully controlled development

9

Page 10: Agile + SDL  Concepts and Misconceptions

OWASP

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

10

Page 11: Agile + SDL  Concepts and Misconceptions

OWASP

MISCONCEPTIONS

11

Page 12: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

… really just “Waterfall”,repeated over and over again

12

Page 13: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Only good for “Waterfall” process

13

Page 14: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

Like the “Wild West” of programming

14

Page 15: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Control freaks

15

Page 16: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

Inconsistent

16

Page 17: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Not flexible

17

Page 18: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

Out of control

18

Page 19: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Very heavy process

19

Page 20: Agile + SDL  Concepts and Misconceptions

OWASP

Agile means…

No documentation

20

Page 21: Agile + SDL  Concepts and Misconceptions

OWASP

SDL means…

lots of boring documents

21

Page 22: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

22

An excuse to take shortcuts

Page 23: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Full of duplicate activities

23

Page 24: Agile + SDL  Concepts and Misconceptions

OWASP

Agile means…

No planning

24

Page 25: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Unnecessary, for good programmers

25

Page 26: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

Never ending

26

Page 27: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

Slowing down real development

27

Page 28: Agile + SDL  Concepts and Misconceptions

OWASP

Agile is…

a set of ceremonies anddisconnected techniques

28

Page 29: Agile + SDL  Concepts and Misconceptions

OWASP

SDL is…

a set of ceremonies and disconnected tasks

29

Page 30: Agile + SDL  Concepts and Misconceptions

OWASP

PROBLEM

30

Page 31: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Heavy

Agile Light

31

Page 32: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Strict process

Agile Adaptive process

32

Page 33: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Structured phases

Agile Short iterations

33

Page 34: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Lots of activities

Agile “Just enough”

34

Page 35: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Predefined checkpoints

Agile Predefined priorities

35

Page 36: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Centralized control

Agile Independent teams

36

Page 37: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Lots o’ docs

Agile Not so much

37

Page 38: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = FAIL!

SDL Assurance

Agile Responsibility

38

Page 39: Agile + SDL  Concepts and Misconceptions

OWASP

Agile + SDL = …?

Putting SDL on top of Agile

kind of feels like…

39

Page 40: Agile + SDL  Concepts and Misconceptions

OWASP 40

Page 41: Agile + SDL  Concepts and Misconceptions

OWASP

We’ve been doing it wrong!

41

Page 42: Agile + SDL  Concepts and Misconceptions

OWASP

CONCEPTS

42

Page 43: Agile + SDL  Concepts and Misconceptions

OWASP

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-manage43

Page 44: Agile + SDL  Concepts and Misconceptions

OWASP

Training

Independent developers:Just teach them how to do things right

44

Page 45: Agile + SDL  Concepts and Misconceptions

OWASP

Mapping SDL to Agile

Discovery

Security planning

45

Page 46: Agile + SDL  Concepts and Misconceptions

OWASP

Mapping SDL to Agile

Acceptance Tests

Security requirements

46

Page 47: Agile + SDL  Concepts and Misconceptions

OWASP

Mapping SDL to Agile

Non-functional stories

Security features

47

Page 48: Agile + SDL  Concepts and Misconceptions

OWASP

Mapping SDL to Agile

Integration QA

Security testing

48

Page 49: Agile + SDL  Concepts and Misconceptions

OWASP

Mapping SDL to Agile

UserStory “Done definition” Sprint entry criteria

Release completion criteria

Security tasks

49

Page 50: Agile + SDL  Concepts and Misconceptions

OWASP

Mapping SDL to Agile

“Abuser” stories

Countermeasures

50

Page 51: Agile + SDL  Concepts and Misconceptions

OWASP

Frequency-based “Wedges”

51

Page 52: Agile + SDL  Concepts and Misconceptions

OWASP

SUGGESTED SOLUTION

52

Page 53: Agile + SDL  Concepts and Misconceptions

OWASP

Ramp-up / Prerequisites

Security advisor

Coding guidelines

Regulations and policies

Training

53

Page 54: Agile + SDL  Concepts and Misconceptions

OWASP

First Discovery

Security plan

Baseline Threat Model

Security response plan

54

Page 55: Agile + SDL  Concepts and Misconceptions

OWASP

Discovery

Design review for User Stories

User Stories for security features

Review changes to Tech.Spec

Update Threat Model for features

55

Page 56: Agile + SDL  Concepts and Misconceptions

OWASP

Sprint Entry Criteria

Automated static code

analysis

Fix all High+ security bugs

56

Page 57: Agile + SDL  Concepts and Misconceptions

OWASP

UserStory Done Definition

Secure coding

Focused manual code reviews

(via “eXtreme Programming”)Build security Unit TestsPass security user story tests

57

Page 58: Agile + SDL  Concepts and Misconceptions

OWASP

Integration QA

In-depth manual code review

Penetration testing

Review default configuration

58

Page 59: Agile + SDL  Concepts and Misconceptions

OWASP

Release Completion Criteria

Ensure recent training

Response plan is updated

High-level security review

(FSR)

59

Page 60: Agile + SDL  Concepts and Misconceptions

OWASP

“Bucket” Requirements

Verification bucket

Design bucket

Planning bucket

Security bug barPrivacy test planDRP / BCP

60

Review crypto design

Strong namesPrivacy review

FuzzingBinary analysisCOM object

testing

Page 61: Agile + SDL  Concepts and Misconceptions

OWASP

Security “Spike”

Entire Sprint focused on security

Handle “Security Debt”

Intensive search for vulnerabilities

Do cross-feature requirements

61

Page 62: Agile + SDL  Concepts and Misconceptions

OWASP

Summary

“Classic” SDL was about external control

Agile SDL is about internal control

Change from prescriptive to descriptive

Teams are expected to do the right thing

Can be even stronger than “Classic” SDL

62

Page 63: Agile + SDL  Concepts and Misconceptions

OWASP

Questions?

63