PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS



Similar documents
PROJECT RISK MANAGEMENT MODEL BASED ON PRINCE2 AND SCRUM FRAMEWORKS

Agile Software Development with Scrum. Jeff Sutherland Gabrielle Benefield

Agile in Financial Services A Framework in Focus

Agile Project Management

SAFETY & RESILIENCE ISSUES IN AUTOMOTIVE SOFTWARE DEVELOPMENT PANEL

Incorporating Agile Methods in Large-Scale Systems

Agile QA s Revolutionary Impact on Project Management

Introduction to Agile Software Development. EECS 690 Agile Software Development

D25-2. Agile and Scrum Introduction

Digital Transformation of the Enterprise for SMAC: Can Scrum help?

History of Agile Methods

Agile Project Management: Adapting project behaviors to the software development environment

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

TecEd White Paper User-Centered Design and the Agile Software Development Process: 7 Tips for Success

Scrum for Managers, Zurich March 2010

PMP vs. Scrum Master

Scrum and Agile methods The real world

SWEN - Software Engineering Network Donnerstag 06. Mai. 2010

Agile and Secure: Can We Be Both?

Agile & the Declaration of Interdependence: A new approach to Process Improvement

Whitepaper: How to Add Security Requirements into Different Development Processes. Copyright 2013 SD Elements. All rights reserved.

WHITEPAPER GET MORE WORK DONE: A MANAGER S GUIDE TO MIXING AGILE AND WATERFALL

A Conceptual Model for Agile Practices Adoption

USAGE OF KANBAN METHODOLOGY AT SOFTWARE DEVELOPMENT TEAMS

Agility? What for? And how? > Warm-up Session Agile Tour Vienna 2014

Abdulrahman M. Qahtani, Gary B. Wills, Andrew M. Gravell School of Electronics and Computer Science, University of Southampton, UK

Agile user-centred design

SUCCEEDING IN SOFTWARE DEVELOPMENT PROJECTS

STATE OF MICHIGAN SUITE

Agile to the Bone. Introduction to Agile by Pietari Kettunen

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

Software Engineering Process Economy & Quality

On the Agile Development of Virtual Reality Systems

Agile Project Management Jim Highsmith. Chapter 1. The Agile Revolution

Agile project management is a style of project management that focuses

"Bezpieczny Projekt"

Agile Software Development Methodologies and Its Quality Assurance

Framework for Agile Methods Classification

Abstract. Heavy vs Light Methodologies: Bulimic or Anorexic? Fernando Brito e Abreu FCT/UNL

CSSE 372 Software Project Management: More Agile Project Management

AGILE & SCRUM. Revised 9/29/2015

Distributed Agile Development. Bapiraju Nandury Product Development Manager Bangalore Development Centre

Using Scrum to Streamline Web Applications Development and Improve Transparency. Michelle Frisque

Sometimes: 16 % Often: 13 % Always: 7 %

Agile Engineering Introduction of a new Management Concept

Agile Metrics. It s Not All That Complicated

1. CMMI and Scrum TWO BRANCHES OF SOFTWARE DEVELOPMENT

ECSS Standard Compliant Agile Software Development

Software Engineering

The role of Agile development methodologies in the adoption of mobile payment technology

Experiences of Using Extreme Programming to Support a Legacy Information System Migration Project

WHAT MAKES AGILE DEVELOPMENT DIFFERENT?: A CASE STUDY OF

Agile Software Development Approaches and Their History. Volkan Günal

Agile Software Development

Persona driven agile development

Capstone Agile Model (CAM)

State of Michigan (SOM) SUITE Agile Process Guide. Version 1.0. July Department of Technology, Management & Budget

SCRUM BODY OF KNOWLEDGE (SBOK Guide)

Risk Management. What is risk? Boehm s Top 10 Risks [P2] Welcome to Lecture 3 Risk management & Agile PM

Agile teams: Do s and don ts in agile software development

