640 likes | 1.39k Views
Microsoft Security Development Lifecycle. امیرحسین علی اکبریان. Education + Process Improvement + Accountability Security Development Lifecycle. Security Development Lifecycle. A PROCESS by which Microsoft develops software, that defines security requirements and milestones
E N D
Microsoft Security Development Lifecycle امیرحسین علی اکبریان
Education +Process Improvement+Accountability Security Development Lifecycle
Security Development Lifecycle A PROCESS by which Microsoft develops software, that defines security requirements and milestones • MANDATORY for products that are exposed to meaningful security risk • EVOLVING and new factors (such as privacy are being added • COMPATIBLE with COTS product development processes • EFFECTIVE at addressing security issues; designed to produce DEMONSTRATABLE RESULTS • It has shown itself to be highly effective at reducing vulnerabilities in commercial software
Threat modeling Code inspection Unused features off by default Reduce attack surface area Least Privilege Security Tools Training and Education Community Engagement Transparency Clear policy A Security FrameworkSD3+C
Security Development Lifecycle (SDL) http://swi/sdl
Security Development Lifecycle Drilldown
Pre-SDL Requirement Security Training
SDL Practice 1: Training Requirement • Secure Design • Threat Modeling • Secure Coding • Security Testing • Privacy
Phase One Requirements
SDL Practice 2: Security Requirements • The optimal point to define trustworthiness requirements • Includes specification of minimum security requirements for the application
SDL Practice 3: Quality Gates/Bug Bars • Establish minimum acceptable levels of security and privacy quality • Improves the understanding of risks
SDL Practice 4: Security and Privacy Risk Assessment • Identify functional aspects of the software that require deep review • Include following information • (Security) Which portions of the project will require threat models before release? (Security) Which portions of the project will require security design reviews before release? • (Security) Which portions of the project (if any) will require penetration testing by a mutually agreed upon group that is external to the project team? • (Security) Are there any additional testing or analysis requirements the security advisor deems necessary to mitigate security risks? • (Security) What is the specific scope of the fuzz testing requirements? • (Privacy) What is the Privacy Impact Rating?
Phase Two Design
SDL Practice 5: Design Requirements • “Secure Features” vs. “Security Features” • Creation of security and privacy design specifications • design specifications against the application’s functional specification • Specification review • Specification of minimal cryptographic design requirements
SDL PRACTICE 6: ATTACK SURFACE REDUCTION • reducing risk by giving attackers less opportunity to exploit a potential weak spot or vulnerability • shutting off or restricting access to system services • applying the principle of least privilege • employing layered defenses
SDL PRACTICE 7: THREAT MODELING • used in environments where there is meaningful security risk • to consider, document, and discuss the security implications of designs • STRIDE
Phase 4: Implementaion
SDL Practice 8: Use Approved Tools • Define and publish a list of approved tools • Use the latest version of approved tools
SDL Practice 9: Deprecate Unsafe Functions • prohibit functions and APIs that are determined to be unsafe • header files (such as banned.h and strsafe.h) • newer compilers • code scanning tools
SDL Practice 10: Static Analysis • Can help ensure that secure coding policies are being followed • other tools or human review as appropriate
Phase 4 Verification
SDL Practice 11: Dynamic Program Analysis • Run-time verification of software
SDL Practice 12: Fuzz Testing • a specialized form of dynamic analysis • malformed or random data
SDL Practice 13: Threat Model and Attack Surface Review • Check deviation from design and requirements
Phase 5 Release
SDL Practice 14: Incident Response Plan • programs with no known vulnerabilities at the time of release can be subject to new threats that emerge over time
SDL Practice 15: Final Security Review • performed by the security advisor with assistance from the regular development staff and the security and privacy team leads • not a “penetrate and patch” exercise, nor is it a chance to perform security activities that were previously ignored or forgotten • Result • Passed FSR • Passed FSR with exceptions • FSR with escalation
SDL Practice 16: Release/Archive • Check that all Security and Privacy conditions are satisfied • Archive data for post-release servicing of the software
Optional Activities • Depend on size and security impact • Manual Code Review • Penetration Testing • Vulnerability Analysis of Similar Applications
Accountability for SDL • You can’t manage what you can’t measure… • Education • Individual learning measurement • Team training compliance • Process implementation • In-process metrics provide early warning • Threat model completion • Code reviewed • Test coverage • FSR results • Post-release metrics assess final payoff • Total and high severity vulnerabilities