Agile and Secure: Can We Be Both?



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

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

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

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

Agile with XP and Scrum

How to manage agile development? Rose Pruyne Jack Reed

Contents. 3 Agile Modelling Introduction Modelling Misconceptions 31

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

Extreme Programming, an agile software development process

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

Introduction to Agile Software Development Process. Software Development Life Cycles

Agile in Financial Services A Framework in Focus

How To Plan A Project

Agile Development Overview

Extreme Programming, an agile software development process

Agile Testing and Extreme Programming

Agile Software Development in the Large

Software processes that are:

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

CSSE 372 Software Project Management: More Agile Project Management

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

EXTREME PROGRAMMING AGILE METHOD USED IN PROJECT MANAGEMENT

Agile Practitioner: PMI-ACP and ScrumMaster Aligned

CSE 435 Software Engineering. Sept 16, 2015

Introduction to Agile Software Development. EECS 690 Agile Software Development

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

SOFTWARE PROCESS MODELS

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

How To Understand The Limitations Of An Agile Software Development

PMP vs. Scrum Master

Software Engineering

When is Agile the Best Project Management Method? Lana Tylka

Agile Software Development Methodologies and Its Quality Assurance

Software Development Methodologies

Software Requirements and Specification

Development. Lecture 3

Introduction to Agile

Software Development Life Cycle (SDLC)

AGILE SOFTWARE DEVELOPMENT. BY Sysop Technology Aurangabad

Agile processes. Extreme Programming, an agile software development process

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

Agile Scrum Workshop

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

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

D25-2. Agile and Scrum Introduction

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

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

The traditional project management uses conventional methods in software project management process.

Agile Software Project Management Methodologies

Software Engineering I (02161)

Agile Software Development

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Agile Methodologies and Its Processes

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

Applying Agile Project Management to a Customized Moodle Implementation

Testing in Agile methodologies easier or more difficult?

Laboratório de Desenvolvimento de Software

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

History of Agile Methods

RISK MANAGMENT ON AN AGILE PROJECT

Introduction to Agile Software Development

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Building Security into the Software Life Cycle

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

Chapter 1 - Introduction

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

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

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

Tamanna Assistant Professor Chandigarh University Gharuan, Mohali,India

The Security Development Lifecycle

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

Enhancement of XP for Cloud Application Development Sara Tariq, Muhammad Mohsin Nazir, Farhat Saleemi

Strategy. Agility. Delivery.

Agile project management: A magic bullet?

Agile Project Management

Software Development with Agile Methods

Software Quality and Assurance in Waterfall model and XP - A Comparative Study

CMMI - The AGILE Way By Hitesh Sanghavi

Agile Testing. What Students Learn

A Software Project Management Innovation (SPM) Methodology: A Novel Method for Agile Software Development

Deep Agile Blending Scrum and Extreme Programming. Jeff Sutherland Ron Jeffries

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

Agile Software Development compliant to Safety Standards?

Xtreme RUP. Ne t BJECTIVES. Lightening Up the Rational Unified Process. 2/9/2001 Copyright 2001 Net Objectives 1. Agenda

Introduction to Agile Scrum

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Secure Code Development

Agile Development for Application Security Managers

Scrum for Managers, Zurich March 2010

Agile Software Development

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

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

EPL603 Topics in Software Engineering

WE ARE FOCUSED ON HELPING OUR CLIENTS WORK SMARTER AND MORE EFFICIENTLY SO THAT TOGETHER, WE CAN EMPOWER PEOPLE TO DELIVER GREAT RESULTS.

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS

Transcription:

Agile and Secure: Can We Be Both? OWASP AppSec Seattle Oct 2006 Keith Landrus Director of Technology Denim Group Ltd. keith.landrus@denimgroup.com (210) 572-4400 Copyright 2006 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 2.5 License. To view this license, visit http://creativecommons.org/licenses/by-sa/2.5/ The OWASP Foundation http://www.owasp.org/

The Agile Practitioner s Dilemma Agile Forces: More responsive to business concerns Increasing the frequency of stable releases Secure Forces: More aggressive regulatory environment Increasing focus on need for security Decreasing the time it takes to deploy new features Traditional approaches are top-down, document centric 2

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

Notable Agile Methods extreme Programming (XP) Feature Driven Development (FDD) SCRUM MSF for Agile Software Development Agile Unified Process (AUP) Crystal Clear Dynamic Systems Development Method (DSDM) 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 Incremental Change Embracing Change The system is appropriate for the intended audience. The code passes all the tests. The code communicates everything it needs to. The code has the smallest number of classes and methods. Quality Work 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 Test Driven Collective Ownership Programmer tests guide the development process. Red, Green, Refactor Customer tests provide feedback to the team that the system is working as expected. Coding Standards Pair Programming Continuous Integration Continuously build, deploy and execute all of the system s tests multiple times per day. 9