When is Agile the Best Project Management Method? Lana Tylka

A Conceptual Framework for web Development Projects Based on Project Management and Agile Development Principles

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

The Role of Plan-Based Approaches in Organizing Agile Companies

Agile Processes and Methodologies: A Conceptual Study

Project Management in Software: Origin of Agile

2. AGILE ADOPTION CASE STUDIES

Scrum. SE Presentation. Anurag Dodeja Spring 2010

Embracing Agile Development of Usable Software Systems

Software Development Methodologies

Agile and Secure: OWASP AppSec Seattle Oct The OWASP Foundation

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Agile with XP and Scrum

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

Introduction to Agile Software Development Process. Software Development Life Cycles

Issues in Internet Design and Development

Comparing Agile Software Processes Based on the Software Development Project Requirements

Strategy. Agility. Delivery.

AGILE PRODUCTIVITY METRICS

the team level and is characterized by self organizing, cross functional teams doing iterative development in what are called Sprints.

14 Requirements Engineering for Agile Methods

Agile Software Development

Agile Development for Application Security Managers

Lean QA: The Agile Way. Chris Lawson, Quality Manager

Software Development Methodologies

Agile Project Management

Secure Code Development

Agile Execution for and Beyond IT

Improving Software Development through Combination of Scrum and Kanban

Comparative Analysis of Agile Software Development Methodologies-A Review

Case Study on Critical Success Factors of Running Scrum *

Software Development Methodology for Fast Changing Environment 1

Agile Software Development Methods, Comparison with Traditional Methods & Implementation in Software Firm

Controlling Change on Agile Software Development Projects

Model-Based Conceptual Design through to system implementation Lessons from a structured yet agile approach

INF5120 Modellbasert Systemutvikling

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

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

Transcription:

PENETRATION TESTING IN AGILE SOFTWARE DEVELOPMENT PROJECTS Martin Tomanek and Tomas Klima Department of Systems Analysis, University of Economics, Prague, Czech Republic ABSTRACT Agile development methods are commonly used to iteratively develop the information systems and they can easily handle ever-changing business requirements. Scrum is one of the most popular agile software development frameworks. The popularity is caused by the simplified process framework and its focus on teamwork. The objective of Scrum is to deliver working software and demonstrate it to the customer faster and more frequent during the software development project. However the security requirements for the developing information systems have often a low priority. This requirements prioritization issue results in the situations where the solution meets all the business requirements but it is vulnerable to potential security threats. The major benefit of the Scrum framework is the iterative development approach and the opportunity to automate penetration tests. Therefore the security vulnerabilities can be discovered and solved more often which will positively contribute to the overall information system protection against potential hackers. In this research paper the authors propose how the agile software development framework Scrum can be enriched by considering the penetration tests and related security requirements during the software development lifecycle. Authors apply in this paper the knowledge and expertise from their previous work focused on development of the new information system penetration tests methodology PETA with focus on using COBIT 4.1 as the framework for management of these tests, and on previous work focused on tailoring the project management framework PRINCE2 with Scrum. The outcomes of this paper can be used primarily by the security managers, users, developers and auditors. The security managers may benefit from the iterative software development approach and penetration tests automation. The developers and users will better understand the importance of the penetration tests and they will learn how to effectively embed the tests into the agile development lifecycle. Last but not least the auditors may use the outcomes of this paper as recommendations for companies struggling with penetrations testing embedded in the agile software development process. KEYWORDS Agile Development, Penetration, Test, Scrum, Project Management, Software 1. INTRODUCTION AND METHODOLOGY In 1970 the waterfall development model was introduced by Winston W. Royce. Since this time the model has been used to manage majority of software development projects. This model follows a phased approach in which the requirements are defined upfront then the solution is designed, coded, tested and released to production. In many cases this approach was successful but unfortunately in many cases failed. The chaos report from the year 2013 [1] that focuses on DOI:10.5121/ijcis.2015.5101 1

