47
Agile yes, but secure? OWASP Meeting Stuttgart 3.8.2015

Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Embed Size (px)

Citation preview

Page 1: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Agile yes, but secure?

OWASP Meeting Stuttgart

3.8.2015

Page 2: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

About me

8/3/2015 Chapter Meeting Stuttgart

Andreas Falk NovaTec Consulting GmbH [email protected]

@NT_AQE @Agile_Security

Page 3: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Who‘s next to be hacked?

8/3/2015 Chapter Meeting Stuttgart

Page 4: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Who‘s next to be hacked?

8/3/2015 Chapter Meeting Stuttgart

Page 5: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Who‘s next to be hacked?

8/3/2015 Chapter Meeting Stuttgart

Page 6: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Are firewalls really sufficient?

8/3/2015 Chapter Meeting Stuttgart

http://owasp.org

Page 7: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Web Application Security: OWASP Top 10

8/3/2015 Chapter Meeting Stuttgart

http://owasp.org

Page 8: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

New Security Challenges

8/3/2015 Chapter Meeting Stuttgart

Cloud Computing & Big Data

Micro-service

Micro-service

Rest

Messaging Microservices

Internet of Things (IoT)

Big Data No SQL

Computing

Storage

Map/Reduce

Page 9: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Security == Agile?

8/3/2015 Chapter Meeting Stuttgart

Sprint 1 Sprint 2 Sprint …n

Story A

Story B

Story C

Story D

Story E

Story F

Story G

Story H

Penetrationtest Security Features

Page 10: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Potentially Releasable?

8/3/2015 Chapter Meeting Stuttgart

“ The Development Team consists of professionals who do the work of delivering a potentially releasable

increment of “Done” product at the end of each Sprint ”

Scrum Guide:

Release potentially unsecure ?

http://www.scrumguides.org

Page 11: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Attacker Schedule: 24h x 7d

8/3/2015 Chapter Meeting Stuttgart

Time

Attacker Schedule

Penetrationtest Penetrationtest

Sprint Sprint Sprint Sprint Sprint Sprint Sprint

Page 12: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Microsoft Security Development Lifecycle (SDL)

8/3/2015 Chapter Meeting Stuttgart

https://www.microsoft.com/en-us/sdl/

Page 13: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Automotive SDL (V-Model)

8/3/2015 Chapter Meeting Stuttgart

Page 14: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Next Stop: Secure Agile Development

8/3/2015 Chapter Meeting Stuttgart

Page 15: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Manifesto for Agile Software Development

Individuals and Interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

8/3/2015 Chapter Meeting Stuttgart

Page 16: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Manifesto for Secure Agile Software Development

8/3/2015 Chapter Meeting Stuttgart

Individuals and Interactions over processes and tools

Working software over comprehensive documentation

Customer collaboration over contract negotiation

Responding to change over following a plan

complex security policies

Secure working software

static threat model

vague security requirements

Page 17: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Agile Development

8/3/2015 Chapter Meeting Stuttgart

Page 18: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

The Rugged Manifesto I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed, and for longer than it was ever intended. I recognize that my code will be attacked by talented and persistent adversaries who threaten our physical, economic, and national security. I am rugged because I refuse to be a source of vulnerability or weakness. I am rugged, not because it is easy, but because it is necessary... and I am up for the challenge. https://www.ruggedsoftware.org

8/3/2015 Chapter Meeting Stuttgart

Page 19: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Microsoft SDL for Agile Development

8/3/2015 Chapter Meeting Stuttgart

Agile Process SDLC Tasks

One Time • Baseline thread model • Estabish security response plan • …

Regular Basis • Privacy review • Manual & automatic security code review • …

Every Sprint • Security training • Threat modeling • Secure coding • Code reviews • …

Page 20: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

OWASP Open Software Assurance Maturity Model (OpenSAMM)

8/3/2015 Chapter Meeting Stuttgart

http://www.opensamm.org/

Page 21: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

OpenSAMM - Construction

8/3/2015 Chapter Meeting Stuttgart

Page 22: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

OpenSAMM - Verification

8/3/2015 Chapter Meeting Stuttgart

Page 23: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Agile Development with Scrum

8/3/2015 Chapter Meeting Stuttgart

Product Owner Developer

Test & QA

Scrum Master

Page 24: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Agile Development with Scrum

8/3/2015 Chapter Meeting Stuttgart

Sprint

Daily Scrum

Potentially

Shippable

Increment

Sprint

Review &

Retro

Sprint

Planning

Sprint

Backlog

Security

Security-Trainings

Security

Secure

Product

Backlog

Page 25: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Security Trainings • Security Risk Identification & Management

• Data Privacy Requirements

• Threat Modeling

• Security Features

• Security User Stories („Abuse Stories“)

8/3/2015 Chapter Meeting Stuttgart

Product Owner

Development

Team

• Threat Modeling

• Secure Coding

• Security Code Reviews

• Security Testing (Manual & Automatic)

Page 26: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Threat Modeling is „Agile“…

8/3/2015 Chapter Meeting Stuttgart

1

2

3

4

6

5

Create Production Code

Make Tests Pass

Test Driven

Development (TDD)

Write Security Tests First

Create Security Testcases

and Abuse User Stories

Adapt Threat

Model

Discussion Basis

Identify and Mitigate

Threats

„Elevation of privilege“ game

Define Software-

Architecture

User Stories,

UML Diagrams

Page 27: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Playing games…

8/3/2015 Chapter Meeting Stuttgart

Scrum Planning Poker

Threat Modeling Game

Page 28: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Development with Scrum

• Update threat model (on-going)

• Define abuse user stories

• Plan security features early

• Security acceptance criteria

• Extend „Definition of Ready“ with security

8/3/2015 Chapter Meeting Stuttgart

