Book description
Your customers demand and deserve better security and privacy in their software. This book is the first to detail a rigorous, proven methodology that measurably minimizes security bugs—the Security Development Lifecycle (SDL). In this long-awaited book, security experts Michael Howard and Steve Lipner from the Microsoft Security Engineering Team guide you through each stage of the SDL—from education and design to testing and post-release. You get their first-hand insights, best practices, a practical history of the SDL, and lessons to help you implement the SDL in any development organization.
Discover how to:
- Use a streamlined risk-analysis process to find security design issues before code is committed
- Apply secure-coding best practices and a proven testing process
- Conduct a final security review before a product ships
- Arm customers with prescriptive guidance to configure and deploy your product more securely
- Establish a plan to respond to new security vulnerabilities
- Integrate security discipline into agile methods and processes, such as Extreme Programming and Scrum
Includes a CD featuring:
- A six-part security class video conducted by the authors and other Microsoft security experts
- Sample SDL documents and fuzz testing tool
PLUS—Get book updates on the Web.
A Note Regarding the CD or DVD
The print version of this book ships with a CD or DVD. For those customers purchasing one of the digital formats in which this book is available, we are pleased to offer the CD/DVD content as a free download via O'Reilly Media's Digital Distribution services. To download this content, please visit O'Reilly's web site, search for the title of this book to find its catalog page, and click on the link below the cover image (Examples, Companion Content, or Practice Files). Note that while we provide as much of the media content as we are able via free download, we are sometimes limited by licensing restrictions. Please direct any questions or concerns to booktech@oreilly.com.
Publisher resources
Table of contents
- The Security Development Lifecycle: SDL: A Process for Developing Demonstrably More Secure Software
- Foreword
- Introduction
-
I. The Need for the SDL
-
1. Enough Is Enough: The Threats Have Changed
- Worlds of Security and Privacy Collide
- Another Factor That Influences Security: Reliability
- It’s Really About Quality
- Why Major Software Vendors Should Create More Secure Software
- Why In-House Software Developers Should Create More Secure Software
- Why Small Software Developers Should Create More Secure Software
- Summary
- References
- 2. Current Software Development Methods Fail to Produce Secure Software
- 3. A Short History of the SDL at Microsoft
- 4. SDL for Management
-
1. Enough Is Enough: The Threats Have Changed
-
II. The Security Development Lifecycle Process
- 5. Stage 0: Education and Awareness
-
6. Stage 1: Project Inception
- Determine Whether the Application Is Covered by SDL
-
Assign the Security Advisor
- Act as a Point of Contact Between the Development Team and the Security Team
- Holding an SDL Kick-Off Meeting for the Development Team
- Holding Design and Threat Model Reviews with the Development Team
- Analyzing and Triaging Security-Related and Privacy-Related Bugs
- Acting as a Security Sounding Board for the Development Team
- Preparing the Development Team for the Final Security Review
- Working with the Reactive Security Team
- Build the Security Leadership Team
- Make Sure the Bug-Tracking Process Includes Security and Privacy Bug Fields
- Determine the “Bug Bar”
- Summary
- References
- 7. Stage 2: Define and Follow Design Best Practices
- 8. Stage 3: Product Risk Assessment
-
9. Stage 4: Risk Analysis
- Threat-Modeling Artifacts
- What to Model
- Building the Threat Model
- The Threat-Modeling Process
- Using a Threat Model to Aid Code Review
- Using a Threat Model to Aid Testing
- Key Success Factors and Metrics
- Summary
- References
- 10. Stage 5: Creating Security Documents, Tools, and Best Practices for Customers
- 11. Stage 6: Secure Coding Policies
- 12. Stage 7: Secure Testing Policies
- 13. Stage 8: The Security Push
- 14. Stage 9: The Final Security Review
- 15. Stage 10: Security Response Planning
- 16. Stage 11: Product Release
- 17. Stage 12: Security Response Execution
-
III. SDL Reference Material
- 18. Integrating SDL with Agile Methods
-
19. SDL Banned Function Calls
-
The Banned APIs
- Banned String Copy Functions and Replacements
- Banned String Concatenation Functions and Replacements
- Banned sprintf Functions and Replacements
- Banned “n” sprintf Functions and Replacements
- Banned Variable Argument sprintf Functions and Replacements
- Banned Variable Argument “n” sprintf Functions and Replacements
- Banned “n” String Copy Functions and Replacements
- Banned “n” String Concatenation Functions and Replacements
- Banned String Tokenizing Functions and Replacements
- Banned Makepath Functions and Replacements
- Banned Splitpath Functions and Replacements
- Banned scanf Functions and Replacements
- Banned “n” scanf Functions and Replacements
- Banned Numeric Conversion Functions and Replacements
- Banned gets Functions and Replacements
- Banned IsBad* Functions and Replacements
- Banned OEM Conversion Functions and Replacements
- Banned Stack Dynamic Memory Allocation Functions and Replacements
- Banned String Length Functions and Replacements
- Why the “n” Functions Are Banned
- Important Caveat
- Choosing StrSafe vs. Safe CRT
- Using StrSafe
- Using Safe CRT
- Other Replacements
- Tools Support
- ROI and Cost Impact
- Metrics and Goals
- References
-
The Banned APIs
- 20. SDL Minimum Cryptographic Standards
- 21. SDL-Required Tools and Compiler Options
-
22. Threat Tree Patterns
- Spoofing an External Entity or a Process
- Tampering with a Process
- Tampering with a Data Flow
- Tampering with a Data Store
- Repudiation
- Information Disclosure of a Process
- Information Disclosure of a Data Flow
- Information Disclosure of a Data Store
- Denial of Service Against a Process
- Denial of Service Against a Data Flow
- Denial of Service Against a Data Store
- Elevation of Privilege
- References
- Appendix
- Index
- About the Authors
- Copyright
Product information
- Title: Security Development Lifecycle
- Author(s):
- Release date: June 2006
- Publisher(s): Microsoft Press
- ISBN: 9780735622142
You might also like
book
Security in Development: The IBM Secure Engineering Framework
IBM® has long been recognized as a leading provider of hardware, software, and services that are …
book
Securing Node Applications
Security incidents are indeed on the rise, but according to one authoritative analysis, 85% of all …
book
Application Security in the ISO 27001:2013 Environment
Web application security as part of an ISO 27001-compliant information security management system Web application vulnerabilities …
book
Securing Web Applications
Most enterprise applications today live on the network edge, right where attackers are focusing increasing attention …