Home > Articles > Security > Software Security

The Role of Architectural Risk Analysis in Software Security

Gary McGraw
  • PrintPrint
  • Share ThisShare This
  • DiscussDiscuss
Close WindowGary McGraw

Gary McGraw

Learn more…

Software [In]security: Cargo Cult Computer Security
Jan 28, 2010
Software [In]security: You Really Need a Software Security Group
Dec 21, 2009
Software [In]security: BSIMM Europe
Nov 10, 2009
Software [In]security: Startup Lessons
Oct 22, 2009
Software [In]security: BSIMM Begin
Sep 24, 2009
Software [In]security: Attack Categories and History Prediction
Aug 25, 2009
Software [In]security: Moving U.S. Cybersecurity Beyond Cyberplatitudes
Jul 16, 2009
Software [In]security: Measuring Software Security
Jun 18, 2009
Software [In]security: Twitter Security
May 15, 2009
Software [In]security: Software Security Comes of Age
Apr 16, 2009
Software [In]security: The Building Security In Maturity Model (BSIMM)
Mar 16, 2009
Software [In]security: Nine Things Everybody Does: Software Security Activities from the BSIMM
Feb 9, 2009
Software [In]security: Top 11 Reasons Why Top 10 (or Top 25) Lists Don’t Work
Jan 13, 2009
Software [In]security: Software Security Top 10 Surprises
Dec 15, 2008
Software [In]security: Web Applications and Software Security
Nov 14, 2008
Software [In]security: A Software Security Framework: Working Towards a Realistic Maturity Model
Oct 15, 2008
Software [In]security: Getting Past the Bug Parade
Sep 17, 2008
Software [In]security: Software Security Demand Rising
Aug 11, 2008
Software [In]security: Application Assessment as a Factory
Jul 17, 2008
Software [In]security: DMCA Rent-a-cops Accept Fake IDs
Jun 12, 2008
Why Is Security a Software Issue?
Jun 2, 2008
Software [In]security: Securing Web 3.0
May 15, 2008
Software [In]security: Paying for Secure Software
Apr 7, 2008
Game Hacking 101
Nov 21, 2007
The Role of Architectural Risk Analysis in Software Security
Mar 3, 2006
Reverse Engineering and Program Understanding
Dec 23, 2004
Security Expert Gary McGraw on Black Hats, the U.S. Government, and Good vs. Evil
Jun 11, 2004
Introduction to Software Security
Nov 2, 2001
Building Secure Software: Race Conditions
Nov 2, 2001

Sorry, this author hasn't posted any blogs.

Software Security: Building Security In

This chapter is from the book
Software Security: Building Security In

Design flaws account for 50% of security problems. You can’t find design defects by staring at code—a higher-level understanding is required. That’s why architectural risk analysis plays an essential role in any solid software security program. Find out more about architectural risk analysis in this sample chapter.

Architecture is the learned game, correct and magnificent, of forms assembled in the light.

—Le Corbusier

[1]Design flaws account for 50% of security problems. You can’t find design defects by staring at code—a higher-level understanding is required. That’s why architectural risk analysis plays an essential role in any solid software security program. By explicitly identifying risk, you can create a good general-purpose measure of software security, especially if you track risk over time. Because quantifying impact is a critical step in any risk-based approach, risk analysis is a natural way to tie technology issues and concerns directly to the business. A superior risk analysis explicitly links system-level concerns to probability and impact measures that matter to the organization building the software.

The security community is unanimous in proclaiming the importance of a risk-based approach to security. “Security is risk management” is a mantra oft repeated and yet strangely not well understood. Nomenclature remains a persistent problem in the security community. The term risk management is applied to everything from threat modeling and architectural risk analysis to large-scale activities tied up in processes such as RMF (see Chapter 2).

As I describe in Chapter 1, a continuous risk management process is a necessity. This chapter is not about continuous risk management, but it does assume that a base process like the RMF exists and is in place. [2] By teasing apart architectural risk analysis (the critical software security best practice described here) and an overall RMF, we can begin to make better sense of software security risk.

Common Themes among Security Risk Analysis Approaches

