Enhacing the Development Life Cycle to Produce Secure Software
Total Page:16
File Type:pdf, Size:1020Kb
REPORT DOCUMENTATION PAGE Form Approved OMB No. 0704-0188 Public reporting burden for this collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing this collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden to Department of Defense, Washington Headquarters Services, Directorate for Information Operations and Reports (0704-0188), 1215 Jefferson Davis Highway, Suite 1204, Arlington, VA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to any penalty for failing to comply with a collection of information if it does not display a currently valid OMB control number. PLEASE DO NOT RETURN YOUR FORM TO THE ABOVE ADDRESS. 1. REPORT DATE (DD-MM-YYYY) 2008-10-01 2. REPORT TYPE Technical Report 3. DATES COVERED (From - To) 2008-10-01 - 2008-10-01 4. TITLE AND SUBTITLE 5a. CONTRACT NUMBER ENHANCING THE DEVELOPMENT LIFE CYCLE TO PRODUCE SECURE SOFTWARE 5b. GRANT NUMBER 5c. PROGRAM ELEMENT NUMBER 6. AUTHOR(S) 5d. PROJECT NUMBER Goertzel, Karen Mercedes (editor, principal co-author) Winograd, Theodore (co-author) 5e. TASK NUMBER Numerous Other Reviewers 5f. WORK UNIT NUMBER 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) 8. PERFORMING ORG REPORT # DACS Data & Analysis Center for Software, ITT AES, 775 Daedalian Dr., Rome, NY 13441 DAN 358844 US 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR'S ACRONYM(S) Defense Technical Information Center (DTIC)/AI, 8725 John J. Kingman Rd., STE0944, DTIC Ft.Belvoir, VA 22060 US 11. SPONSOR/MONITOR'S REPORT NUMBER(S) 12. DISTRIBUTION / AVAILABILITY STATEMENT - DISTRIBUTION STATEMENT A. Approved for public release; 13. SUPPLEMENTARY NOTES . 14. ABSTRACT: The most risk-averse system with a security architecture including layers upon layers of defenses-in-depth can still be vulnerable to violations and compromises if the software that implements those layered defenses is not dependable, trustworthy, and survivable. The reality is this: software has long been, and remains, the weakest link in any information system. The adversaries who attack those systems know this. And they have the expertise, tools, and resources to exploit that knowledge. Enhancing the Development Life Cycle to Produce Secure Software answers the questions of why software security is important, why so much software is not secure, and the risks posed to systems that contain non-secure software. Enhancing the Development Life Cycle introduces a set of principles to govern risk-aware software engineering, and provides extensive guidance for software practitioners that can help them adapt and enhance their current software life cycle practices to increase the likelihood that the software they produce will be more dependable, trustworthy, and survivable...in other words, more secure. Benefiting from collaborative contributions and critiques by participants in the Software Assurance Forum, Enhancing the Development Life Cycle provides information intended to prepare its readers to evaluate and choose from among the growing number of secure software development methodologies, practices, and technologies best suited for adoption by their own development organizations to help reshape their life cycle processes and practices.. 15. SUBJECT TERMS 16. SECURITY CLASSIFICATION OF: 17. LIMITATION OF 18. NUMBER OF 19a. NAME OF RESPONSIBLE PERSON ABSTRACT PAGES: 331 Thomas McGibbon UU a. REPORT b. ABSTRACT c. THIS PAGE 19b. TELEPHONE NUMBER (include area code) U U U 315-838-7094 1 Enhancing the Development Life Cycle to Produce Secure Software Version 2.0 - October 2008 FOREWORD Dependence on information technology makes software assurance a key element of business continuity, national security, and homeland security. Software vulnerabilities jeopardize intellectual property, consumer trust, business operations and services, and a broad spectrum of critical applications and infrastructure, including everything from Supervisory Control and Data Acquisition systems to commercial-off-the-shelf applications. The integrity of key assets depends upon the reliability and security of the software that enables and controls those assets. However, informed consumers have growing concerns about the scarcity of practitioners with requisite competencies to build secure software. They have concerns with suppliers’ capabilities to build and deliver secure software with requisite levels of integrity and to exercise a minimum level of responsible practice. Because software development offers opportunities to insert malicious code and to unintentionally design and build software with exploitable weaknesses, security-enhanced processes and practices—and the skilled people to perform them—are required to build software that can be trusted not to increase risk exposure. In an era riddled with asymmetric cyber attacks, claims about system reliability, integrity and safety must also include provisions for built-in security of the enabling software. In their Report to the President entitled Cyber Security: A Crisis of Prioritization (February 2005), the President’s Information Technology Advisory Committee (PITAC) summed up the problem of non-secure software: Network connectivity provides “door-to-door” transportation for attackers, but vulnerabilities in the software residing in computers substantially compound the cyber security problem. As the PITAC noted in a 1999 report, the software development methods that have been the norm fail to provide the high quality, reliable, and secure software that the Information Technology infrastructure requires. Software development is not yet a science or a rigorous discipline, and the development process by and large is not controlled to minimize the vulnerabilities that attackers exploit. Today, as with cancer, vulnerable software can be invaded and modified to cause damage to previously healthy software, and infected software can replicate itself and be carried across networks to cause damage in other systems. Like cancer, these damaging processes may be invisible to the lay person even though experts recognize that their threat is growing. And as in cancer, both preventive actions and research are critical, the former to minimize damage today and the latter to establish a foundation of knowledge and capabilities that will assist the cyber security professionals of tomorrow reduce risk and minimize damage for the long term. Vulnerabilities in software that are introduced by mistake or poor practices are a serious problem today. In the future, the Nation may face an even more challenging problem as adversaries—both foreign and domestic—become increasingly sophisticated in their ability to insert malicious code into critical software. Software Assurance has emerged in response to the dramatic increases in business and mission risks that are now known to be attributable to exploitable software, including: i Enhancing the Development Life Cycle to Produce Secure Software Version 2.0 - October 2008 • Dependence on software components of systems despite their being the weakest link in those systems; • Size and complexity of software that obscures its intent and precludes exhaustive testing; • Outsourcing of software development and reliance on unvetted software supply chains; • Attack sophistication that eases exploitation of software weaknesses and vulnerabilities; • Reuse and interfacing of legacy software with newer applications in increasingly complex, disparate networked environments resulting in unintended consequences and the increase of vulnerable software targets. The growing extent of the resulting risk exposure is not yet well understood. The number of threats specifically targeting software is increasing, as the majority of today’s network- and system-level attacks exploit vulnerabilities in application-level software. These factors combine to the increase of risks to software-enabled capabilities and the vulnerability of software- intensive systems to asymmetric cyber threats. Only by establishing the basis for justifiable confidence in the software that enables their core business operations can the organizations that depend on software-intensive systems trust those systems to continue performing in a dependable, trustworthy manner, even in the face of attack. Enhancing the Development Life Cycle to Produce Secure Software joins a growing body of software assurance information resources and tools provided through the Department of Homeland Security (DHS) BuildSecurityIn Web portal (https://buildsecurityin.us-cert.gov) that are intended to assist software developers, architects, acquirers, and educators in the improvement and verification of the quality, reliability, and security of the software they produce or procure—and in establishing the justification to use that software with confidence. Enhancing the Development Life Cycle to Produce Secure Software1 is intended to complement Software Security Assurance: A State-of-the-Art Report,2 which provides an broad overview of the current methodologies, practices, technologies, and activities engaged in by government, industry, and academia for producing secure software and verifying software’s security. Enhancing the Development Life Cycle complements Software Security Assurance by describing in greater