SDL Optimization Model Self-Assessment Guide

Microsoft Security Development Lifecycle (SDL)
Optimization Model
Self-Assessment Guide
Published: November 2008
Abstract
The Microsoft® Security Development Lifecycle (SDL) Optimization Model is designed to facilitate gradual, consistent, and
cost-effective implementation of the SDL by development organizations outside of Microsoft. The model helps those
responsible for integrating security and privacy in their organization’s software development lifecycle to assess their
current state and to gradually move their organization towards the adoption of the proven Microsoft program for
producing more secure software. The SDL Optimization Model enables development managers and IT policy makers to
assess the state of the security currently in development. They can then create a vision and road map for reducing
customer risk by creating more secure and reliable software in a cost-effective, consistent, and gradual manner. Although
achieving security assurance requires long-term commitment, this guide outlines a plan for attaining measureable
process improvements, quickly, with realistic budgets and resources.
This Self-Assessment Guide will help those responsible for implementing the SDL to assess the current level of maturity in
their organizations and to identify the necessary activities and capabilities needed to move to the next, higher level of
maturity. The guide was designed to be used in conjunction with the detailed Implementer Resource Guides for advancing
in the maturity levels of the SDL optimization model.
For the latest information, more detailed descriptions, and the business benefits of the Microsoft Security Development
Lifecycle, go to http://www.microsoft.com/SDL.
Microsoft makes no warranties, express, implied, or statutory as to the information in this document or information
referenced or linked to by this document.
The information contained in this document represents the current view of Microsoft Corporation on the issues discussed as of the date of
publication. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of
Microsoft, and Microsoft cannot guarantee the accuracy of any information presented after the date of publication.
This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED, OR STATUTORY, AS TO THE
INFORMATION IN THIS DOCUMENT OR INFORMATION REFERENCED OR LINKED TO BY THIS DOCUMENT.
Complying with all applicable copyright laws is the responsibility of the user. Without limiting the rights under copyright, no part of this
document may be reproduced, stored in or introduced into a retrieval system, or transmitted in any form or by any means (electronic,
mechanical, photocopying, recording, or otherwise), or for any purpose, without the express written permission of Microsoft Corporation.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights covering subject matter in
this document. Except as expressly provided in any written license agreement from Microsoft, the furnishing of this document does not give
you any license to these patents, trademarks, copyrights, or other intellectual property.
© 2008 Microsoft Corporation. All rights reserved. This work is licensed under the Creative Commons Attribution-Non-Commercial License.
To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/2.5/ or send a letter to Creative Commons, 543 Howard
Street, 5th Floor, San Francisco, California, 94105, USA.
Microsoft, Visual C++, Visual Studio, SQL Server, and Win32 are either trademarks or registered trademarks of Microsoft Corporation in the
United States and/or other countries.
All other trademarks are property of their respective owners.
Contents
Resource Guide Overview........................................................................................................................................................ 1
Audience .............................................................................................................................................................................. 1
Maturity Levels Overview .................................................................................................................................................... 1
Self Assessment ....................................................................................................................................................................... 3
Capability Area: Training, Policy, and Organizational Capabilities ....................................................................................... 3
Requirements for the Standardized maturity level ......................................................................................................... 3
Requirements for the Advanced maturity level............................................................................................................... 4
Requirements for the Dynamic maturity level ................................................................................................................ 5
Capability Area: Requirements and Design ......................................................................................................................... 7
Requirements for the Standardized maturity level ......................................................................................................... 7
Requirements for the Advanced maturity level............................................................................................................... 8
Requirements for the Dynamic maturity level .............................................................................................................. 10
Capability Area: Implementation ....................................................................................................................................... 10
Requirements for the Standardized maturity level ....................................................................................................... 10
Requirements for the Advanced maturity level............................................................................................................. 12
Requirements for the Dynamic maturity level .............................................................................................................. 12
Capability Area: Verification .............................................................................................................................................. 13
Requirements for the Standardized maturity level ....................................................................................................... 13
Requirements for the Advanced maturity level............................................................................................................. 14
Requirements for the Dynamic maturity level .............................................................................................................. 15
Capability Area: Release and Response ............................................................................................................................. 16
Requirements for the Standardized maturity level ....................................................................................................... 16
Requirements for the Advanced maturity level............................................................................................................. 17
Requirements for the Dynamic maturity level .............................................................................................................. 18
Resource Guide Overview
Audience
This document is designed for development managers and IT decision makers who are responsible for planning,
deploying, and governing security and privacy measures in software development and who want to implement
the practices and concepts of the Microsoft Security Development Lifecycle (SDL).
Maturity Levels Overview
This guide describes a checklist of requirements to meet each maturity level for the five capability areas in the
SDL Optimization Model. The following table offers a general overview of the various capability areas and
maturity levels. To make the table more readable, the activities specified for each maturity level should be read
to include the activities from the lower level.
1
2
Self Assessment
The following section presents questions for each of the core capabilities to help you assess your maturity level in
a given capability area. Many of the requirements in the following section have minimum attributes associated
with them. If your organization meets every requirement and attribute outlined in a certain maturity level, you
have already achieved that level and can proceed to the next maturity level in the SDL Optimization Model. You
can print this section as a scorecard for determining which requirements and attributes you need to implement in
your organization.
Capability Area: Training, Policy, and Organizational Capabilities
Requirements for the Standardized maturity level
Capability: Training
The Standardized level of optimization requires that the security practices, skills, and sophistication of the
developer and tester roles in the software engineering process be assessed to determine the need and the specific
content for security training materials. A “Basics of Secure Design, Development, and Test” or equivalent
curriculum should be developed internally, or a training partner can be engaged from the SDL Pro Network, and
the course should be completed by architects, developers, and quality assurance testers for the SDL pilot projects.
Requirement: Assess training needs for developer and tester roles.
Yes
No
Yes
No
Training needs have been determined and content and an
appropriate curriculum for developers and testers in the
organization has been created or acquired.
Requirement: Successful completion of “Basics of Secure Design,
Development, and Test” or equivalent course by development and
test staff
Architects, developers, and testers for Basic to Standardized pilot
projects have completed introductory training.
For more information, see the Training capability section in the SDL Optimization Model Implementer Resource
Guide: Basic to Standardized.
Capability: Bug Tracking
The Standardized level of optimization requires that bug-tracking systems be updated to include fields to classify
vulnerabilities by their security cause (for example, buffer overflow), effect (for example, elevation of privilege),
and method of discovery (for example, code review).
3
Requirement: Ability to record security cause, effect, and method
of discovery for vulnerabilities
Yes
No
Bug databases and tracking software can record and classify
vulnerabilities by security cause, effect, and method of discovery.
For more information, see the Bug Tracking capability section in the SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Requirements for the Advanced maturity level
Capability: Training
At the Standardized level, the training requirement encompasses only the completion of a “Basics of Secure
Design, Development, and Test” or equivalent course for developers and testers involved in pilot projects.
Broadening and extending staff training is a key component of reaching the Advanced maturity level.
Requirement: Expanded security curriculum
Yes
No
Yes
No
The organization has acquired or developed a training curriculum
for the following subject areas:
• Basics of Secure Design, Development, and Test or equivalent
• Privacy in Development
• Introduction to the Microsoft Security Development Lifecycle
• Introduction to Threat Modeling
Requirement: Successful completion of relevant course material by
80 percent of all development staff in business areas with
significant security risk
Personnel have completed both the “Introduction to the Microsoft
SDL” and “Introduction to Threat Modeling” classes, and the “Basics”
or “Privacy in Development” course as appropriate to their role.
For more information, see the Training capability section in the SDL Optimization Model Implementer Resource
Guide: Standardized to Advanced.
Capability: SDL Policy
At the Advanced level, policy becomes a larger part of governing the SDL process. Policy standardizes the types of
projects that fall under the SDL mandate and the activities and processes that must happen at each phase of the
development lifecycle for a project to be considered in compliance. It also sets the quality gates that need to be
met before release.
4
Requirement: Privacy risks enumerated and executive
commitment formalized
Yes
No
The SDL policy formally defines which projects qualify for SDL mandates
and what the requirements are for compliance. A process exists to track
SDL compliance and issue the necessary exceptions for high-risk projects.
For more information, see the SDL Policy capability section in the SDL Optimization Model Implementer Resource
Guide: Standardized to Advanced.
Capability: Central Ownership of Security and Privacy Advisement
At the Standardized level, advisement by the involved expert is on a per-project basis. To reach the Advanced level,
this should become an official organizational capability that is owned by a centralized security team.
Requirement: Central security team advises all projects and
product groups on security and privacy.
Yes
No
Security and privacy advisement is an official organizational capability
that is owned by a central security team.
For more information, see the Security and Privacy Advisement capability section in the SDL Optimization Model
Implementer Resource Guide: Standardized to Advanced.
Requirements for the Dynamic maturity level
Capability: SDL Policy
At the Dynamic level, SDL policy places every project with meaningful security or privacy risk under the mandate of
the SDL. At this level, the policy provides specific requirements based on different development criteria, such as
product type (for example, client, server, or online services), code type (for example, native or managed) and
platform (for example, target operating system [OS] or device). In addition, activities and standards in the policy
are periodically refreshed, incorporating lessons learned from root-cause analysis of security incidents, adaptations
to the changing threat environment, and improvements in tools and techniques.
Requirement: Periodic refresh of policy
Yes
No
The SDL policy covers all projects that have a meaningful security and
privacy risk and is periodically updated to cover new threats and practices.
For more information, see the SDL Policy capability section in the SDL Optimization Model Implementer Resource
Guide: Advanced to Dynamic.
5
Capability: Training
At the Advanced level, organizations are offering specialized training to address the security needs and emerging
threats to particular modules and product groups. This training may be developed in-house or sourced from
reputable conferences or third parties, such as Microsoft SDL Pro Network members.
Requirement: Custom security training
Yes
No
Engineers and testers have access to advanced training topics
targeted to the specific security and privacy requirements of
individual product groups.
For more information, see the Training capability section in the SDL Optimization Model Implementer Resource
Guide: Advanced to Dynamic.
Capability: Security “Champions” in Product Groups
At the Advanced level, most SDL activities are heavily supported by the central security team. As organizations
move to the Dynamic level, security expertise and responsibility will become more distributed to “champions”
embedded in each product group who have a deeper level of experience and can specialize and contribute security
expertise on a continual basis across the lifecycle. At this level, the central security team will focus more on
ensuring compliance with the policy prior to release, assisting the product teams as necessary and developing
technologies to improve the effectiveness of the SDL within the organization.
Requirement: Security “champions” in product groups
Yes
No
Ownership of the SDL activities and responsibilities is partially distributed
to embedded security “champions” in major product groups.
For more information, see the Security “Champions” in Product Groups capability section in the SDL Optimization
Model Implementer Resource Guide: Advanced to Dynamic.
Capability: SDL Is Adapted to the Development Methodology
By the time the Advanced level is reached, the SDL is becoming a regular part of developing software at an
organization. At the Dynamic level, the SDL activities are fully integrated into the ordinary process and governance
of the software development methodology, whether it is waterfall, Agile, or another style. For product teams, the
SDL is a normal part of the way they create software, not an additional set of requirements.
Requirement: SDL is adapted to the development methodology.
Yes
No
The SDL activities are an integral and mandatory part of how the
organization creates software, and practices are integrated with
the development methodology (such as waterfall or Agile).
For more information, see the Development Methodology Integration capability section in the SDL Optimization
Model Implementer Resource Guide: Advanced to Dynamic.
6
Capability Area: Requirements and Design
Requirements for the Standardized maturity level
Capability: Risk Assessment
The Standardized level of optimization requires that new projects in business areas with meaningful security risk
(as defined by the organization’s SDL policy) fill out a risk-assessment questionnaire. This gives the security
management team visibility into the total organizational need for a security review and helps to prioritize the most
important projects so resources can be properly allocated.
Requirement: Questionnaires used to identify and prioritize
projects for security review and assistance
Yes
No
A risk questionnaire exists and is a mandatory part of the project
initiation or requirements lifecycle phase and the SDL pilot
projects have been identified based upon this questionnaire.
For more information, see the Risk Assessment capability section in the SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Capability: Quality Gates
At project inception, it should be determined whether a feature or product qualifies for the SDL. Typically, features
rated as low risk, or certain classes of product (such as software development kits [SDKs]), may not qualify for
these practices. At the Standardized level, participation in the SDL is opportunistic, rather than mandated, and it
applies only to the pilot projects selected for their risk ranking or ability to absorb and perform the newly required
practices. It is important at an early stage of the software development lifecycle to identify which projects qualify
and what their final security exit criteria before release will be. This allows accurate estimates of security practices
to be built into the project timeline.
Requirement: The SDL eligibility and quality gates are determined
for qualifying projects.
Yes
No
A definition of security and privacy bug classifications exist as
release criteria for the SDL pilot projects.
For more information, please see the Quality Gates capability section in SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Capability: Threat Modeling
At the Standardized level, it is recommended that threat models be created for system components that have
large attack surfaces, are relied upon by other components to enforce security requirements, or have complex
interactions with untrusted systems. A security expert (internal or external) can provide direct assistance and
moderation in the creation of a threat model with the product team.
7
Requirement: Threat models created as needed for high-risk
projects with expert assistance and moderation
Yes
No
A security expert (internal or external) identifies projects that
would benefit from threat modeling and provides direct assistance
to product teams in creating threat models.
For more information, see the Threat Modeling capability section in the SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Requirements for the Advanced maturity level
Capability: Risk Assessment
The Standardized level of optimization requires that new projects in business areas with meaningful security risk
fill out a risk-assessment questionnaire to give the security management team visibility into the total
organizational need for security review and assistance and to help prioritize available resources to the most
important projects. To reach the Advanced level, all projects and supported products must be risk assessed, and
the ability to track and verify the risk assessment must exist.
Requirement: Questionnaires are used to identify and prioritize
projects for security review and assistance.
Yes
No
A risk questionnaire exists as a mandatory part of the project initiation
or requirements lifecycle phase. All new projects have responded and
legacy products have also been retroactively risk assessed. The central
security team is capable of tracking and verifying the risk assessments.
For more information, see the Risk Assessment capability section in the SDL Optimization Model Implementer
Resource Guide: Standardized to Advanced.
Capability: Functional Security Requirements
The Advanced level of optimization requires that the organization-specific, standard solutions for meeting
functional security requirements and mitigating common attack classes be cataloged and that the security team
can provide guidance on the proper application of these solutions. Examples include common authorization
libraries and input/output filtering modules.
Requirement: Standardized security solutions are cataloged and
can be applied.
Yes
No
The security expert team has cataloged and can guide the development
team in applying approved, standard solutions for meeting functional
security requirements and mitigating common attack classes.
For more information, see the Functional Security Requirements capability section in the SDL Optimization Model
Implementer Resource Guide: Standardized to Advanced.
8
Capability: Design Requirements
The Advanced level of optimization requires that the security expert group be able to validate proper application
of standardized solutions and mitigations for new projects categorized as high risk.
Requirement: Ability to validate technical adherence to standard
security solutions for new, high-risk projects
Yes
No
The security expert team is capable of auditing and verifying the
application of standard and approved solutions for functional security
requirements and threat mitigation for new projects classified as high risk.
For more information, see the Design Requirements capability section in the SDL Optimization Model Implementer
Resource Guide: Standardized to Advanced.
Capability: Quality Gates
At project inception, it should be determined whether a feature or product qualifies for the SDL. Typically, features
rated as low risk, or certain classes of product (such as SDKs), may not qualify for these practices. Once a project is
deemed subject to the SDL (by the SDL policy), it is important to identify the final security and privacy exit criteria
before release. This allows accurate estimates of security practices to be built into the project timeline. At the
Advanced level, all new projects evaluated as having high risk fall under the SDL mandates.
Requirement: SDL eligibility and quality gates are determined for
all new and high-risk projects.
Yes
No
Security and privacy criteria for release are defined and mandated
for all new projects evaluated as having meaningful security risk.
For more information, please see the Quality Gates capability section in the SDL Optimization Model Implementer
Resource Guide: Standardized to Advanced.
Capability: Threat Modeling
At the Standardized level, Threat Modeling is opportunistic and expert led. At the Advanced level, the central
security team is capable of assisting with the creation of threat models for all new, high-risk features.
Requirement: Threat models are created for all new and high-risk
projects with the central security team.
The central security team assists product groups with threat
modeling for all new and high-risk projects.
The central security team can validate existing threat models for
correctness.
Threat models are used to enumerate attack surfaces, and the
central security team can recommend appropriate actions for attack
surface reduction.
9
Yes
No
For more information, see the Threat Modeling capability section in the SDL Optimization Model Implementer
Resource Guide: Standardized to Advanced.
Requirements for the Dynamic maturity level
Capability: Threat Modeling
At the Dynamic level, product teams should be experienced with and capable of producing their own threat
models. These threat models are subject to review by the central security team but require much less centralized
effort and supervision to create. Threat modeling is an ordinary part of the development process.
Requirement: Threat models created for all new and high-risk
projects with the central security team
Yes
No
Product groups independently create threat models. The central
security team reviews but does not generally need to participate in
creating threat models.
For more information, see the Threat Modeling capability section in the SDL Optimization Model Implementer
Resource Guide: Advanced to Dynamic.
Capability Area: Implementation
Requirements for the Standardized maturity level
Capability: Secure Coding Policies
Strengthening compiler defenses can produce excellent defense-in-depth for many projects. The Standardized
level currently requires the following:






