Starting with the Trustworthy Computing (TwC) directive of January 2002, many software development groups at Microsoft instigated “security pushes” to find ways to improve the security of existing code. However, the reliable delivery of more secure software requires a comprehensive process. To that end Microsoft defined four guiding principles to guide the creation and support of more secure software: Secure by Design; Secure by Default; Secure in Deployment; and Communications (SD3+C). The SDL brings these principles to life, by integrating them into every step of the software development lifecycle. This section provides a summary of SDL activities in each development phase. Additionally, each phase includes links to an in-depth description of the SDL v4.1 process and requirements.
.jpg)
.jpg) | Pre-SDL Requirements: Security Training Security training is the opportunity for members of software development teams to receive appropriate training to stay informed about security basics and recent trends in security and privacy. |
.jpg) | Phase 1: Requirements The requirements phase is the opportunity for the product team to consider how to best integrate security into the development process, identify key security objectives, and maximize software security while minimizing disruption to customer usability, plans, and schedules. - Analyze security and privacy risk
- Define quality gates
|
.jpg) | Phase 2: Design The design phase identifies the overall requirements and structure for the software and establishes design best practices. - Threat modeling
- Attack surface analysis
|
.jpg) | Phase 3: Implementation During the implementation phase, the product team establishes and follows best practices for development then enforces the best practices during software development. - Specify tools
- Enforce banned functions
- Static analysis
|
.jpg) | Phase 4: Verification The verification phase is the point at which the software is functionally complete and is tested against security and privacy goals outlined in the requirements and design phases. - Dynamic/Fuzz testing
- Verify threat models and attack surface
|
.jpg) | Phase 5: Release The release phase is when you ready your software for public consumption, and you create plans for post release servicing of the software. - Response plan
- Final security review
- Release archive
|
.jpg) | Post-SDL Requirement: Response For more information on security response at Microsoft, visit the Microsoft Security Response Center (MSRC) Web site.
|