Nowadays, the use of agile software development methods like Scrum is common in industry and academia. Considering the current attacking landscape, it is clear that developing secure software should be a main concern in all software development projects. In traditional software projects, security issues require detailed planning in an initial planning phase, typically resulting in a detailed security analysis (e.g., threat and risk analysis), a security architecture, and instructions for security implementation (e.g., specification of key sizes and cryptographic algorithms to use). Agile software development methods like Scrum are known for reducing the initial planning phases (e.g., sprint 0 in Scrum) and for focusing more on producing running code. Scrum is also known for allowing fast adaption of the emerging software to changes of customer wishes. For security, this means that it is likely that there are no detailed security architecture or security implementation instructions from the start of the project. It also means that a lot of design decisions will be made during the runtime of the project. Hence, to address security in Scrum, it is necessary to consider security issues throughout the whole software development process. Secure Scrum is a variation of the Scrum framework with special focus on the development of secure software throughout the whole software development process. It puts emphasis on implementation of security related issues without the need of changing the underlying Scrum process or influencing team dynamics. Secure Scrum allows even non- security experts to spot security issues, to implement security features, and to verify implementations. A field test of Secure Scrum shows that the security level of software developed using Secure Scrum is higher then the security level of software developed using standard Scrum.
There are several methods for achieving software security, e.g., Clean Room @cite_5 , Construction by Correctness @cite_11 , CMMI-DEV @cite_14 @cite_12 , etc. However, these methods cannot be used in Scrum as they clash with the characteristics of agile software development and specifically Scrum. Construction by Correctness @cite_11 for example, advocate formal development in planning, verification and testing. This is completely different to agility and flexible approaches like agile methodologies. Other models like CMMI-DEV @cite_14 @cite_12 can deal with agile methods, but they are process models. The main difference is that CMMI focuses on processes and agile development on the developers @cite_12 . This means that Scrum and other agile methodologies are developer centric, while CMMI is more process oriented. Concepts like Microsoft SDL @cite_0 are designed to integrate agile methodologies, but is also self-contained. It can not be plugged into Scrum or any other agile methodology. Scrum focuses on rich communication, self-organisation, and collaboration between the involved project members. This conflicts with formalistic and rigid concepts.
@cite_14 @cite_0 @cite_5 @cite_12 @cite_11
2126762719 1561923393 2103612079 2116352900
This introduction to the Security Development Lifecycle (SDL) provides a history of the methodology and guides you through each stage of a proven process-from design to release-that helps minimize security defects. Cleanroom software engineering is a theory-based, team-oriented engineering process for developing and certifying very high quality software under statistical quality control. (The name “Cleanroom” was chosen in analogy to the precision engineering of hardware cleanrooms.) Cleanroom software engineering methods include box structure specification and design, function-theoretic correctness verification, incremental development, and usage-based statistical testing for certification of software fitness for use. Cleanroom teams are organized into specification, development, and certification (testing) roles. The Cleanroom process originated in IBM in the mid-1980s to bring engineering rigor to software development. Cleanroom software engineering has been applied with excellent results in a variety of system developments, and continues to evolve as an engineering technology. Keywords: statistical quality control; software; cleanroom management process; cleanroom software development; verification; cleanroom; certification; results iv 1 Problem Definition 1 2 Origins from Two Extremes 3 2.1 The Origins of Agile Methods 3 2.2 The Origins of CMMI 5 3 Factors that Affect Perception 7 3.1 Misuse 7 3.2 Lack of Accurate Information 8 3.3 Terminology Difficulties 9 4 The Truth About CMMI 11 4.1 CMMI Is a Model, Not a Process Standard 11 4.2 Process Areas, Not Processes 13 4.3 SCAMPI Appraisals 14 5 The Truth About Agile 16 6 There Is Value in Both Paradigms 20 6.1 Challenges When Using Agile 20 6.2 Challenges When Using CMMI 22 6.3 Current Published Research 23 6.4 The Hope in Recent Trends 24 7 Problems Not Solved by CMMI nor Agile 27 Praxis Critical Systems recently developed a secure certification authority for smart cards that had to satisfy performance and usability requirements while meeting stringent security constraints. The authors used a systematic process from requirements elicitation through formal specification, user interface prototyping, rigorous design, and coding to ensure these objectives' achievement. They show how a process that achieves normal commercial productivity can deliver a highly reliable system that meets all its throughput and usability goals.