Use the latest compiler and linker because important defenses are added by the tools.
If using Visual C++®, use Visual Studio® 2005 SP1 or later.
Compile with appropriate compiler flags.
Compile clean at the highest possible warning level.
Compile with –GS to detect stack-based buffer overruns.
Link with appropriate linker flags: /NXCOMPAT to get NX defenses, /DynamicBase to get ASLR, and
/SafeSEH to get exception handler protections.
 For GCC, use at least GCC 4.1 with –fstack-protector or –fstack-protector-all.
Implementing the use of Banned.h or a subset to prevent use of dangerous APIs in C and C++ code is a low-cost
step for new code. Alternately, a simple, free code scanner, such as RATS, can be utilized as part of the
development code review process to manually identify dangerous API usage. For .NET code, use FxCop security
rules.
10
Requirement: Compiler defenses strengthened
Yes
No
Yes
No
The SDL pilot teams and high-risk projects in native code utilize
appropriate compiler defenses.
Requirement: Use of Banned.h or basic code scanning tools
Banned.h is used to exclude banned APIs from new code, or security
code scanners are used in conjunction with code review to identify
dangerous API usage.
For more information, see the Secure Coding Policies capability section in the SDL Optimization Model
Implementer Resource Guide: Basic to Standardized.
Capability: XSS and SQL Injection Defenses
Web applications selected as pilot projects must build in systematic defenses against cross-site scripting (XSS) and
SQL injection vulnerabilities.
Requirement: Evaluation of tools for core development platform
Yes
No
The security expert team is working with the SDL pilot teams to
evaluate XSS and SQL Injection Defenses for Web applications.
Specifically, this includes input validation, output encoding, and the
use of parameterized queries.
For more information, see the XSS and SQL Injection Defenses capability section in the SDL Optimization Model
Implementer Resource Guide: Basic to Standardized.
11
Requirements for the Advanced maturity level
Capability: Security Tools
At the Advanced level, the use of tools to improve software security at the implementation level moves beyond
compiler defenses and simple code scanners to more advanced tools. The central security team should be able to
recommend and to help apply the tools that are appropriate to the platforms and languages in use.
Requirement: Evaluate and recommend appropriate security tools.
Yes
No
Yes
No
The central security team is able to specify appropriate tools based
upon a project type (for example, managed versus native code, Web
versus Win32®), ascertain the quality of available tools (commercial
or open source), and make appropriate recommendations.
Requirement: Use of a static analysis tool on native code
The central security team is able to identify appropriate static analysis
tools for native code projects and triage the tool output to identify false
positives and false negatives. The security team can assist product teams
in understanding and prioritizing the output of such tools.
For more information, see the Security Tools capability section in the SDL Optimization Model Implementer
Resource Guide: Standardized to Advanced.
Requirements for the Dynamic maturity level
Capability: Security Tools
At the Dynamic level, appropriate static-analysis tools are in widespread use on all code with meaningful security
or privacy risk. The organization also has the capability to develop or customize tools in-house to address specific
threats and needs that are not otherwise met by off-the-shelf software.
Requirement: Static analysis for all code
Yes
No
Yes
No
Appropriate static analysis tools are in widespread use on all code.
Requirement: In-house security tool customization
The organization is able to evaluate, develop, or customize security
tools for its unique needs when off-the-shelf software is not sufficient.
For more information, see the Security Tools capability section in the SDL Optimization Model Implementer
Resource Guide: Advanced to Dynamic.
12
Capability Area: Verification
Requirements for the Standardized maturity level
Capability: Dynamic Analysis and Application Scanning (Web Applications)
For Web applications, dynamic scanning tools and passive proxies can be highly effective at finding common
classes of security vulnerabilities. At the Standardized level, for organizations deploying Web applications, the
security expert team should be evaluating such tools against selected pilot projects.
Requirement: Pilot evaluation of dynamic scanning tools for Web
applications
Yes
No
The security expert team is working with the SDL pilot teams to evaluate
and incorporate dynamic scanning tools for Web applications.
For more information, see the Dynamic Analysis and Application Scanning section in the SDL Optimization Model
Implementer Resource Guide: Basic to Standardized.
Capability: Fuzzing
Complex, custom parsing of file formats done in C or C++ is a frequent and avoidable source of high-severity
security bugs. The Standardized level requires that fuzz testing be performed to attempt to identify such
vulnerabilities in native code parsers. A variety of free and commercial tools are available to perform fuzz testing.
Requirement: File fuzzing for native parsers
Yes
No
Custom file format parsers implemented in native C or C++ code
have been fuzzed for the SDL pilot projects.
For more information, see the Fuzzing capability section in the SDL Optimization Model Implementer Resource
Guide: Basic to Standardized.
Capability: Penetration Testing
Organizations at the Basic level are likely not to have a full grasp of the set of security issues present in their
products. An outside perspective can help clarify the current state of security maturity and the types of
vulnerabilities that other processes are not preventing. It is recommended that the pilot products with the greatest
risk exposure for the organization undergo penetration testing by outside experts.
Requirement: Penetration testing by third parties as appropriate
External experts are engaged to perform penetration testing on the
pilot projects with the greatest business risk.
13
Yes
No
For more information, see the Penetration Testing capability section in the SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Requirements for the Advanced maturity level
Capability: Dynamic Analysis and Application Scanning (Web Applications)
For Web applications, dynamic scanning tools and passive proxies can be highly effective at finding common
classes of security vulnerabilities. At the Advanced level, the use of scanners must be comprehensive.
Requirement: Comprehensive dynamic scanning tools for Web
applications
Yes
No
Dynamic analysis tools are applied to all Web applications, and the
central security team can assist with triaging, tuning, and
understanding the output of such tools.
For more information, see the Dynamic Analysis and Application Scanning capability section in the SDL
Optimization Model Implementer Resource Guide: Standardized to Advanced.
Capability: Fuzzing
Complex, custom parsing of file formats done in C or C++ is a frequent and avoidable source of high-severity
security bugs. At the Advanced level, all complex native parsers that take untrusted input must be fuzzed,
especially network protocol endpoints.
Yes
Requirement: File fuzzing for native parsers
No
All parsers of untrusted data (network protocol, file format, or
others) implemented in native code meet fuzzing requirements.
For more information, see the Fuzzing capability section in the SDL Optimization Model Implementer Resource
Guide: Standardized to Advanced.
Capability: Threat Model Validated
At the Advanced level, threat models created at the Design stage are re-examined at the Verification stage to
ensure that relevant test cases are in place and that appropriate negative testing has been performed to validate
threat mitigation strategies.
Requirement: Threat model validated
Yes
Threat models are used in the creation of test plans and test cases
to validate threat mitigation strategies.
14
No
For more information, see the Threat Model Validated capability section in the SDL Optimization Model
Implementer Resource Guide: Standardized to Advanced.
Requirements for the Dynamic maturity level
Capability: Custom Tools to Detect Vulnerabilities
At the Dynamic level, the verification and test team, along with development engineers, are creating customized
tools to find security vulnerabilities, such as integrating common vulnerability classes into automated regression
suites or deploying tools to comprehensively scan for issues identified by root-cause analysis of past incidents.
Requirement: Custom tools to detect vulnerability
Yes
No
The verification and test team is capable of creating custom tools to
detect security vulnerabilities where off-the-shelf software tools are
insufficient.
For more information, see the Custom Security Test Tools capability section in the SDL Optimization Model
Implementer Resource Guide: Advanced to Dynamic.
Capability: Penetration Testing
At the Dynamic level, experts are engaged to perform design reviews and targeted code reviews, in addition to
standard penetration testing.
Requirement: Penetration Testing
Yes
No
Penetration testing is done by third parties, as appropriate, including
design and code reviews.
For more information, see the Penetration Testing capability section in the SDL Optimization Model Implementer
Resource Guide: Advanced to Dynamic.
15
Capability Area: Release and Response
Requirements for the Standardized maturity level
Capability: Final Security Review
The Final Security Review (FSR) stage, performed by the security expert team, is the final stage before release
wherein the activities of earlier SDL phases can be verified. The SDL pilot projects should be given a Final Security
Review.
Requirement: Ability to identify high-risk projects as final security
review candidates
Yes
No
Yes
No
Yes
No
Yes
No
Security expert team and product teams conduct an FSR for the SDL
pilot projects to ensure compliance with the SDL requirements.
Requirement: Review all verified but unfixed or declined security
bugs.
Quality gates are enforced for the number and severity of bugs
released to production, and relevant bugs have not been
downgraded or ignored.
Requirement: Review internal and external policy and regulatory
compliance.
Verify that internal security policies have been followed and that
products meet relevant external regulatory requirements for privacy
and security.
Requirement: Review exception requests.
The security expert team reviews and approves all requested
exceptions to security policies and quality gates.
For more information, see the Final Security Review capability section in the SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Capability: Project Archiving
To better facilitate the debugging of security vulnerabilities reported to you, it is strongly recommended that you
upload debugging symbols to a central, internal site that can be easily accessed by your engineers. Debuggers use
symbols to turn addresses and numbers into human-readable function names and variable names. This debug
symbol requirement applies to all publicly released binaries.
Requirement: Debug symbols are archived for all publicly released
binaries.
Support engineers can easily retrieve symbols for all versions of
publicly released binaries.
16
Yes
No
For more information, see the Project Archiving capability section in the SDL Optimization Model Implementer
Resource Guide: Basic to Standardized.
Capability: Response Planning and Execution
The security team should work with project teams for high-risk projects to develop an incident response plan
before software is released and should be able to execute servicing and to track and analyze incidents for
production code.
Requirement: Need 24 x 7 x 365 contact information for
engineering and operations recorded for projects
Yes
No
New code and projects have recorded contacts for incident
response, and a security response first responder contact point is
made available to clients and the general public.
For more information, see the Response Planning and Execution capability section in the SDL Optimization Model
Implementer Resource Guide: Basic to Standardized.
Requirements for the Advanced maturity level
Capability: Final Security Review
The tasks in the Final Security Review stage are performed by the security expert team for all projects falling under
the expanded SDL mandate.
Requirement: Final Security Review for all SDL-qualified projects
Yes
No
The security expert team performs a Final Security Review for all
projects falling under the organizational mandate for SDL
compliance. Projects must meet their FSR requirements or go
through an approved exception process prior to release.
For more information, see the Final Security Review capability section in the SDL Optimization Model Implementer
Resource Guide: Standardized to Advanced.
Capability: Response Planning and Execution
Organizations reaching the Advanced level should have experience responding to security incidents and should
have a full response plan in place. In addition to the requirements at the Standardized level, this response plan
should include a catalog of and the ability to respond to vulnerabilities introduced by third-party code and
dependencies, along with code owned directly by the organization.
17
Requirement: Response plan in place and tested
Yes
No
Yes
No
A proven response plan is in place and has been tested by real-world
incidents or in readiness exercises.
Requirement: Incidents tracked and basic root-cause analysis is
performed
Vulnerabilities found after release are recorded and analyzed to
provide benchmarks for the effectiveness of the SDL process and to
suggest ways to improve it within the organization.
For more information, see the Response Planning and Execution capability section in the SDL Optimization Model
Implementer Resource Guide: Standardized to Advanced.
Requirements for the Dynamic maturity level
Capability: Response Planning and Execution
At the Dynamic level, incident tracking and security response should be well rehearsed and should be able to
happen in near real time, for internal code and for third-party code or dependencies. Root-cause analysis is
advanced and includes scrubbing of all code for similar vulnerabilities and formal feedback into the SDL policy to
prevent repeat incidents of the same bug class.
Requirement: Response in near real time
Yes
No
Yes
No
Security incident tracking and response can happen in near real time
for internal and for third-party code or dependencies.
Requirement: Advanced root-cause analysis with feedback into the
SDL policy
The root cause of all security incidents is analyzed. Code is scrubbed for
other instances of the same vulnerability and incident analysis feeds back
into the SDL policy. New activities and practices are introduced where
necessary to prevent future bugs of the same class as historical ones.
For more information, see the Response Planning and Execution capability section in the SDL Optimization Model
Implementer Resource Guide: Advanced to Dynamic.
18