project success rate indicates that 39% of projects were delivered successfully, 18% completely failed and 43% were challenged. The project success rate was slightly improved compared to year 2004 but the percentage of failed projects still remains almost the same. The current business environment demands the higher success rate and shorter time to market and greater flexibility of the ever-changing business requirements [2], [3]. Many IT leaders in the software development field found out that robust and document-oriented process frameworks simply do not work as expected. They introduced the agile manifesto [4] which is followed by many software developers around the world. As a result of introducing the agile manifesto, several agile development frameworks were introduced with different scope and focus (e.g. Scrum, Extreme Programming, FDD etc.). A shift to agile methods can increase the success rate and mitigate some issues that are typical for traditional phased-oriented frameworks [5]. Agile development methods can be used not only for developing small and simple software but they are suitable for development of big and complex IT systems. Good examples of the successful usage of the agile frameworks on large software development projects can be found in the case studies [6], [7]. The most widely used agile frameworks are Scrum and the hybrid framework combining Scrum and Extreme programming framework [8]. The framework in the scope of this paper is Scrum. Scrum was developed by Schwaber and Sutherland and is described in the Scrum Guide [9]. Penetration testing represents the comprehensive approach to identify the real information systems vulnerabilities that can be exploited by hackers. Penetration tests are executed by so called ethical hackers who use their knowledge and experience to break the overall security measures. All these found vulnerabilities are then identified and necessary actions proposed in order to strengthen the information systems security. Some penetration tests can be also automated and executed on a regular basis that consistently ensures that information systems meet some level of security assurance. One of the advantages of the penetration tests is related to seniority of ethical hackers who can follow the most up-to-date identified threats in IT related technologies and can protect the company s assets against the external hackers. The security threats are evolving very fast and it is difficult to reflect them in the current security standards and guidelines that are world-wide used to secure the information systems. The companies realize this trend in IT security field and put the penetration tests in one of the four most important aspects of current IT security management [10]. The biggest challenges the companies faced to, in regard to penetration tests, is how to embed the penetration testing into the overall IT management framework. Penetration tests can be executed on overall information systems landscape including the IT infrastructure or they can be embedded into the software development process. The goal of this paper is to introduce a way how to embed the penetration testing into the Scrum framework that represents the most used agile software development framework. The benefit of this paper is to propose how Scrum can help to automate the penetration tests during the software development projects, incorporate the specialized penetration tests into the regular software releases and improve the overall resistance of developing software. 2

Advantages and disadvantages of the agile software development framework with included penetration tests will be discussed as well. This contribution is conceived as design research, the result of which is an artefact. 2. SCRUM Scrum is an agile software development framework that is mainly used for iterative and incremental software development. The core of the Scrum framework is that customer requirements can be changed during development and software is developed iteratively. Iterations are called sprints and every sprint starts with a sprint planning meeting where the customer reviews and prioritizes requirements. The requirements are recorded as user stories that represent the requirements from the customer perspective. All user stories are stored in the product backlog. The prioritized requirements that can be delivered by the development team are selected, agreed and transferred to sprint backlog that is used to manage the requirements during the sprint. Then the development team works together to develop software features, satisfy customer requirements and deliver shippable software by the end of each sprint. This shippable software increment is presented in the sprint review meeting where the customer can it and think about further requirements. The most frequent meetings are daily stand-up meetings where development team members discuss what they have done since the last meeting, what they will do in the coming days and whether they are facing any impediments. The Scrum framework is depicted on the following picture that graphically illustrates the agile software development process. Figure 1. Scrum framework. Source: authors based on [9] Three roles are defined in the Scrum framework. The Product Owner represents customers and is responsible for defining and prioritizing software requirements and records them in the product backlog. The Development Team is responsible for delivering the potentially shippable software by the end of each sprint. The Scrum Master facilitates Scrum meetings and ensures the development team can work as efficient as possible. 3

Scrum is the product-oriented framework that focuses mainly on team cooperation but also on quality of each product increment. The concept of Done definition is introduced. There should be a common understanding of all requirements that should be completed by the end of every sprint so the increment is working and can be released to production. These requirements usually cover all the necessary tests, delivery of required documents and other. When all these requirements are completed then the software increments can be considered as Done. 3. EMBEDDING PENETRATION TESTS INTO SCRUM Now the question is how to embed the penetration tests into Scrum. As mentioned in the introduction chapter, there are two types of penetration tests: the automated and manual penetration tests. The real tangible benefit of using Scrum, which is mentioned by various researchers, is an opportunity to automate the tests in iterations and fix the defects and vulnerabilities earlier and on a regular basis [11] [14]. Therefore Scrum provides the solid foundation for automating the penetration tests in agile software development process. As the software is developed iteratively piece by piece, it doesn t make sense implement and test all security requirements in the first sprint. Therefore authors of this paper suggest filling the product backlog with security and penetration test requirements at the earliest stage of the development and continuously prioritize these requirements and select the most value-adding or risky requirements to be developed first and continuously tested in upcoming sprints. The designed and implemented automated tests can be then executed regularly in every sprint and lower the costs of tests execution and later debugging. The manual penetration tests are usually executed by ethical hackers on the existing running information systems. Therefore the authors suggest including the manual penetration tests not in every sprint but only if the product owner decides to release the software into production. Of course if the release contains only minor changes then it won t make sense to involve the specialized ethical hacker to test it. However if the release contains major or complex changes then the manual penetration tests should be executed in order to accredit the IT solution. The decision about the manual penetration tests doesn t depend only on the complexity of changes but it depends on more factors like: does the software contain confidential or financial data, how critical is the software to run the business, and is the software accessible publicly from internet? The Scrum framework with security requirements and penetration tests is depicted on the following picture. The product backlog is enriched by security requirements that can come from the security standard like ISO27002, the more generic framework like COBIT 5.0 and of course from the experienced ethical hackers. Automated and manual penetration tests are added as well to illustrate the placement of tests. 4

Figure 2: Scrum framework with embedded penetration tests. Source: authors Last but not least the penetration testing should be also reflected in the definition of Done. In this case the requirements can be formulated as follows: Automated penetration tests have been executed on the final version of the software increment All critical vulnerabilities or defects resulting from the penetration tests have been captured and fixed Not fixed minor vulnerabilities or defects have been evaluated and recorded to the product backlog for further consideration 4. CONCLUSION AND FURTHER RESEARCH This paper introduces the enriched Scrum agile software development framework that includes the definition of security requirements and execution of automated and manual penetration tests. This concept has been introduced and validated in various software development projects in the global logistics company. The following advantages and disadvantages are formulated based on lessons learnt of individual software development projects. The major advantage, of the enriched Scrum framework by penetration tests, the authors of this paper see in the inclusion of regular automated tests in every iteration cycle of software development that result in: Regular and more frequent security and penetration tests Improved efficiency and lower costs of test execution due to test automation Earlier defect or security vulnerability detection Software vulnerability fixing in early stages of software development and not at the end of software development phase as suggested by waterfall development frameworks Measurement of security defects per iteration and opportunity to improve this measurement over the time Enforcement of security best practices in software development projects 5

However also some disadvantages or risks related to the Scrum framework with embedded penetration tests were noticed, for example: Initial setup of automated penetration tests in the first sprint requires a significant effort and it may result in the limited functionality of the first version of the working increment of the software Increased development costs due to licenses of specialized test automation tools Increased complexity of software development tools The further authors research is focused on development of the penetration testing methodology PETA. This methodology combines current trends in information systems security area with well sound best practices like COBIT 4.1, COBIT 5.0, PRINCE2 and others. In regards to agile software development process, the usage of PETA methodology will result in identification of security vulnerabilities in the company IT landscape that will feed the security requirements in the product backlog. ACKNOWLEDGEMENTS This paper was prepared thanks to the IGA grant VSE IGS F4/5/2013. REFERENCES [1] The Standish Group, Chaos Manifesto 2013. The Standish Group, 2013. [2] J. Kalina, Z. Smutny, and V. Reznicek, Business Process Maturity as a Case of Managerial Cybernetics and Effective Information Managemen, in Proceedings of the 7th European Conference on IS Management and Evaluation, Sopot, Poland, 2013, pp. 215 221. [3] J. Basl and P. Doucek, ICT and Innovations in Context of the Sustainable Development in Europe, in 20th Interdisciplinary Information Management Talks, Jindrichuv Hradec, Czech Republic, 2012, pp. 153 161. [4] K. Beck, M. Beedle, A. van Bennekum, A. Cockburn, W. Cunningham, M. Fowler, J. Grenning, J. Highsmith, A. Hunt, R. Jeffries, J. Kern, B. Marick, R. C. Martin, S. Mellor, K. Schwaber, J. Sutherland, and D. Thomas, Manifesto for Agile Software Development, 2001. [Online]. Available: http://agilemanifesto.org/. [5] S. W. Ambler, 2013 IT Project Success Rates Survey Results, 2013 IT Project Success Rates Survey Results, Dec-2013. [Online]. Available: http://www.ambysoft.com/surveys/success2013.html. [6] J. Balada and A. Buchalcevova, Scrum Adoption for Information System Development within Complex Environments, in SOFSEM 2013 Theory and Practice of Computer Science, Spindleruv Mlyn, Czech Republic, 2013, vol. 2013, pp. 42 53. [7] D. Raithatha, Making the Whole Product Agile A Product Owners Perspective, in Agile Processes in Software Engineering and Extreme Programming, G. Concas, E. Damiani, M. Scotto, and G. Succi, Eds. Springer Berlin Heidelberg, 2007, pp. 184 187. [8] VersionOne, 8th Annual State of Agile Survey. VersionOne Inc., 30-Jun-2014. [9] K. Schwaber and J. Sutherland, The Scrum Guide: The definitive guide to Scrum: The rules of the game. SCRUM.org, Jul-2013. [10] P. van Kessel and K. Allan, Under cyber attack. EY s Global Information Security Survey 2013. Ernst & Young, Oct-2013. [11] V. Kettunen, J. Kasurinen, O. Taipale, and K. Smolander, A study on agility and testing processes in software organizations, in Proceedings of the 19th international symposium on Software testing and analysis, New York, NY, USA, 2010, pp. 231 240. [12] J. Li, N. B. Moe, and T. Dyb\aa, Transition from a plan-driven process to Scrum: a longitudinal case study on software quality, in Proceedings of the 2010 ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, New York, NY, USA, 2010, pp. 13:1 13:10. 6

[13] M. Stoica, M. Mircea, and B. Ghilic-Micu, Software Development: Agile vs. Traditional, Inform. Econ., vol. 17, no. 4, pp. 64 76, Dec. 2013. [14] M. Sumrell, From Waterfall to Agile - How does a QA Team Transition?, in Proceedings of the AGILE 2007, Washington, DC, USA, 2007, pp. 291 295. AUTHORS Martin Tomanek Martin Tomanek graduated from applied informatics at the Faculty of Informatics and Statistics, University of Economics, Prague. Currently, he is PhD student at the Department of Systems Analysis, Faculty of Informatics and Statistics, University of Economics, Prague, where he develops the integrated framework based on PRINCE2, Scrum and other best practices used in SW development area. Tomas Klima Tomas Klima graduated from applied informatics at the Faculty of Informatics and Statistics, University of Economics, Prague. Currently, he is PhD student at the Department of Systems Analysis, Faculty of Informatics and Statistics, University of Economics, Prague, where he deals with information security and develops a new framework for penetration testing. 7