Top Banner
Are Agile Development Methodologies Eroding your Application's Security? Tony Rice Cisco InfoSec Photo: Katie Lips
23

Are Agile Development Methodologies Eroding your Application's Security?

Apr 15, 2017

Download

Engineering

Tony Rice
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Are Agile Development Methodologies Eroding your Application's Security?

Are Agile Development Methodologies

Eroding your Application's Security?

Tony RiceCisco InfoSec

Photo: Katie Lips

Page 2: Are Agile Development Methodologies Eroding your Application's Security?

Agile vs. Waterfall

“The Homer” courtesy of Fox

Sprint 2

Waterfall

Sprint 1 Sprint 3

Backlog

BacklogBacklog

Page 3: Are Agile Development Methodologies Eroding your Application's Security?

Does Agile promote Security?

Security in the Software Lifecycle (1.2) - Department of Homeland Security

Satisfy customer with early and continuous delivery of software

Welcome changing requirements, even late in development.

Deliver working software frequently on a shorter timescale.

both management and customers trust developers

Hire motivated individuals &trust them Face-to-face conversation is the most efficient communication method

Working software is the primary measure of progress.

Should be able to maintain a constant pace indefinitely.

Continuous attention to design and technical excellence design enhances agility. Simplicity is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

The team must reflect and adjust at regular intervals

Page 4: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 4

Pro

• Coding Standards • Continuous testing • Design simplicity • Automation • Progress measured and

reflected on

Con

• Customer is the only driver • Requirements focus solely on

functionality • Security tests don’t fit well into

unit tests • Insulated customer-team focus • Measure progress in

functionality • Trust

Maintaining Security while Staying Agile

Page 5: Are Agile Development Methodologies Eroding your Application's Security?

Does Agile promote Security?

Security in the Software Lifecycle (1.2) - Department of Homeland Security

Satisfy customer with early and continuous delivery of software

Welcome changing requirements, even late in development.

Deliver working software frequently on a shorter timescale. both management and customers trust developers

Hire motivated individuals & trust them Face-to-face conversation is the most efficient communication method

Working software is the primary measure of progress.

Should be able to maintain a constant pace indefinitely.

Continuous attention to design and technical excellence design enhances agility. Simplicity is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

The team must reflect and adjust at regular intervals

Page 6: Are Agile Development Methodologies Eroding your Application's Security?

Does Agile promote Security?

Security in the Software Lifecycle (1.2) - Department of Homeland Security

Satisfy customer with early and continuous delivery of software

Welcome changing requirements, even late in development.

Deliver working software frequently on a shorter timescale. both management and customers trust developers

Hire motivated individuals & trust them Face-to-face conversation is the most efficient communication method

Working software is the primary measure of progress.

Should be able to maintain a constant pace indefinitely.

Continuous attention to design and technical excellence design enhances agility. Simplicity is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

The team must reflect and adjust at regular intervals

Page 7: Are Agile Development Methodologies Eroding your Application's Security?

Does Agile promote Security?

Security in the Software Lifecycle (1.2) - Department of Homeland Security

Satisfy customer with early and continuous delivery of software

Welcome changing requirements, even late in development.

Deliver working software frequently on a shorter timescale.

both management and customers trust developers

Hire motivated individuals & trust them Face-to-face conversation is the most efficient communication method

Working software is the primary measure of progress.

Should be able to maintain a constant pace indefinitely.

Continuous attention to design and technical excellence design enhances agility. Simplicity is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

The team must reflect and adjust at regular intervals

Page 8: Are Agile Development Methodologies Eroding your Application's Security?

Does Agile promote Security?

Security in the Software Lifecycle (1.2) - Department of Homeland Security

Satisfy customer with early and continuous delivery of software

Welcome changing requirements, even late in development.

Deliver working software frequently on a shorter timescale.

both management and customers trust developers

Hire motivated individuals & trust them Face-to-face conversation is the most efficient communication method

Working software is the primary measure of progress.