Agile Methods strive to Adapt to ever-changing customer needs. Bring together small teams of highly talented individuals and remove obstacles that get in the way of developing quality systems. Maintain a strong emphasis on testing. 10

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 owner or administrator. -- Source: Writing Secure Code (Microsoft.com) 11

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 12

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 13

Secure Development Practices Education, Education, Education Threat Modeling Secure Coding Techniques Security Testing Security Code Reviews 14

Microsoft s Secure Development Lifecycle (SDL) Requirements Design Implementation Verification Release 15

SDL: Requirements Phase Activities Determine (or make contact with) the security advisor security buddy Identify key security objectives for the system Consider Security Feature Requirements 16

SDL: Design Phase Activities Define Security Architecture and Design Guidelines Document the Attack Surface Conduct Threat Modeling Define Supplemental Ship Criteria 17

SDL: Implementation Phase Activities Apply Common Coding Standards Apply Security-Testing Tools Apply Static-Analysis Code Scanning Tools Conduct Security Code Reviews 18

SDL: Verification Phase Activities Conduct the Security Push Additional Security Code Reviews Focused Security Testing 19

SDL: Release, Support & Servicing Activities Conduct the Final Security Review (FSR) Prior to Release Prepare to Respond to Vulnerability Reports Learn from Errors and Mistakes 20

Observations of the SDL in Practice Threat Modeling is the Highest-Priority Component Penetration Testing Alone is Not the Answer Tools Should be Complementary Microsoft s experience has indicated that the SDL has been effective at reducing security vulnerabilities in their products. 21

Dr. Dobb s says Agile Methods Are Catching On 41% of organizations have adopted an agile methodology 65% have adopted one or more agile techniques 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 22

Agile Teams are Quality Infected 60% reported increased productivity 6% reported a decrease 66% reported improved quality 58% improved stakeholder satisfaction 3% reported a decrease 23

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 24

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

extreme Programming (XP) Light-weight, small-to-medium sized teams Work on things that really matter every day Get the most possible value out of every development week Takes commonsense principles and practices to extreme levels. 26

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/ 27

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

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

Let s Look at an Integrated Process Making Agile Trustworthy 30

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

Project Setup Education & Training (include Security) Developers Testers Customers User Stories / Use Case Development Architecture Decisions (spikes) 32

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 Finalize Architecture & Development Guidelines Common Coding Standards (include security) Conduct Initial Threat Modeling (assets & threats) Designer s Security Checklist 33

Iteration Planning 1-4 Weeks in Length (2 weeks is very common) Begins with an Iteration Planning Meeting User Stories are broken down into Development Tasks Developers estimate their own tasks Document the Attack Surface (Story Level) Never Slip the Date Add or Remove Stories As Necessary 34

Anatomy of a 2 Week Iteration Day 1: -Iteration Planning Meeting - Developers signup for tasks Days 2 & 3: -Architectural spikes - Agile Modeling - Attack surface & Threat Modeling Days 4 9: - Developers complete tasks - Testers implement automated acceptance tests Day 9: - Security Code Review Day 10: - Iteration close out - Security testing 35

Executing an Iteration Daily Stand-ups Continuous Integration Code Scanning Tools Security Testing Tools Adherence to Common Coding Standards and Security Guidelines Pair Programming New Features, Refactoring, Hazardous Components Developer s Checklist 36

Stabilizing a Release Just like any other iteration Schedule Defects & Vulnerabilities based on customer priorities Final Security Review (FSR) 37

Challenges & Compromises Balance of Code Review vs. Pair Programming SDL Techniques practices in small doses throughout the duration of the project Threat Modeling performed against a moving target 38

Can We Be Both? Communication Simplicity Feedback Courage Trustworthy 39

Book Resources Extreme Programming Explained: Embrace Change, Kent Beck, Addison Wesley Planning Extreme Programming, Kent Beck and Martin Fowler, Addison Wesley Writing Secure Code 2 nd Edition, Michael Howard and David LeBlanc, Microsoft Press 40

Article Resources The New Methodology, Martin Fowler http://www.martinfowler.com/articles/newmethodology.html The Trustworthy Computing Security Development Lifecycle, Steve Lipner and Michael Howard http://msdn.microsoft.com/security/default.aspx Survey Says: Agile Works in Practice, Scott Ambler http://www.ddj.com/dept/architect/191800169 SCRUM Development Process, Ken Schwaber, Advanced Development Methods http://jeffsutherland.com/oopsla/schwapub.pdf 41

Web Site Resources http://www.agilealliance.org http://www.xprogramming.com http://www.featuredrivendevelopment.com http://www.controlchaos.com http://msdn.microsoft.com/vstudio/teamsystem/msf/msfagile 42

Questions & Answers 43