Risk management has two distinct flavors in software security. I use the term risk analysis to refer to the activity of identifying and ranking risks at some particular stage in the software development lifecycle. Risk analysis is particularly popular when applied to architecture and design-level artifacts. I use the term risk management to describe the activity of performing a number of discrete risk analysis exercises, tracking risks throughout development, and strategically mitigating risks. Chapter 2 is about the latter.

A majority of risk analysis process descriptions emphasize that risk identification, ranking, and mitigation is a continuous process and not simply a single step to be completed at one stage of the development lifecycle. Risk analysis results and risk categories thus drive both into requirements (early in the lifecycle) and into testing (where risk results can be used to define and plan particular tests).

Risk analysis, being a specialized subject, is not always best performed solely by the design team without assistance from risk professionals outside the team. Rigorous risk analysis relies heavily on an understanding of business impact, which may require an understanding of laws and regulations as much as the business model supported by the software. Also, human nature dictates that developers and designers will have built up certain assumptions regarding their system and the risks that it faces. Risk and security specialists can at a minimum assist in challenging those assumptions against generally accepted best practices and are in a better position to “assume nothing.” (For more on this, see Chapter 9.)

A prototypical risk analysis approach involves several major activities that often include a number of basic substeps.

  • Learn as much as possible about the target of analysis.
    • Read and understand the specifications, architecture documents, and other design materials.
    • Discuss and brainstorm about the target with a group.
    • Determine system boundary and data sensitivity/criticality.
    • Play with the software (if it exists in executable form).
    • Study the code and other software artifacts (including the use of code analysis tools).
    • Identify threats and agree on relevant sources of attack (e.g., will insiders be considered?).
  • Discuss security issues surrounding the software.
    • Argue about how the product works and determine areas of disagreement or ambiguity.
    • Identify possible vulnerabilities, sometimes making use of tools or lists of common vulnerabilities.
    • Map out exploits and begin to discuss possible fixes.
    • Gain understanding of current and planned security controls. [3]
  • Determine probability of compromise.
    • Map out attack scenarios for exploits of vulnerabilities.
    • Balance controls against threat capacity to determine likelihood.
  • Perform impact analysis.
    • Determine impacts on assets and business goals.
    • Consider impacts on the security posture.
  • Rank risks.
  • Develop a mitigation strategy.
    • Recommend countermeasures to mitigate risks.
  • Report findings.
    • Carefully describe the major and minor risks, with attention to impacts.
    • Provide basic information regarding where to spend limited mitigation resources.

A number of diverse approaches to risk analysis for security have been devised and practiced over the years. Though many of these approaches were expressly invented for use in the network security space, they still offer valuable risk analysis lessons. The box Risk Analysis in Practice lists a number of historical risk analysis approaches that are worth considering.

My approach to architectural risk analysis fits nicely with the RMF described in Chapter 2. For purposes of completeness, a reintroduction to the RMF is included in the box Risk Analysis Fits in the RMF.

  • Share ThisShare This
  • Your Account

Discussions

Make a New Comment

You must log in in order to post a comment.

Related Resources

Jennifer  BortelWin FREE iPhone Developer Books and Videos- Introducing @InformIT Giveaways
By Jennifer Bortel on February 5, 2010 No Comments

Apples’s recent iPad announcement made our hearts flutter so we couldn’t resist making an announcement of our own!

Today marks the first ever @InformIT Giveaway!

We’ll regularly post a video like this one profiling spectacular prizes we’re giving away—from books and videos to T-shirts and other exciting stuff. Check out the video below to see the giveaways for today, and then scroll down for more prize details and instructions on how to win them!

Dustin Sullivan"Every OSX developer should have this book on their desk."
By Dustin Sullivan on February 1, 2010 No Comments

That was the sentence Mike Riley ended his recent Dr Dobb's CodeTalk review of Cocoa Programming Developer's Handbook with.

David ChisnallCocoa Tip of the Day, 1/29/10
By David Chisnall on January 29, 2010 No Comments

Don't ignore old versions of OS X.

See All Related Blogs

Informit Network