Should be able to maintain a constant pace indefinitely.

Continuous attention to design and technical excellence design enhances agility. Simplicity is essential.

The best architectures, requirements, and designs emerge from self-organizing teams.

The team must reflect and adjust at regular intervals

Page 9: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 9

The Solution

xkcd#327 courtesy Randall Munroe

1. Introduce fewer bugs 2. Discover them earlier

Page 10: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 10

Cost to Fix

$1

$100-1000

$15

$30

Source: Software Engineering Economics, Barry W. Boehm

30%18%

Requirements Design Coding Test Deploy

Functional Defect Introduction

Page 11: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public

Security Vulnerability Introduction

Requirements Design Coding Test Deploy

11

Source: Software Engineering Economics, Barry W. Boehm

60%

Page 12: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 12

Cost to Fix

$1

$100-1000

$15

$30

Source: Software Engineering Economics, Barry W. Boehm

86%

Requirements Design Coding Test

Defect/Vulnerability Discovery

Requirements Design Coding Test Deploy

Page 13: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public

Requirements Design Coding Test Deploy

13

Cost to Fix

$1

$100-1000

$15

$30

Sources: Software Engineering Economics, Barry W. Boehm, Error Cost Escalation Through the Project Life Cycle.”, Haskins, Bill, et al.. NASA JSC, 2004

$1

$100-1000

$15

$30

Cost to Fix

Page 14: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 14

Keeping up with DevOps

Page 15: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 15

Requirements & Design Coding Integration Test Deploy

✗ Code merged by hand (senior developer) ✗ Ad hoc manual builds, manual tests ✗ little or no security requirements

Measurement: customer complaints

Manual Everything

Page 16: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 16

Requirements & Design Coding Integration Test Deploy

✔ Automated builds✔ Automated integration testing✔ Automated Vulnerability Scanning

Measurement: build quality, vulnerability remediation

Continuous Integration

Page 17: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 17

CI Platform

CI Platform

Static/Dynamic Vulnerability

Analysis

Rest API

Code Change

DB

Developer Feedback

Continuous Security – in Stage

InfoSec Analytics

Training

Page 18: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 18

Requirements & Design Coding Integration Test Deploy

✔ Security included in requirements ✔ Threat modeling✔ Common security libraries

Measurement: adoption

Secure by Design

Page 19: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 19

✔ Zero manual intervention from check-in to deployment✔ Only inputs: code, configs and tests✔ Test driven development✔ Fuzz testing

Measurement: code coverage

End to End Continuous Security

Requirements & Design Coding Integration Test Deploy

Page 20: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 20

Continuous Security – in Dev

Page 21: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 21

• Make security stories a priority • Assess security early and often • Shorten feedback loops to developers • Security vulnerabilities are serious defects, treat them as such • Automate everything

• Don’t just build working software, build secure working software

TakeawaysDon’t allow Agile’s pace to divert security focus

SECURE

Page 22: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 22

Page 23: Are Agile Development Methodologies Eroding your Application's Security?

© 2016 Cisco. All rights reserved. Cisco Public 23

Additional Reading

• How Cisco IT Developed a Self-Service Model for Build and Deploy – Cisco IT

• Haskins, Bill, et al.. "8.4.2 Error Cost Escalation Through the Project Life Cycle." INCOSE International Symposium 14.1 (2004): 1723-737. NASA Technical Reports Server. NASA Johnson Space Center.

• Boehm, Barry W. Software Engineering Economics. Englewood Cliffs, NJ: Prentice-Hall, 1981. ISBN 0138221227

• Puppet Labs. State of DevOps Report (2016)

• Martin, James. An Information Systems Manifesto. Englewood Cliffs, NJ: Prentice-Hall, 1984. ISBN 0134647696.

• Security in the Software Lifecycle, Department of Homeland Security (August 2006)

• Moving Targets: Security and Rapid-Release in Firefox, Sandy Clark, et al.

• Risk, Loss and Security Spending in the Financial Sector, Sans Institute