Microsoft Security Development Lifecycle (SDL)
If you are studying for Microsoft Azure Fundamentals Exam, this guide will help you with quick revision before the exam. it can use as study notes for your preparation.
Dashboard Other Certification NotesMicrosoft Security Development Lifecycle (SDL)
- Set of guidance, best practices, tools, and processes
- used internally at Microsoft to build more secure products and services.
- Introduces security and privacy considerations throughout all phases of the development process.
- Helps developers
- build highly secure software
- address security compliance requirements
- reduce development costs.
Provide training
- Security is everyone’s job
- E.g. developers, service engineers, and program and project managers.
- Everyone must understand
- security basics
- how to build security into software & services
- attacker’s perspective, their goals, and the art of the possible
Define security requirements
- Security requirements must be updated continuously in order to address changes in required functionality and changes to the threat landscape.
- Optimal time to define the security requirements is during the initial design and planning stages.
- Early planning allows development teams to integrate security in ways that minimize disruption.
- Factors that influence security requirements include, but are not limited to:
- Legal and industry requirements
- Internal standards and coding practices
- Review of previous incidents
- Known threats
- Track requirements through e.g.
- work-tracking system
- telemetry from the engineering pipeline.
Define metrics and compliance reporting
- Essential to define the minimum acceptable levels of security quality
- and to hold engineering teams accountable to meeting that criteria.
- Good to define as early as possible to apply standards throughout the entire project.
- E.g. all known vulnerabilities discovered with a “critical” or “important” severity rating must be fixed with a specified time frame.
- Track & report security work
- Allows to have key performance indicators (KPIs)
- Ensures security tasks are completed
- Bug/work tracking mechanism should allow for security defects and security work items
- to be clearly labeled as security
- marked with their appropriate security severity
- Read more about defining metrics and compliance reporting at:
Perform threat modeling
- USE in environments where there is a meaningful security risk.
- Allows development teams to consider, document, and discuss the security implications of designs.
- Applying a structured approach to threat scenarios helps a team.
- Effectively and less expensively identify security vulnerabilities
- Determine risks from those threats
- make security feature selections and establish appropriate mitigations.
- You can apply threat modeling at the component, application, or system level.
- Read more: Threat Modeling
Establish design requirements
- Assurance activities that help engineers implement more secure features, e.g. well engineered for security.
- Methods e.g. cryptography, authentication, and logging.
- Complicated design & security features are likely to result in vulnerabilities.
- Crucial to apply consistently and with a understanding of the protection they provide.
Define and use cryptography standards
- Encrypt in transit to protect data from being alteration & unintended disclosure when moving.
- Making an incorrect choice when using any aspect of cryptography can be catastrophic.
- Best to develop clear encryption standards with specifics on every element of the encryption implementation.
- Only use industry-vetted encryption libraries: Encryption should be left to experts.
- See the Microsoft SDL Cryptographic Recommendations whitepaper for more.
Manage security risks from using third-party components
- Understand the impact of security vulnerability in third-party components to rest of the system.
- Plan to respond when new vulnerabilities are discovered & consider additional validation
- Read more:
Use approved tools
- Define and publish a list of approved tools and their associated security checks.
- e.g. compiler/linker options and warnings.
- Strive to
- use the latest version of approved tools (such as compiler versions)
- utilize new security analysis functionality and protections.
- Read more:
Perform Static Analysis Security Testing (SAST)
- Analyzing source code prior to compilation
- provides a highly scalable method of security code review
- helps ensure that secure coding policies are being followed
- Typically integrated into the commit pipeline to identify vulnerabilities each time the software is built or packaged.
- Some offerings replace flawed (e.g. unsafe/banned) functions while developer is coding.
- Read more:
Perform Dynamic Analysis Security Testing
- Performs run-time verification when all components are integrated and running.
- Achieved using a tool
- e.g. a suite of pre-built attacks
- e.g. to specifically monitor application behavior for memory corruption, user privilege issues, and other critical security problems.
- Some tools can be more readily integrated into the CI/CD pipeline
- e.g. such as web app scanning tools
- Other such as fuzzing requires a different approach.
- Read more:
Perform penetration testing
- Security analysis of a software system by simulating the actions of a hacker.
- Uncovers potential vulnerabilities resulting from e.g.
- coding errors, system configuration faults, or other operational deployment weaknesses.
- Finds the broadest variety of vulnerabilities
- Often performed in conjunction with automated and manual code reviews.
- Read more:
Establish a standard incident response process
- Crucial for addressing new threats that can emerge over time
- The plan should be created in coordination with your organization’s dedicated Product Security Incident Response Team (PSIRT).
- Your incident response plan should:
- Include who to contact if a security emergency occurs
- Establish the protocol for security servicing (including plans for code inherited from other groups within the organization and for third-party code)
- Be tested before it is needed
- Read more: