Agile and Secure Can We Be Both? Chicago OWASP. June 20 th, 2007



Similar documents
Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

Agile and Secure: Can We Be Both?

Vulnerability Management in an Application Security World. AppSec DC November 12 th, The OWASP Foundation

Entire contents 2011 Praetorian. All rights reserved. Information Security Provider and Research Center

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Introduction to Web Application Security. Microsoft CSO Roundtable Houston, TX. September 13 th, 2006

Secure By Design: Security in the Software Development Lifecycle

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

Threat Modeling: The Art of Identifying, Assessing, and Mitigating security threats

How to manage agile development? Rose Pruyne Jack Reed

The Agile approach Extreme Programming (XP) Implementing XP into a software project Introducing HCI design into agile software development Summary

Agile with XP and Scrum

Challenges of Software Security in Agile Software Development

ISSECO Syllabus Public Version v1.0

Agile Development Overview

Agile Development for Application Security Managers

Agile Project Management By Mark C. Layton

Building Security into the Software Life Cycle

AGIL JA, ABER SICHER? , ANDREAS FALK, 34. SCRUM TISCH

Turning the Battleship: How to Build Secure Software in Large Organizations. Dan Cornell May 11 th, 2006

Extreme Programming, an agile software development process

CSE 435 Software Engineering. Sept 16, 2015

Agile Software Development

Agile Scrum Workshop

Extreme Programming, an agile software development process

Introduction to Agile Software Development Process. Software Development Life Cycles

RISK MANAGMENT ON AN AGILE PROJECT

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

Secure Code Development

Mobile Application Threat Analysis

XP & Scrum. extreme Programming. XP Roles, cont!d. XP Roles. Functional Tests. project stays on course. about the stories

Getting Started with Agile Project Management Methods for Elearning

Agile Software Development Methodologies and Its Quality Assurance

Introduction to Agile and Scrum

From Agile by Design. Full book available for purchase here.

Software Development Life Cycle (SDLC)

How can I be agile and still satisfy the auditors?

Software Development Life Cycle Models - Process Models. Week 2, Session 1

In the IEEE Standard Glossary of Software Engineering Terminology the Software Life Cycle is:

PLM - Agile. Design Code Test. Sprints 1, 2, 3, 4.. Define requirements, perform system design, develop and test the system. Updated Project Plan

Vragen. Software development model. Software development model. Software development model

SOFTWARE PROCESS MODELS

Agile So)ware Development

Agile and lean methods for managing application development process

Development Processes (Lecture outline)

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

Agile Project Management and Agile Practices Training; with a Scrum Project that you will do.

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Testing in an Agile Environment

Agile Beyond The Team 1

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

Threat modeling. Tuomas Aura T Information security technology. Aalto University, autumn 2011

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Software Application Control and SDLC

Lean and Agile in Safety-critical Software Development Research and Practice. Henrik Jonsson

CHAPTER 3 : AGILE METHODOLOGIES. 3.3 Various Agile Software development methodologies. 3.4 Advantage and Disadvantage of Agile Methodology

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

When is Agile the Best Project Management Method? Lana Tylka

How Product Management Must Change To Enable the Agile Enterprise

Agile So6ware Development

Mariusz Chrapko. Before: Software Quality Engineer/ Agile Coach, Motorola, Poland. My Public Profile:

Software Development Going Incremental, Iterative and Agile:

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Agile Testing. What Students Learn

IBM Innovate AppScan: Introducin g Security, a first. Bobby Walters Consultant, ATSC bwalters@atsc.com Application Security & Compliance

Managing Vulnerabilities for PCI Compliance White Paper. Christopher S. Harper Managing Director, Agio Security Services

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

AGILE & SCRUM. Revised 9/29/2015

Integrating Security into the Application Development Process. Jerod Brennen, CISSP CTO & Principal Security Consultant, Jacadis

Software Development Process

Agile Testing and Extreme Programming

Agile processes. Extreme Programming, an agile software development process

Secure Development LifeCycles (SDLC)

Chapter 6. Iteration 0: Preparing for the First Iteration

A Capability Maturity Model (CMM)

Integrating Software Development Security Activities with Agile Methodologies

Agile Methodologies and Its Processes

Functional vs. Load Testing

Agile Security Successful Application Security Testing for Agile Development

An Agile Project Management Model

Table of contents. Performance testing in Agile environments. Deliver quality software in less time. Business white paper

Scrum. in five minutes

CSSE 372 Software Project Management: More Agile Project Management

Software Development: The Next Security Frontier

Basic Trends of Modern Software Development

Agile project management: A magic bullet?

Agile and lean methods for managing application development process

SECC Agile Foundation Certificate Examination Handbook

Course Title: Managing the Agile Product Development Life Cycle

Getting Business Value from Agile

Transcription:

Agile and Secure Can We Be Both? Chicago OWASP June 20 th, 2007

The Agile Practitioner s Dilemma Agile Forces: Be more responsive to business concerns Increase the frequency of stable releases Decrease the time it takes to deploy new features Do not waste time on superfluous documentation and planning Secure Forces: Comply with more aggressive regulatory environment Focus on need for security Traditional approaches to security require additional documentation and planning (D Oh!) 1

Objectives Background Basics of Agile Development Methods Basics of Secure Development Methods Review of Microsoft Secure Development Lifecycle (SDL) Review the Momentum of Agile Methods Look at An Integrated Process Challenges & Compromises 2

Background Programmer by background Both.NET and JEE: MCSD, Java 2 Certified Programmer Developer focused on security, not a security professional looking at development Denim Group Software Development:.NET and JEE Software / Application Security Vulnerability Assessments, Penetration Tests, Training, Mentoring Basis for this presentation: Work with our customers doing SDLC security mentoring Challenges facing our own agile development teams Deliver projects in an economically-responsible manner Uphold security goals 3

Notable Agile Methods extreme Programming (XP) Feature Driven Development (FDD) SCRUM MSF for Agile Software Development Agile Unified Process (AUP) Crystal 4

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 Source: http://www.agilemanifesto.org/ 5

Agile s Core Values Communication Simplicity Feedback Courage 6

Principles of Agile Development Rapid Feedback Simple Design The system is appropriate for the intended audience. The code passes all the tests. Incremental Change Embracing Change Quality Work The code communicates everything it needs to. Thecodehasthesmallestnumber has smallest of classes and methods. 7

Agile Practices The Planning Game The Driving Metaphor Customer:scope, priorities and release dates Developer: estimates, consequences and detailed scheduling Shared Vision On-Site Customer Small Releases Development iterations or cycles that last 1-4 weeks. Release iterations as soon as possible (weekly, monthly, quarterly). 8

More Agile Practices Collective Ownership Test Driven Continuous Integration Coding Standards Pair Programming 9

Definition of Secure A secure product is one that protects the confidentiality, integrity, and availability of the customers information, and the integrity and availability of processing resources under control of the system s stem s owner or administrator. -- Source: Writing Secure Code (Microsoft.com) com) 10

A Secure Development Process Strives To Be A Repeatable Process Requires Team Member Education Tracks Metrics and Maintains Accountability Sources: Writing Secure Code 2 nd Ed., Howard & LeBlanc The Trustworthy Computing Security Development Lifecycle by Lipner & Howard 11

Secure Development Principles SD 3 : Secure by Design, Secure by Default, and in Deployment Learn From Mistakes Minimize Your Attack Surface Assume External Systems Are Insecure Plan On Failure Never Depend on Security Through Obscurity Alone Fix Security Issues Correctly 12

Secure Development Practices Threat Modeling / Architectural Risk Assessment Education, Education, Education Secure Coding Via standards and practitioner knowledge Security Reviews Architecture t Design Code Security Testing (Penetration Testing) 13

Microsoft s s Secure Development Lifecycle (SDL) Requirements Design Implementation Verification Release (Waterfall!) 14

Observations of the SDL in Practice Threat Modeling is the Highest-Priority Component Drives other aspects of the process design, coding, testing Penetration Testing Alone is Not the Answer Badness-ometer (Gary McGraw) Tools Should be Complementary Security is not a checkbox to be checked with a tool 15

Threat Modeling STRIDE classify threats Spoofing Identity Tampering with Data Repudiation Information Disclosure Denial of Service Elevation of Privilege DREAD rank vulnerabilities Damage Potential Reproducibility Exploitability Affected Users Discoverability 16

Dr. Dobb s says Agile Methods Are Catching On 41% of organizations have adopted an agile methodology Of the 2,611 respondents doing agile 37% using extreme Programming 19% using Feature Driven Development (FDD) 16% using SCRUM 7% using MSF for Agile Software Development Source: http://www.ddj.com/dept/architect/191800169 17

Agile Teams are Quality Infected 60% reported increased productivity 66% reported improved quality 58% improved stakeholder satisfaction 18

Adoption Rate for Agile Practices Of the respondents using an agile method 36% have active customer participation 61% have adopted common coding guidelines 53% perform code regression testing 37% utilize pair programming 19

Let s Look at Some Specific Agile Methods extreme Programming (XP) Feature Driven Development (FDD) SCRUM MSF for Agile Software Development 20

extreme Programming (XP) 21

Feature Driven Development (FDD) Develop an Overall Model Startup Phase Build Features List Planning Design by Feature Build by Feature Construction Phase Source: http://featuredrivendevelopment.com/ 22

SCRUM Commonly Used to Enhance Existing Systems Feature Backlog 30 Day Sprints Daily Team Meeting Source: http://www.controlchaos.com/ 23

MSF for Agile Software Development Adapted from the Spiral / Waterfall Hybrid Product definition, development and testing occurs in overlapping iterations Different iterations have a different focus 24

An Integrated Process Making Agile Trustworthy 25

Project Roles Product Manager / Customer Program Manager / Coach Architect Developer Tester Security Adviser 26

Organization Setup Education & Training (include Security) Developers Testers Customers User Stories / Use Case Driven Processes Enterprise Architecture Decisions Organizational adoption of Threat Modeling 27

Project / Release Planning User Stories / Use Cases Drive Acceptance Test Scenarios Estimations may affect priorities and thus the composition of the release Inputs for Threat Modeling Security Testing Scenarios Determine the qualitative risk budget Keep the customer involved in making risk tradeoffs Finalize Architecture & Development Guidelines Common Coding Standards (include security) Crucial for collective code ownership Data Classification standards Conduct Initial Threat Modeling (assets & threats) Agree on STRIDE and DREAD classifications Designer s Security Checklist 28

Iteration Planning 1-4 Weeks in Length (2 weeks is very common) Begins with an Iteration ti Planning Meeting User Stories are broken down into Development Tasks Developers estimate their own tasks Document the Attack Surface (Story Level) Model the threats alongside the user story documentation Crucial in documentation-light processes Capture these and keep them Code will tell you what decision was made, threat models will tell you why decisions were made Crucial for refactoring in the face of changing security priorities Never Slip the Date Add or Remove Stories As Necessary 29

Executing an Iteration Daily Stand-ups Continuous Integration Code Scanning Tools Security Testing Tools Adherence to Common Coding Standards and Security Guidelines Crucial for communal code ownership Developer s Checklist 30

Closing an Iteration Automation of Customer Acceptance Tests Include negative testing for identified threats Security Code Review Some may have happened informally during pair programming 31

Stabilizing a Release Schedule Defects & Vulnerabilities Prioritize vulnerabilities with client input based on agreed-upon STRIDE and DREAD standards d Security Push Include traditional penetration testing 32

Compromises We ve Made Security Compromises: Short term, iterative focus removes top down control Focus on individual features can blind process to cross-feature security issues Agile Compromises: More documentation than is required in pure Agile development Security coding standards Data classification standards Project-specific STRIDE and DREAD standards User story threat models Additional tasks increase development time Forces customers to accept security (isn t this a good thing?) 33

Characteristics of an Agile and Secure Process Customer-focused Responsive Iterative Trustworthy 34

Questions Dan Cornell dan@denimgroup.com (210) 572-4400 Website: www.denimgroup.com Blog 1: www.agileandsecure.com Blog 2: denimgroup.typepad.com 35