Chapter 9. Stage 4: Risk Analysis
If we had our hands tied behind our backs (we don't) and could do only one thing to improve software securitythreat modeling, better security code reviews, or better security testingwe would do threat modeling every day of the week. The reason is simple: when performed correctly, threat modeling occurs early in the project lifecycle and can be used to find security design issues before code is committed. This can lead to significant cost savings because issues are resolved early in the development lifecycle. Derived from numerous studies and research sources, Table 9-1from Steve McConnell's Code Complete (McConnell 2004)shows the relative cost of fixing defects in code.
The idea behind threat modeling is simply to understand the potential security threats to the system, determine risk, and establish appropriate mitigations. Threat modeling also helps businesses manage software risk, creates awareness of security dependencies and assumptions, and provides the ability to translate technical risk to business impact (and vice versa). Over the last two years, Microsoft has extensively researched how to improve threat modeling and has garnered feedback from the Microsoft Trustworthy Computing Academic Advisory Board (TCAAB 2003), Microsoft employees, and others in the software and security industries and academia. Note
The threat-modeling processes documented in Writing Secure Code, Second Edition (Howard and LeBlanc 2003) and then explained further in Threat Modeling (Swiderski and Snyder 2004) have received some valid criticism; most notably, they require too much security expertise, and they're subjective (Torr 2005). The updated method described in this chapter addresses both these issues by providing a more streamlined and coherent process. Note that threat modeling is not a static process. At Microsoft, we are constantly learning how make the technique easier, more approachable, and frankly, more beneficial. The benefits of threat modeling are numerous. Notably, threat modeling
We'll discuss all of these throughout the rest of this chapter. But before we do, we want to explain something very important about threat models. At Microsoft, we have found that a good set of threat models is a sign of a "security healthy" team. Good threat models mean the team has thought through the security and privacy issues in depth. Contrast this with a group that has poor or incomplete threat models, and this might indicate the team has not spent enough time thinking through the threats to the system. It does not mean the code is poor quality; it might very well be rock-solid, but the team still might need help understanding the threats. Best Practices
|
Friday, December 18, 2009
Chapter 9. Stage 4: Risk Analysis
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment