DEVELOPING SECURE SOFTWARE T in an AGILE PROCESS Dejan
Total Page:16
File Type:pdf, Size:1020Kb
Software - in an - in Software Developing Secure aBSTRACT Background: Software developers are facing in- a real industry setting. As secondary methods for creased pressure to lower development time, re- data collection a variety of approaches have been Developing Secure Software lease new software versions more frequent to used, such as semi-structured interviews, work- customers and to adapt to a faster market. This shops, study of literature, and use of historical data - in an agile proceSS new environment forces developers and companies from the industry. to move from a plan based waterfall development process to a flexible agile process. By minimizing Results: The security engineering best practices the pre development planning and instead increa- were investigated though a series of case studies. a sing the communication between customers and The base agile and security engineering compati- gile developers, the agile process tries to create a new, bility was assessed in literature, by developers and more flexible way of working. This new way of in practical studies. The security engineering best working allows developers to focus their efforts on practices were group based on their purpose and p the features that customers want. With increased their compatibility with the agile process. One well roce connectability and the faster feature release, the known and popular best practice, automated static Dejan Baca security of the software product is stressed. To de- code analysis, was toughly investigated for its use- velop secure software, many companies use secu- fulness, deployment and risks of using as part of SS rity engineering processes that are plan heavy and the process. For the risk analysis practices, a novel inflexible. These two approaches are each others approach was introduced and improved. As such, a opposites and they directly contradict each other. way of adapting existing practices to agile is pro- Objective: The objective of the thesis is to evaluate posed. how to develop secure software in an agile process. In particular, what existing best practices can be Conclusion: With regard of agile and security eng- incorporated into an agile project and still provide ineering we did not find that any of the investigated the same benefit if the project was using a water- processes was agile compatible. Agile is reaction fall process. How the best practices can be incor- driven that adapts to change, while the security porated and adapted to fit the process while still engineering processes are proactive and try to pre- measuring the improvement. Some security engi- vent threats before they happen. To develop secure neering concepts are useful but the best practice is software in an agile process the developers should not agile compatible and would require extensive adopt and adapt key concepts from security engi- adaptation to integrate with an agile project. neering. These changes will affect the flexibility of the agile process but it is a necessity if developers Method: The primary research method used th- want the same software security state as security roughout the thesis is case studies conducted in engineering processes can provide. Dejan Baca Blekinge Institute of Technology Doctoral Dissertation Series No. 2012:05 2012:05 ISSN 1653-2090 School of Computing 2012:05 ISBN 978-91-7295-229-4 Developing Secure Software - in an Agile Process Dejan Baca Blekinge Institute of Technology doctoral dissertation series No 2012:05 Developing Secure Software - in an Agile Process Dejan Baca Doctoral Dissertation in Computer Science School of Computing Blekinge Institute of Technology SWEDEN 2012 Dejan Baca School of Computing Publisher: Blekinge Institute of Technology, SE-371 79 Karlskrona, Sweden Printed by Printfabriken, Karlskrona, Sweden 2012 ISBN: 978-91-7295-229-4 ISSN 1653-2090 urn:nbn:se:bth-00525 ”Do not worry, it is non-destructive security testing. Your week long stress test will not be effected by it.” My last words before getting banned from the test lab. –Dejan Baca v vi Abstract Background: Software developers are facing increased pressure to lower development time, release new software versions more frequent to customers and to adapt to a faster market. This new environment forces developers and companies to move from a plan based waterfall development process to a flexible agile process. By minimizing the pre development planning and instead increasing the communication between customers and developers, the agile process tries to create a new, more flexible way of work- ing. This new way of working allows developers to focus their efforts on the features that customers want. With increased connectability and the faster feature release, the security of the software product is stressed. To develop secure software, many compa- nies use security engineering processes that are plan heavy and inflexible. These two approaches are each others opposites and they directly contradict each other. Objective: The objective of the thesis is to evaluate how to develop secure software in an agile process. In particular, what existing best practices can be incorporated into an agile project and still provide the same benefit if the project was using a waterfall process. How the best practices can be incorporated and adapted to fit the process while still measuring the improvement. Some security engineering concepts are useful but the best practice is not agile compatible and would require extensive adaptation to integrate with an agile project. Method: The primary research method used throughout the thesis is case studies conducted in a real industry setting. As secondary methods for data collection a variety of approaches have been used, such as semi-structured interviews, workshops, study of literature, and use of historical data from the industry. Results: The security engineering best practices were investigated though a series of case studies. The base agile and security engineering compatibility was assessed in literature, by developers and in practical studies. The security engineering best prac- tices were group based on their purpose and their compatibility with the agile process. One well known and popular best practice, automated static code analysis, was toughly investigated for its usefulness, deployment and risks of using as part of the process. For the risk analysis practices, a novel approach was introduced and improved. As such, a way of adapting existing practices to agile is proposed. Conclusion: With regard of agile and security engineering we did not find that any of the investigated processes was agile compatible. Agile is reaction driven that adapts to change, while the security engineering processes are proactive and try to prevent threats before they happen. To develop secure software in an agile process the developers should adopt and adapt key concepts from security engineering. These changes will affect the flexibility of the agile process but it is a necessity if developers want the same software security state as security engineering processes can provide. vii viii Acknowledgements First and foremost, I would like to thank my supervisors PhD Lars-Ola Damm, Pro- fessor Bengt Carlsson and Professor Lars Lundberg for their support, especially for valuable feedback on papers and other research related advice. Especially Bengt Carls- son for giving me a swift kick when I needed to write papers instead of starting new experiments. Ericsson AB gave me the chance of conducting research and at the same time stay- ing in touch with the industry. The industrial Ph.D student position gave me a unique opportunity to identify problems and evaluate them in a practical real world environ- ment instead of a test lab. A special thanks to my unit managers, whose budget I was constancy breaking; Maria Larsson, PerOlof Bengtsson, Sven Johansson and Daniel Borg. Blekinge Institute of Technology provided me with colleagues and friends from all over the world that create a diverse environment of ideas and culture. I would especially like to thank Kai Petersen whom I wrote many of my papers with. Martin Hylerstedt who always agreed to read my papers and help me with proofreading. Anton Borg, Petar Jersick, Martin Boldt, Samireh Jalali and Svetlana Zivanovic for being my friends and collogues at BTH during my time there. Finally, I would like to thank my family and friends for putting up with me despite neglecting them when having a high workload. This work was funded jointly by Ericsson AB and the Knowledge Foundation in Swe- den under a research grant for the research school SAVE-IT from Malardalens¨ univer- sity. ix x Overview of Papers Papers that are included in this thesis. Each paper answers part of a research question and the papers are included as appendix in the thesis. Paper A: Dejan Baca and Kai Petersen, ’Prioritizing Countermeasures through the Countermeasure Method for Software Security (CM-Sec)’, 11th International Confer- ence Product-Focused Software Process Improvement, Limerick, Ireland, 2010. Paper B: Dejan Baca and Kai Petersen, ’Countermeasure Graphs for Security Risk Assessment: An Action Research’, Manuscript submitted to Journal of Systems and Software, 2012. Paper C: Dejan Baca, Kai Petersen, Bengt Carlsson and Lars Lundberg, ’Static Code Analysis to Detect Software Security Vulnerabilities: Does Experience Matter?’, Pro- ceedings of the Fourth International Conference on Availability, Reliability and Secu- rity (ARES), IEEE Computer Society, Fukuoka, Japan, pp. 15-20, March 2009. Paper