Microsoft® Security Development Lifecycle

Locations

United States Change All Microsoft Sites

Search


Was this information useful?
 |
yes
 |
no

SDL Process: Design

Seven phases of the traditional software development lifecycle define Security Development Lifecycle (SDL) process. Click on a phase to view the security practice details preformed during each phase or download the whitepaper Simplified Implementation of the SDL.

Simplified Implementation of the SDL

View video:

Implementation
of the SDL
SDL Practice #5:

Establish Design Requirements

SDL Practice #6:

Attack Surface Analysis/Reduction

SDL Practice #7:

Threat Modeling

The design requirements activity contains a number of required actions including the creation of security and privacy design specifications, specification review, and specification of minimal cryptographic design requirements.

A thorough analysis will provide better awareness of overall product attack surface. With this information, design considerations should be put in place to reduce attack surface, including but not limited to disabling or restricting access to system services, applying the principle of least privilege, and employing layered defenses where possible.

Threat modeling is a process by which you can understand security threats to a system, determine risks from those threats, and establish appropriate mitigations.

Why should I follow this practice?

Design specifications should describe how to architect software features securely. By considering security and privacy concerns early when you design features, you minimize the risk of schedule disruptions.

Attack surface reduction reduces security risk by giving attackers less opportunity to exploit a potential weak spot or vulnerability.

Threat modeling allows development teams to effectively find security design issues. Mitigation of security issues is less expensive when performed during design.

When should I employ this practice?

Traditional Software development: Design Phase
Agile development: One Time

Traditional Software development: Design Phase
Agile development: Bucket/Planning

Traditional Software development: Design Phase
Agile development: Every Sprint

Resources specific to this practice
Tools specific to this practice