Product Backlog

Story A

Story B

Abuse Story

Security Features

Page 29: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Abuse (Evil) User Stories

8/3/2015 Chapter Meeting Stuttgart

Business User Story

Evil User Story 1

Evil User Story N

As a customer I want to

select products and

add them to my

shopping cart in order

to buy these.

As an evil user I want to

manipulate requests to

change prices when

adding products to my

shopping cart.

Page 30: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Development with Scrum

• Update threat model (on-going)

• Plan abuse user story tasks

• Plan security features tasks

• Refine security acceptance criteria

• Define and plan security test strategies

8/3/2015 Chapter Meeting Stuttgart

Sprint Planning

Page 31: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Development with Scrum

• Discuss security risks

• (Re-)plan security tasks

8/3/2015 Chapter Meeting Stuttgart

Sprint

Daily Scrum

• Secure coding

• Pair programming/test with security expert

• „Security Officer“ developer

• „Security-Aware“ Definition of Done

• Security regression testing (CI)

• Security code reviews

Page 32: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Coding – „Clean Code“

• Boundaries (3rd party code)

• Error Handling

• Good Comments

• Unit Tests

• Constant Refactoring

• Keep it simple & DRY

• …

8/3/2015 Chapter Meeting Stuttgart

Page 33: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Coding – Security Patterns

• Input validation • Output escaping • Use prepared SQL

statements • No sensible data in logs • No stack traces on the UI • Session management • Access Controls • …

8/3/2015 Chapter Meeting Stuttgart

Page 34: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Coding – Standard Frameworks

• Standard cryptography • Validating/escaping UI

frameworks e.g. – JavaServer Faces – Vaadin (GWT)

• Proven security frameworks – Spring Security – Apache Shiro – OWASP ESAPI

8/3/2015 Chapter Meeting Stuttgart

Page 35: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Coding – Secure app in 5 minutes

8/3/2015 Chapter Meeting Stuttgart

Page 36: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Coding – Security issues in the IDE

8/3/2015 Chapter Meeting Stuttgart

http://www.contrastsecurity.com/eclipse

Page 37: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Testing

8/3/2015 Chapter Meeting Stuttgart

Q1

Q2

Q3 Q4

Business Facing

Critiq

ue P

rod

uct

Technology Facing

Support

ing t

he T

eam

Functional Tests Examples Story Tests Prototypes Simulations

Unit Tests Component Tests

Exploratory Testing Scenarios

Usability Testing UAT (User Acpt. Testing)

Alpha / Beta

Performance & Load Testing

Security Testing „ility“ Testing

Automated

Automated &

Manual

Manual

Tools

Cri

spin

, Lis

a; G

reg

ory,

Jan

et (

200

8). A

gil

e T

esti

ng:

Page 38: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Testing

8/3/2015 Chapter Meeting Stuttgart

Technology

Business

Detail

Complexity / Cost Manual,

Exploratory

Testing

Automated Security UI-Tests

Service Layer Tests

(API-Layer) Subcutaneous Tests (Martin

Fowler)

Unit Tests

Quantity

Cri

spin

, Lis

a; G

reg

ory

, Jan

et (

20

08

). A

gil

e T

esti

ng

:

Unit & Component Tests

Page 39: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Testing

8/3/2015 Chapter Meeting Stuttgart

Page 40: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Stage 1: Static Security Testing

8/3/2015 Chapter Meeting Stuttgart

Continuous Integration (CI)

Developer 1

1 Pull-Request

2 Trigger Build

3 Check-Out 4

Build & Tests

& Static Code Analysis

& Dependency Check

5 Report Build Result

Developer 2 6 (Security) Code-

Review

7 Push to Stable

Page 41: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Static Code Analysis: FindBugs

• Detects 63 different vulnerability patterns

• OWASP TOP 10 and CWE coverage

• IDE- and CI-integrations

8/3/2015 Chapter Meeting Stuttgart

http://h3xstream.github.io/find-sec-bugs

http://findbugs.sourceforge.net

+

Page 42: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Static Code Analysis: SonarQube

• Detects lots of security problems

– SANS TOP 25

– OWASP Top 10

– CWE references (http://cwe.mitre.org)

8/3/2015 Chapter Meeting Stuttgart

http://docs.sonarqube.org/display/PLUG/Java+Plugin

http://www.sonarqube.org

+ Java Plugin

Page 43: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Dependency Check • Detects vulnerabilities in 3rd party libraries

– Java, .NET, Python applications – Checks libary information against imported CVE data – Sometimes needs supressing false positives – Supports Command line, Ant, Maven, Gradle, Jenkins

8/3/2015 Chapter Meeting Stuttgart

http://jeremylong.github.io/DependencyCheck

Page 44: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Stage 2: Dynamic Security-Testing

8/3/2015 Chapter Meeting Stuttgart

Acceptance Testing

UI-Testing 2 1 Deploy

4

Reporting 3 Active Scanning

Proxy

Page 45: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Secure Agile Development with Scrum

• Verify threat model coverage

• Review abuse user stories and security acceptance criteria

• Make security topics visible for customer

• Inspect and adapt security activities

8/3/2015 Chapter Meeting Stuttgart

Sprint Review &

Retro

Page 46: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Security == Agile!

8/3/2015 Chapter Meeting Stuttgart

Sprint 1 Sprint 2 Sprint …n

Story A

Story B

Story C

Story D

Story E

Story F

Story G

Story H

Pen-Test

Abuse Story

Abuse Story

Security Features

Page 47: Agile yes, but secure? - OWASP · PDF fileAgile yes, but secure? OWASP Meeting Stuttgart ... Manifesto for Agile Software Development ... Responding to change over following a plan

Don‘t make it that EASY to break software!

8/3/2015 Chapter Meeting Stuttgart