Software Assurance Maturity Model - A guide to building security into software development
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
Software Assurance Maturity Model A guide to building security into software development Version - 1.0
For the latest version and additional info, please see the project web site at http://www.opensamm.org Acknowledgements The Software Assurance Maturity Model (SAMM) was originally developed, designed, and written by Pravir Chandra (chandra@owasp.org), an independent software security consultant. Creation of the first draft was made possible through funding from Fortify Software, Inc. This document is currently maintained and updated through the OpenSAMM Project led by Pravir Chandra. Since the initial re- lease of SAMM, this project has become part of the Open Web Application Security Project (OWASP). Thanks also go to many supporting organizations that are listed on back cover. Contributors & Reviewers This work would not be possible without the support of many individual reviewers and experts that offered contributions and critical feedback. They are (in alphabetical order): Fabio Arciniegas Brian Chess Matteo Meucci John Steven Matt Bartoldus Dinis Cruz Jeff Payne Chad Thunberg Sebastien Deleersnyder Justin Derry Gunnar Peterson Colin Watson Jonathan Carter Bart De Win Jeff Piper Jeff Williams Darren Challey James McGovern Andy Steingruebl This is an OWASP Project OWASP The Open Web Application Security Project The Open Web Application Security Project (OWASP) is a worldwide free and open community fo- cused on improving the security of application software. Our mission is to make application security “visible,” so that people and organizations can make informed decisions about application security risks. Every- one is free to participate in OWASP and all of our materials are available under a free and open software license. The OWASP Foundation is a 501(c)3 not-for-profit charitable organization that en- sures the ongoing availability and support for our work.Visit OWASP online at http://www.owasp.org. License This work is licensed under the Creative Commons Attribution-Share Alike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/ by-sa/3.0/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Executive Summary The Software Assurance Maturity Model (SAMM) is an open framework to help organizations for- mulate and implement a strategy for software security that is tailored to the specific risks facing the organization. The resources provided by SAMM will aid in: ✦ ✦Evaluating an organization’s existing software security practices ✦ ✦Building a balanced software security assurance program in well-defined iterations ✦ ✦Demonstrating concrete improvements to a security assurance program ✦ ✦Defining and measuring security-related activities throughout an organization SAMM was defined with flexibility in mind such that it can be utilized by small, medium, and large orga- nizations using any style of development. Additionally, this model can be applied organization-wide, for a single line-of-business, or even for an individual project. Beyond these traits, SAMM was built on the following principles: ✦ organization’s behavior changes slowly over time - A successful software ✦An security program should be specified in small iterations that deliver tangible assurance gains while incrementally working toward long-term goals. ✦ ✦There is no single recipe that works for all organizations - A software security framework must be flexible and allow organizations to tailor their choices based on their risk tolerance and the way in which they build and use software. ✦ ✦Guidance related to security activities must be prescriptive - All the steps in building and assessing an assurance program should be simple, well-defined, and measurable. This model also provides roadmap templates for common types of organizations. The foundation of the model is built upon the core business functions of software development with security practices tied to each (see diagram below). The building blocks of the model are the three ma- turity levels defined for each of the twelve security practices.These define a wide variety of activities in which an organization could engage to reduce security risks and increase software assurance.Additional details are included to measure successful activity performance, understand the associated assurance benefits, estimate personnel and other costs. As an open project, SAMM content shall always remain vendor-neutral and freely available for all to use. SAMM Overview Software Development Business Functions Governance Construction Deployment SAMM / Software Assurance Maturity Model - v1.0 Security Practices Strategy & Education & Security Design Security Environment Metrics Guidance Requirements Review Testing Hardening Policy & Threat Secure Code Vulnerability Operational Compliance Assessment Architecture Review Management Enablement 3
Contents Executive Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Understanding the Model 6 Business Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Governance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Construction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Deployment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Applying the Model 18 Using the Maturity Levels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Conducting Assessments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Creating Scorecards . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Building Assurance Programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Independent Software Vendor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Online Service Provider . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Financial Services Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Government Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 The Security Practices 32 Strategy & Metrics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Policy & Compliance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 Education & Guidance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Threat Assessment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Security Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 Secure Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Design Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 Code Review . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Security Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 SAMM / Software Assurance Maturity Model - v1.0 Vulnerability Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Environment Hardening . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 Operational Enablement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 Case Studies 82 VirtualWare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 4
I would like to... Assess existing software Build a strategic roadmap Implement or perform assurance practices for an organization security activities 3 ✦ Executive Summary 3 ✦ Executive Summary 3 ✦ Executive Summary 8-9 ✦ Business Functions 8-9 ✦ Business Functions 8-9 ✦ Business Functions 10-11 ✦ Governance 10-11 ✦ Governance 10-11 ✦ Governance 12-13 ✦ Construction 12-13 ✦ Construction 12-13 ✦ Construction 14-15 ✦ Verification 14-15 ✦ Verification 14-15 ✦ Verification 16-17 ✦ Deployment 16-17 ✦ Deployment 16-17 ✦ Deployment 21-25 ✦ Conducting Assessments 20 ✦ Using the Maturity Levels 20 ✦ Using the Maturity Levels 26 ✦ Creating Scorecards 27-31 ✦ Building Assurance Programs 34-37 ✧ Strategy & Metrics 20 ✦ Using the Maturity Levels 21-25 ✧ Conducting Assessments 38-41 ✧ Policy & Compliance 34-37 ✧ Strategy & Metrics 26 ✧ Creating Scorecards 42-45 ✧ Education & Guidance 38-41 ✧ Policy & Compliance 84-95 ✧ VirtualWare 46-49 ✧ Threat Assessment 42-45 ✧ Education & Guidance 34-37 ✧ Strategy & Metrics 50-53 ✧ Security Requirements 46-49 ✧ Threat Assessment 38-41 ✧ Policy & Compliance 54-57 ✧ Secure Architecture 50-53 ✧ Security Requirements 42-45 ✧ Education & Guidance 58-61 ✧ Design Review 54-57 ✧ Secure Architecture 46-49 ✧ Threat Assessment 62-65 ✧ Code Review 58-61 ✧ Design Review 50-53 ✧ Security Requirements 66-69 ✧ Security Testing 62-65 ✧ Code Review 54-57 ✧ Secure Architecture 70-73 ✧ Vulnerability Management 66-69 ✧ Security Testing 58-61 ✧ Design Review 74-77 ✧ Environment Hardening 70-73 ✧ Vulnerability Management 62-65 ✧ Code Review 78-81 ✧ Operational Enablement 74-77 ✧ Environment Hardening 66-69 ✧ Security Testing 21-25 ✧ Conducting Assessments 78-81 ✧ Operational Enablement 70-73 ✧ Vulnerability Management 26 ✧ Creating Scorecards 27-31 ✧ Building Assurance Programs 74-77 ✧ Environment Hardening 27-31 ✧ Building Assurance Programs 84-95 ✧ VirtualWare 78-81 ✧ Operational Enablement 84-95 ✧ VirtualWare ✦ read SAMM / Software Assurance Maturity Model - v1.0 ✧ skim 5
SAMM is built upon a collection of Security Practices that are tied back into the core Business Functions involved in software development. This section introduces those Business Functions and the corresponding Security Practices for each. After covering the high-level framework, the Maturity Levels for each Security Practice are also discussed briefly in order to paint a picture of how each can be iteratively improved over time.
Business Functions At the highest level, SAMM defines four critical Business Functions. Each Business Function (list- ed below) is a category of activities related to the nuts-and-bolts of software development, or stated another way, any organization involved with software development must fulfill each of these Business Functions to some degree. For each Business Function, SAMM defines three Security Practices. Each Security Practice (list- ed opposite) is an area of security-related activities that build assurance for the related Business Func- tion. So overall, there are twelve Security Practices that are the independent silos for improvement that map underneath the Business Functions of software development. For each Security Practice, SAMM defines three Maturity Levels as Objectives. Each Level within a Security Practice is characterized by a successively more sophisticated Objective defined by specific activities and more stringent success metrics than the previous level. Additionally, each Security Practice can be improved independently, though related activities can lead to optimizations. Governance Governance is centered on the processes and activities related to how an organization manages overall software development activities. More specifically, this includes concerns that cross-cut groups involved in development as well as business processes that are established at the organization level. ...more on page 10 Construction Construction concerns the processes and activities related to how an organization defines goals and creates software within development projects. In general, this will include product management, re- quirements gathering, high-level architecture specification, detailed design, and implementation. ...more on page 12 Verification Verification is focused on the processes and activities related to how an organization checks and tests artifacts produced throughout software development. This typically includes quality assurance work such as testing, but it can also include other review and evaluation activities. SAMM / Understanding the Model - v1.0 ...more on page 14 Deployment Deployment entails the processes and activities related to how an organization manages release of software that has been created.This can involve shipping products to end users, deploying products to internal or external hosts, and normal operations of software in the runtime environment. ...more on page 16 8
Strategy & Metrics involves the over- Policy & Compliance involves setting Education & Guidance involves in- all strategic direction of the software as- up a security and compliance control and creasing security knowledge amongst per- surance program and instrumentation of audit framework throughout an organiza- sonnel in software development through processes and activities to collect metrics tion to achieve increased assurance in soft- training and guidance on security topics about an organization’s security posture. ware under construction and in operation.. relevant to individual job functions. nce erna Gov Threat Assessment involves accu- Security Requirements involves Secure Architecture involves bol- rately identifying and characterizing poten- promoting the inclusion of security-related stering the design process with activities tial attacks upon an organization’s software requirements during the software develop- to promote secure-by-default designs and in order to better understand the risks and ment process in order to specify correct control over technologies and frameworks facilitate risk management. functionality from inception. upon which software is built. n ctio stru Con Design Review involves inspection of Code Review involves assessment of Security Testing involves testing the the artifacts created from the design pro- an organization’s source code to aid vul- organization’s software in its runtime envi- cess to ensure provision of adequate se- nerability discovery and related mitigation ronment in order to both discover vulner- curity mechanisms and adherence to an activities as well as establish a baseline for abilities and establish a minimum standard organization’s expectations for security. secure coding expectations. for software releases. ion t ifica Ver Vulnerability Management involves Environment Hardening involves Operational Enablement involves establishing consistent processes for man- implementing controls for the operating identifying and capturing security-relevant aging internal and external vulnerability re- environment surrounding an organization’s information needed by an operator to ports to limit exposure and gather data to software to bolster the security posture of properly configure, deploy, and run an or- enhance the security assurance program. applications that have been deployed. ganization’s software. ent ym plo De Maturity Levels Notation SAMM / Understanding the Model - v1.0 Each of the twelve Security Practices has three defined Maturity Levels and an implicit Throughout this document, the following starting point at zero. The details for each level differs between the Practices, but they capitalized terms will be reserved words generally represent: that refer to the SAMM components de- fined in this section. If these terms appear 0 Implicit starting point representing the activities in the Practice being unfulfilled without capitalization, they should be in- terpreted based on the their context: 1 Initial understanding and ad hoc provision of Security Practice ✦ ✦Business ✦ ✦Security Function also as Function Practice also as Practice 2 Increase efficiency and/or effectiveness of the Security Practice ✦ ✦Maturity Level also as Level, Objective 3 Comprehensive mastery of the Security Practice at scale 9
Governance Description of Security Practices Strategy & Metrics The Strategy & Metrics (SM) Practice is focused on establishing the framework within an organization for a software security assurance program. This is the most fundamental step in defining security goals in a way that’s both measurable and aligned with the organization’s real business risk. By starting with lightweight risk profiles, an organization grows into more advanced risk classification schemes for application and data assets over time. With additional insight on relative risk measures, an organization can tune its project-level security goals and develop granular roadmaps to make the security program more efficient. At the more advanced levels within this Practice, an organization draws upon many data sources, both internal and external, to collect metrics and qualitative feedback on the security program. This allows fine tuning of cost outlay versus the realized benefit at the program level. Policy & Compliance The Policy & Compliance (PC) Practice is focused on understanding and meeting external legal and regulatory requirements while also driving internal security standards to ensure compliance in a way that’s aligned with the business purpose of the organization. A driving theme for improvement within this Practice is focus on project-level audits that gather in- formation about the organization’s behavior in order to check that expectations are being met. By introducing routine audits that start out lightweight and grow in depth over time, organizational change is achieved iteratively. In a sophisticated form, provision of this Practice entails organization-wide understanding of both in- ternal standards and external compliance drivers while also maintaining low-latency checkpoints with project teams to ensure no project is operating outside expectations without visibility. Education & Guidance The Education & Guidance (EG) Practice is focused on arming personnel involved in the software life- SAMM / Understanding the Model - v1.0 cycle with knowledge and resources to design, develop, and deploy secure software. With improved access to information, project teams will be better able to proactively identify and mitigate the specific security risks that apply to their organization. One major theme for improvement across the Objectives is providing training for employees, either through instructor-led sessions or computer-based modules. As an organization progresses, a broad base of training is built by starting with developers and moving to other roles throughout the organiza- tion, culminating with the addition of role-based certification to ensure comprehension of the material. In addition to training, this Practice also requires pulling security-relevant information into guidelines that serve as reference information to staff. This builds a foundation for establishing a baseline expec- tation for security practices in your organization, and later allows for incremental improvement once usage of the guidelines has been adopted. 10
Governance Activities overview Strategy & Metrics ...more on page 34 SM 1 SM 2 SM 3 Objective Establish unified strategic Measure relative value of Align security expenditure roadmap for software security data and software assets with relevant business within the organization and choose risk tolerance indicators and asset value Activities A. Estimate overall business A. Classify data and applications A. Conduct periodic industry- risk profile based on business risk wide cost comparisons B. Build and maintain assurance B. Establish and measure per- B. Collect metrics for program roadmap classification security goals historic security spend Policy & Compliance ...more on page 38 PC 1 PC 2 PC 3 Objective Understand relevant Establish security and Require compliance governance and compliance compliance baseline and and measure projects drivers to the organization understand per-project risks against organization-wide policies and standards Activities A. Identify and monitor external A. Build policies and standards A. Create compliance compliance drivers for security and compliance gates for projects B. Build and maintain B. Establish project audit practice B. Adopt solution for compliance guidelines audit data collection Education & Guidance ...more on page 42 1 2 3 SAMM / Understanding the Model - v1.0 EG EG EG Objective Offer development staff Educate all personnel in Mandate comprehensive access to resources around the software life-cycle with security training and the topics of secure role-specific guidance on certify personnel for programming and deployment secure development baseline knowledge Activities A. Conduct technical security A. Conduct role-specific A. Create formal application awareness training application security training security support portal B. Build and maintain B. Utilize security coaches to B. Establish role-based technical guidelines enhance project teams examination/certification 11
Construction Description of Security Practices Threat Assessment The Threat Assessment (TA) Practice is centered on identification and understanding the project-level risks based on the functionality of the software being developed and characteristics of the runtime environment. From details about threats and likely attacks against each project, the organization as a whole operates more effectively through better decisions about prioritization of initiatives for security. Additionally, decisions for risk acceptance are more informed, therefore better aligned to the business. By starting with simple threat models and building to more detailed methods of threat analysis and weighting, an organization improves over time. Ultimately, a sophisticated organization would maintain this information in a way that is tightly coupled to the compensating factors and pass-through risks from external entities. This provides greater breadth of understanding for potential downstream impacts from security issues while keeping a close watch on the organization’s current performance against known threats. Security Requirements The Security Requirements (SR) Practice is focused on proactively specifying the expected behavior of software with respect to security. Through addition of analysis activities at the project level, security requirements are initially gathered based on the high-level business purpose of the software.As an orga- nization advances, more advanced techniques are used such as access control specifications to discover new security requirements that may not have been initially obvious to development. In a sophisticated form, provision of this Practice also entails pushing the security requirements of the organization into its relationships with suppliers and then auditing projects to ensure all are adhering to expectations with regard to specification of security requirements. Secure Architecture The Secure Architecture (SA) Practice is focused on proactive steps for an organization to design and SAMM / Understanding the Model - v1.0 build secure software by default. By enhancing the software design process with reusable services and components, the overall security risk from software development can be dramatically reduced. Beginning from simple recommendations about software frameworks and explicit consideration of secure design principles, an organization evolves toward consistently using design patterns for security functionality. Also, activities encourage project teams to increased utilization of centralized security services and infrastructure. As an organization evolves over time, sophisticated provision of this Practice entails organizations build- ing reference platforms to cover the generic types of software they build. These serve as frameworks upon which developers can build custom software with less risk of vulnerabilities. 12
Construction Activities overview Threat Assessment ...more on page 46 TA 1 TA 2 TA 3 Objective Identify and understand Increase accuracy of Concretely tie high-level threats to threat assessment and compensating controls to the organization and improve granularity of per- each threat against internal individual projects project understanding and third-party software Activities A. Build and maintain application- A. Build and maintain abuse- A. Explicitly evaluate risk from specific threat models case models per project third-party components B. Develop attacker profile B. Adopt a weighting system for B. Elaborate threat models from software architecture measurement of threats with compensating controls Security Requirements ...more on page 50 SR 1 SR 2 SR 3 Objective Consider security explicitly Increase granularity of security Mandate security during the software requirements derived from requirements process for requirements process business logic and known risks all software projects and third-party dependencies Activities A. Derive security requirements A. Build an access control matrix A. Build security requirements from business functionality for resources and capabilities into supplier agreements B. Evaluate security and compliance B. Specify security requirements B. Expand audit program for guidance for requirements based on known risks security requirements Secure Architecture ...more on page 54 1 2 3 SAMM / Understanding the Model - v1.0 SA SA SA Objective Insert consideration Direct the software design Formally control the of proactive security process toward known- software design process guidance into the software secure services and secure- and validate utilization design process by-default designs of secure components Activities A. Maintain list of recommended A. Identify and promote security A. Establish formal reference software frameworks services and infrastructure architectures and platforms B. Explicitly apply security B. Identify security design B. Validate usage of frameworks, principles to design patterns from architecture patterns, and platforms 13
Verification Description of Security Practices Design Review The Design Review (DR) Practice is focused on assessment of software design and architecture for se- curity-related problems.This allows an organization to detect architecture-level issues early in software development and thereby avoid potentially large costs from refactoring later due to security concerns. Beginning with lightweight activities to build understanding of the security-relevant details about an architecture, an organization evolves toward more formal inspection methods that verify completeness in provision of security mechanisms. At the organization level, design review services are built and of- fered to stakeholders. In a sophisticated form, provision of this Practice involves detailed, data-level inspection of designs and enforcement of baseline expectations for conducting design assessments and reviewing findings before releases are accepted. Code Review The Code Review (CR) Practice is focused on inspection of software at the source code level in order to find security vulnerabilities. Code-level vulnerabilities are generally simple to understand concep- tually, but even informed developers can easily make mistakes that leave software open to potential compromise. To begin, an organization uses lightweight checklists and for efficiency, only inspects the most critical software modules. However, as an organization evolves it uses automation technology to dramatically improve coverage and efficacy of code review activities. Sophisticated provision of this Practice involves deeper integration of code review into the develop- ment process to enable project teams to find problems earlier.This also enables organizations to better audit and set expectations for code review findings before releases can be made. Security Testing The Security Testing (ST) Practice is focused on inspection of software in the runtime environment SAMM / Understanding the Model - v1.0 in order to find security problems. These testing activities bolster the assurance case for software by checking it in the same context in which it is expected to run, thus making visible operational miscon- figurations or errors in business logic that are difficult to otherwise find. Starting with penetration testing and high-level test cases based on the functionality of software, an organization evolves toward usage of security testing automation to cover the wide variety of test cases that might demonstrate a vulnerability in the system. In an advanced form, provision of this Practice involves customization of testing automation to build a battery of security tests covering application-specific concerns in detail. With additional visibility at the organization level, security testing enables organizations to set minimum expectations for security testing results before a project release is accepted. 14
Verification Activities overview Design Review ...more on page 58 DR 1 DR 2 DR 3 Objective Support ad hoc reviews Offer assessment services Require assessments and of software design to to review software design validate artifacts to develop ensure baseline mitigations against comprehensive best detailed understanding of for known risks practices for security protection mechanisms Activities A. Identify software attack surface A. Inspect for complete provision A. Develop data-flow diagrams B. Analyze design against known of security mechanisms for sensitive resources security requirements B. Deploy design review B. Establish release gates service for project teams for design review Code Review ...more on page 62 CR 1 CR 2 CR 3 Objective Opportunistically find basic Make code review during Mandate comprehensive code-level vulnerabilities and development more code review process to other high-risk security issues accurate and efficient discover language-level and through automation application-specific risks Activities A. Create review checklists from A. Utilize automated code A. Customize code analysis for known security requirements analysis tools application-specific concerns B. Perform point-review B. Integrate code analysis into B. Establish release gates of high-risk code development process for code review Security Testing ...more on page 66 1 2 3 SAMM / Understanding the Model - v1.0 ST ST ST Objective Establish process to perform Make security testing Require application- basic security tests based during development more specific security testing to on implementation and complete and efficient ensure baseline security software requirements through automation before deployment Activities A. Derive test cases from known A. Utilize automated A. Employ application-specific security requirements security testing tools security testing automation B. Conduct penetration testing B. Integrate security testing B. Establish release gates on software releases into development process for security testing 15
Deployment Description of Security Practices Vulnerability Management The Vulnerability Management (VM) Practice is focused on the processes within an organization with respect to handling vulnerability reports and operational incidents. By having these processes in place, an organization’s projects will have consistent expectations and increased efficiency for handling these events, rather than chaotic and uninformed responses. Starting from lightweight assignment of roles in the event of an incident, an organization grows into a more formal incident response process that ensures visibility and tracking on issues that occur. Com- munications are also improved to improve overall understanding of the processes. In an advanced form, vulnerability management involves thorough dissecting of incidents and vulnerabil- ity reports to collect detailed metrics and other root-cause information to feedback into the organiza- tion’s downstream behavior. Environment Hardening The Environment Hardening (EH) Practice is focused on building assurance for the runtime environ- ment that hosts the organization’s software. Since secure operation of an application can be deterio- rated by problems in external components, hardening this underlying infrastructure directly improves the overall security posture of the software. By starting with simple tracking and distributing of information about the operating environment to keep development teams better informed, an organization evolves to scalable methods for managing deployment of security patches and instrumenting the operating environment with early-warning de- tectors for potential security issues before damage is done. As an organization advances, the operating environment is further reviewed and hardened by deploy- ment of protection tools to add layers of defenses and safety nets to limit damage in case any vulner- abilities are exploited. Operational Enablement The Operational Enablement (OE) Practice is focused on gathering security critical information from SAMM / Understanding the Model - v1.0 the project teams building software and communicating it to the users and operators of the software. Without this information, even the most securely designed software carries undue risks since impor- tant security characteristics and choices will not be known at a deployment site. Starting from lightweight documentation to capture the most impactful details for users and operators, an organization evolves toward building complete operational security guides that are delivered with each release. In an advanced form, operational enablement also entails organization-level checks against individual project teams to ensure that information is being captured and shared according to expectations. 16
Deployment Activities overview Vulnerability Management ...more on page 70 VM 1 VM 2 VM 3 Objective Understand high-level plan for Elaborate expectations Improve analysis and data responding to vulnerability for response process gathering within response reports or incidents to improve consistency process for feedback into and communications proactive planning Activities A. Identify point of contact A. Establish consistent incident A. Conduct root cause for security issues response process analysis for incidents B. Create informal security B. Adopt a security issue B. Collect per-incident metrics response team(s) disclosure process Environment Hardening ...more on page 74 EH 1 EH 2 EH 3 Objective Understand baseline Improve confidence in Validate application health operational environment application operations by and status of operational for applications and hardening the operating environment against software components environment known best practices Activities A. Maintain operational A. Establish routine patch A. Identify and deploy relevant environment specification management process operations protection tools B. Identify and install critical B. Monitor baseline environment B. Expand audit program for security upgrades and patches configuration status environment configuration Operational Enablement ...more on page 78 1 2 3 SAMM / Understanding the Model - v1.0 OE OE OE Objective Enable communications Improve expectations Mandate communication between development teams for continuous secure of security information and operators for critical operations through provision and validate artifacts security-relevant data of detailed procedures for completeness Activities A. Capture critical security A. Create per-release change A. Expand audit program for information for deployment management procedures operational information B. Document procedures for B. Maintain formal operational B. Perform code signing for typical application alerts security guides application components 17
Applying the Model Putting it all to work
This section covers several important and useful applications of SAMM. Given the core design of the model itself, an organization can use SAMM as a benchmark to measure its security as- surance program and create a scorecard. Using scorecards, an organization can demonstrate improvement through iterations of developing an assurance program. And most importantly, an organization can use SAMM roadmap templates to guide the build-out or improvement of a security assurance initiative.
Using the Maturity Levels Each of the twelve Security Practices have three Maturity Levels. Each Level has several components that specify the critical factors for understanding and achieving the stated Level. Beyond that, these prescriptive details make it possible to use the definitions of the Security Practices even outside the context of using SAMM to build a software assurance program. Objective Personnel The Objective is a general statement that cap- These properties of a Level indicate the esti- tures the assurance goal of attaining the associ- mated ongoing overhead in terms of human re- ated Level. As the Levels increase for a given sources for operating at the given Level. Practice, the Objectives characterize more so- ✦ ✦Developers - Individuals performing detailed phisticated goals in terms of building assurance design and implementation of the software for software development and deployment. ✦ ✦Architects - Individuals performing Activities high-level design work and large scale system engineering The Activities are core requisites for attaining the Level. Some are meant to be performed organi- ✦ ✦Managers - Individuals performing day-to- zation-wide and some correspond to actions for day management of development staff individual project teams. In either case, the Activi- ✦ Testers - Individuals performing ✦QA ties capture the core security function and orga- quality assurance testing and pre- nizations are free to determine how they fulfill release verification of software the Activities. ✦ ✦Security Auditors - Individuals with technical security knowledge related Results to software being produced The Results characterize capabilities and deliv- ✦ ✦Business Owners - Individuals performing erables obtained by achieving the given Level. In key decision making on software some cases these are specified concretely and and its business requirements in others, a more qualitative statement is made ✦ ✦Support Operations - Individuals about increased capability. performing customer support or Success Metrics direct technical operations support The Success Metrics specify example measure- Related Levels ments that can be used to check if an organiza- The Related Levels are references to Levels with- tion is performing at the given Level. Data collec- in other Practices that have some potential over- tion and management is left to the choice of each laps depending upon the organization’s structure organization, but recommended data sources and and progress in building an assurance program. thresholds are provided. Functionally, these indicate synergies or optimi- zations in Activity implementation if the Related Costs Level is also a goal or already in place. The Costs are qualitative statements about the expenses incurred by an organization attaining the given Level. While specific values will vary for SAMM / Applying the Model - v1.0 each organizations, these are meant to provide an idea of the one-time and ongoing costs associ- ated with operating at a particular Level. 20
Conducting Assessments By measuring an organization against the defined Security Practices, an overall picture of built-in se- curity assurance activities is created. This type of assessment is useful for understanding the breadth of security activities currently in place at an organization. Further, it enables that organization to then utilize SAMM to create a future roadmap for iterative improvement. The process of conducting an assessment is simply evaluating an organization to determine the Maturity Level at which it is performing, The extent to which an organization’s performance is checked will usu- ally vary according to the drivers behind the assessment, but in general, there are two recommended styles: ✦ ✦Lightweight - The assessment worksheets for each Practice are evaluated and scores are assigned based on answers. This type of assessment is usually sufficient for an organization that is trying to map their existing assurance program into SAMM and just wants to get a quick picture of where they stand. ✦ ✦Detailed - After completion of the assessment worksheets, additional audit work is performed to check the organization to ensure the Activities prescribed by each Practice are in place. Additionally since each Practice also specifies Success Metrics, that data should be collected to ensure that the organization is performing as expected. Complete Assign a lightweight Start assessment score per Assessment Done worksheets Practice type? detailed Audit for Check Adjust performed Success score per Activities Metrics Practice Scoring an organization using the assessment worksheets is straightforward. After answering the ques- tions, evaluate the answer column to determine the Level. It is indicated by affirmative answers on all questions above the markers to the right of the answer column. Existing assurance programs might not always consist of activities that neatly fall on a boundary be- tween Maturity Levels, e.g. an organization that assesses to a Level 1 for a given Practice might also have additional activities in place but not such that Level 2 is completed. For such cases, the organization’s score should be annotated with a “+” symbol to indicate there’s additional assurances in place beyond those indicated by the Level obtained. For example, an organization that is performing all Level 1 Activi- ties for Operational Enablement as well as one Level 2 or 3 Activity would be assigned a “1+” score. Likewise, an organization performing all Activities for a Security Practice, including some beyond the scope of SAMM, would be given a "3+" score. SAMM / Applying the Model - v1.0 0 0+ 1 1+ 2 2+ 3 3+ assessment scores 21
Governance Assessment worksheet Strategy & Metrics Yes/No ✦ there a software security assurance program already in place? ✦Is ✦ most of the business stakeholders understand ✦Do your organization’s risk profile? ✦ most of your development staff aware of ✦Is future plans for the assurance program? ✦ ✦Are most of your applications and resources categorized by risk? SM 1 ✦ ✦Are risk ratings used to tailor the required assurance activities? ✦ ✦Does most of the organization know about what’s required based on risk ratings? ✦ per-project data for cost of assurance activities collected? ✦Is SM 2 ✦ ✦Does your organization regularly compare your security spend with other organizations? SM 3 Policy & Compliance Yes/No ✦ most project stakeholders know their ✦Do project’s compliance status? ✦ ✦Are compliance requirements specifically 1 considered by project teams? PC ✦ ✦Does the organization utilize a set of policies and standards to control software development? ✦ ✦Are project teams able to request an audit for compliance with policies and standards? ✦ ✦Are projects periodically audited to ensure a baseline PC 2 of compliance with policies and standards? ✦ ✦Does the organization systematically use audits to 3 collect and control compliance evidence? PC Education & Guidance Yes/No ✦ ✦Have most developers been given high- level security awareness training? ✦ ✦Does each project team have access to secure 1 SAMM / Applying the Model - v1.0 development best practices and guidance? EG ✦ ✦Are most roles in the development process given role-specific training and guidance? ✦ ✦Are most stakeholders able to pull in security 2 coaches for use on projects? EG ✦ security-related guidance centrally controlled and ✦Is consistently distributed throughout the organization? ✦ ✦Are most people tested to ensure a baseline skill- 3 set for secure development practices? EG 22
Construction Assessment worksheet Threat Assessment Yes/No ✦ most projects in your organization ✦Do consider and document likely threats? ✦ ✦Does your organization understand and 1 document the types of attackers it faces? TA ✦ project teams regularly analyze functional ✦Do requirements for likely abuses? ✦ project teams use a method of rating ✦Do threats for relative comparison? 2 ✦ ✦Are stakeholders aware of relevant threats and ratings? TA ✦ project teams specifically consider risk from external software? ✦Do ✦ ✦Are all protection mechanisms and controls 3 captured and mapped back to threats? TA Security Requirements Yes/No ✦ most project teams specify some security ✦Do requirements during development? ✦ project teams pull requirements from best- ✦Do 1 practices and compliance guidance? SR ✦ ✦Are most stakeholders reviewing access control matrices for relevant projects? ✦ ✦Are project teams specifying requirements based on feedback from other security activities? ✦ ✦Are most stakeholders reviewing vendor SR 2 agreements for security requirements? ✦ ✦Are the security requirements specified by project teams being audited? SR 3 Secure Architecture Yes/No ✦ ✦Are project teams provided with a list of recommended third-party components? ✦ ✦Are most project teams aware of secure 1 SAMM / Applying the Model - v1.0 design principles and applying them? SA ✦ you advertise shared security services ✦Do with guidance for project teams? ✦ ✦Are project teams provided with prescriptive design patterns based on their application architecture? ✦ ✦Are project teams building software from centrally SA 2 controlled platforms and frameworks? ✦ ✦Are project teams being audited for usage of secure architecture components? SA 3 23
Verification Assessment worksheet Design Review Yes/No ✦ project teams document the attack ✦Do perimeter of software designs? ✦ project teams check software designs ✦Do 1 against known security risks? DR ✦ most project teams specifically analyze design ✦Do elements for security mechanisms? ✦ ✦Are most project stakeholders aware of how to obtain a formal design review? ✦ ✦Does the design review process incorporate DR 2 detailed data-level analysis? ✦ ✦Does routine project audit require a baseline for design review results? DR 3 Code Review Yes/No ✦ most project teams have review checklists ✦Do based on common problems? ✦ ✦Are project teams generally performing review of selected high-risk code? ✦ ✦Can most project teams access automated code CR 1 analysis tools to find security problems? ✦ most stakeholders consistently require ✦Do and review results from code reviews? ✦ project teams utilize automation to check code ✦Do CR 2 against application-specific coding standards? ✦ ✦Does routine project audit require a baseline for code review results prior to release? CR 3 Security Testing Yes/No ✦ ✦Are projects specifying some security tests based on requirements? ✦ most projects perform penetration tests prior to release? ✦Do SAMM / Applying the Model - v1.0 1 ✦ ✦Are most stakeholders aware of the security test status prior to release? ST ✦ ✦Are projects using automation to evaluate security test cases? ✦ most projects follow a consistent process to evaluate ✦Do 2 and report on security tests to stakeholders? ST ✦ ✦Are security test cases comprehensively generated for application-specific logic? ✦ routine project audits demand minimum ✦Do 24 standard results from security testing? ST 3
Deployment Assessment worksheet Vulnerability Management Yes/No ✦ most projects have a point of contact for security issues? ✦Do ✦ ✦Does your organization have an assigned security response team? ✦ ✦Are most project teams aware of their security 1 point(s) of contact and response team(s)? VM ✦ ✦Does the organization utilize a consistent process for incident reporting and handling? ✦ ✦Are most project stakeholders aware of relevant security 2 disclosures related to their software projects? VM ✦ ✦Are most incidents inspected for root causes to generate further recommendations? ✦ most projects consistently collect and report ✦Do data and metrics related to incidents? VM 3 Environment Hardening Yes/No ✦ the majority of projects document some ✦Do requirements for the operational environment? ✦ most projects check for security updates ✦Do 1 to third-party software components? EH ✦ a consistent process used to apply upgrades ✦Is and patches to critical dependencies? ✦ most project leverage automation to check ✦Do 2 application and environment health? EH ✦ ✦Are stakeholders aware of options for additional tools to protect software while running in operations? ✦ ✦Does routine audit check most projects for baseline environment health? EH 3 Operational Enablement Yes/No ✦ you deliver security notes with the ✦Do majority of software releases? ✦ ✦Are security-related alerts and error conditions 1 SAMM / Applying the Model - v1.0 documented for most projects? OE ✦ ✦Are most project utilizing a change management process that’s well understood? ✦ project teams deliver an operational security ✦Do 2 guide with each product release? OE ✦ ✦Are most projects being audited to check each release for appropriate operational security information? ✦ code signing routinely performed on software ✦Is components using a consistent process? OE 3 25
Creating Scorecards before after Based on the scores assigned to each Security Practice, an organiza- 2 Strategy & tion can create a scorecard to capture those values. Functionally, a Metrics 3 scorecard can be the simple set of 12 scores for a particular time. However, selecting a time interval over which to generate a score- card facilitates understanding of overall changes in the assurance Policy & 1 program during the time frame. Compliance 2 Using interval scorecards is encouraged for several situations: ✦ ✦Gap analysis - Capturing scores from detailed Education & 1+ assessments versus expected performance levels Guidance 2 ✦ ✦Demonstrating improvement - Capturing scores from before and after an iteration of assurance program build-out Threat 1 ✦ ✦Ongoing measurement - Capturing scores over consistent time E Assessment 2 frames for an assurance program that is already in place PL Security 0+ The figure on the right shows an example scorecard for how an organization’s assurance program changed over the course of one Requirements 1+ year. If that organization had also saved the data about where they AM were planning on being at the end of the year, that would be another 0 Secure interesting data set to plot since it would help show the extent to Architecture 1 which the plans had to change over the year. Design 1 EX Review 2 Code 2 Review 3 Security 1 Testing 2 Vulnerability 0+ Management 1 Environment 1 Hardening 1 SAMM / Applying the Model - v1.0 Operational 2 Enablement 3 26
Building Assurance Programs Phase 1 Phase 2 Phase 3 Phase 4 One of the main uses of SAMM is to help organizations build soft- ware security assurance programs. That process is straightforward, Strategy & and generally begins with an assessment if the organization is al- Metrics ready performing some security assurance activities. Several roadmap templates for common types of organizations Policy & are provided. Thus, many organizations can choose an appropriate Compliance match and then tailor the roadmap template to their needs. For other types of organizations, it may be necessary to build a custom roadmap. Education & Guidance Roadmaps (pictured to the right) consist of phases (the vertical bars) in which several Practices are each improved by one Level. Therefore, building a roadmap entails selection of which Practices Threat to improve in each planned phase. Organizations are free to plan Assessment E into the future as far as they wish, but are encouraged to iterate based on business drivers and organization-specific information to PL ensure the assurance goals are commensurate with their business Security goals and risk tolerance. Requirements After a roadmap is established, the build-out of an assurance pro- gram is simple. An organization begins an improvement phases and AM Secure works to achieve the stated Levels by performing the prescribed Architecture Activities. At the end of the phase, the roadmap should be adjusted based on what was actually accomplished, and then the next phase can begin. Design Review EX Conduct Start initial Code assessment Review Security Create Existing Select Testing no yes empty roadmap appropriate roadmap template? roadmap Vulnerability Management Adding Adjust no Environment another Done roadmap to phase? organization Hardening SAMM / Applying the Model - v1.0 yes Operational Enablement Select Mark selected Practices to improvements improve on roadmap 27
Independent Software Vendor Roadmap template Rationale Phase 1 An Independent Software Vendor involves the core business func- Phase 2 tion of building and selling software components and applications. Phase 3 Phase 4 Initial drivers to limit common vulnerabilities affecting customers and users leads to early concentration on Code Review and Secu- rity Testing activities. Strategy & Metrics Shifting toward more proactive prevention of security errors in product specification, an organization adds activities for Security Requirements over time. Policy & Also, to minimize the impact from any discovered security issues, Compliance the organization ramps up Vulnerability Management activities over time. As the organization matures, knowledge transfer activities from Education & Operational Enablement are added to better inform customers and Guidance users about secure operation of the software. Additional Considerations Threat Outsourced Development Assessment For organizations using external development resources, restric- tions on code access typically leads to prioritization of Security Security Requirements activities instead of Code Review activities. Addi- Requirements tionally, advancing Threat Assessment in earlier phases would allow the organization to better clarify security needs to the outsourced developers. Since expertise on software configuration will gener- Secure ally be strongest within the outsourced group, contracts should be Architecture constructed to account for the activities related to Operational Enablement. Internet-Connected Applications Design Organizations building applications that use online resources have Review additional risks from the core internet-facing infrastructure that hosts the internet-facing systems. To account for this risk, organiza- tions should add activities from Environment Hardening to their Code roadmaps. Review Drivers and Embedded Development For organizations building low-level drivers or software for embed- Security ded systems, security vulnerabilities in software design can be more Testing damaging and costly to repair.Therefore, roadmaps should be modi- fied to emphasize Secure Architecture and Design Review activities SAMM / Applying the Model - v1.0 in earlier phases. Vulnerability Management Organizations Grown by Acquisition In an organization grown by acquisition, there can often be several project teams following different development models with vary- Environment ing degrees of security-related activities incorporated. An organiza- Hardening tion such as this may require a separate roadmap for each division or project team to account for varying starting points as well as project-specific concerns if a variety of software types are being Operational developed. Enablement 28
Online Service Provider Roadmap template Rationale Phase 1 An Online Services Provider involves the core business function of Phase 2 building web applications and other network-accessible interfaces. Phase 3 Phase 4 Initial drivers to validate the overall soundness of design without Phase 5 stifling innovation lead to early concentration on Design Review and Security Testing activities. Strategy & Since critical systems will be network-facing, Environment Harden- Metrics ing activities are also added early and ramped over time to account for risks from the hosted environment. Though it can vary based on the core business of the organizations, Policy & Policy & Compliance activities should be started early and then ad- Compliance vanced according to the criticality of external compliance drivers. As the organization matures, activities from Threat Assessment, Se- curity Requirements, and Secure Architecture are slowly added to Education & help bolster proactive security after some baseline expectations for Guidance security have been established. Additional Considerations Threat Assessment Outsourced Development For organizations using external development resources, restric- tions on code access typically leads to prioritization of Security Security Requirements activities instead of Code Review activities. Addi- Requirements tionally, advancing Threat Assessment in earlier phases would allow the organization to better clarify security needs to the outsourced developers. Since expertise on software configuration will gener- Secure ally be strongest within the outsourced group, contracts should be Architecture constructed to account for the activities related to Operational Enablement. Online Payment Processing Design Review Organizations required to be in compliance with the Payment Card Industry Data Security Standard (PCI-DSS) or other online pay- ment standards should place activities from Policy & Compliance Code in earlier phases of the roadmap. This allows the organization to Review opportunistically establish activities that ensure compliance and en- able the future roadmap to be tailored accordingly. Web Services Platforms Security For organizations building web services platforms, design errors can Testing carry additional risks and be more costly to mitigate. Therefore, ac- SAMM / Applying the Model - v1.0 tivities from Threat Assessment, Security Requirements, and Secure Architecture should be placed in earlier phases of the roadmap. Vulnerability Management Organizations Grown by Acquisition In an organization grown by acquisition, there can often be several project teams following different development models with vary- Environment ing degrees of security-related activities incorporated. An organiza- Hardening tion such as this may require a separate roadmap for each division or project team to account for varying starting points as well as project-specific concerns if a variety of software types are being Operational developed. Enablement 29
You can also read