Threat modeling used to be an arcane process handed down from one security expert to another. But it's the single most valuable skill I have learned in security. It involves looking at every system interface or function and trying to find different ways to break it.

Adrian Lane, Contributor

August 17, 2010

3 Min Read

Threat modeling used to be an arcane process handed down from one security expert to another. But it's the single most valuable skill I have learned in security. It involves looking at every system interface or function and trying to find different ways to break it.Sounds simple, but the essence of thinking like an attacker is elusive for most people who have not witnessed an expert practice this art firsthand. Once you have seen an talented attacker at work, it's as if a veil has been lifted, exposing a world of methods to compromise a system you never thought possible.

Threat modeling is just as applicable to database deployment as it is to code development -- where it is usually applied. A database is just another type of application, with highly advanced features and dozens of interfaces. Over and above what a vulnerability assessment can provide you, threat modeling can detect problems specific to your environment and applications that these precanned scans cannot. It spotlights your environment, forces you to look closely at base assumptions of system interactions, and hopefully gives you some idea on how best to thwart potential attacks.

But if you don't have a threat modeling expert on staff, how do you begin?

Adam Shostack and his team over at Microsoft created a card game called Elevation of Privilege. The goal is to teach nonsecurity professionals the basics of threat modeling so they can better understand security threats to their software or infrastructure. The game is based upon the STRIDE variant of threat modeling, which categorizes common threat types (spoofing, tampering, repudiation, information disclosure, denial of service, and elevation of privilege).

You play the game by drawing, in detail, your application environment. You illustrate the database, the OS it runs on, how applications use the database, all of the interfaces, external stored procedures, access control, key management, and how all of these features communicate. Then you deal a handful of cards to your team members. (You can download the card deck, or Microsoft gives away real shiny cards at its booth during the RSA conference).

Next, you go around the room trying to apply a threat card to your environment. The person who can legitimately apply the highest threat card takes the round. If nothing else, the cards help educate team members on the myriad of threat types attackers employ, but odds are your will learn about weaknesses.

This video introduction demonstrates the basics of game play, but be warned: It's off the charts with the excitement factor. Make sure you have taken your heart medications before watching, and consult your physician. Well, OK, maybe not. But what the video lacks in excitement, it makes up for in valuable information.

In some ways this game is a version of strip poker because you are looking to strip assumptions of trust between key functions. It's usually the trust relationships between components that attackers exploit, so you want to lay these assumptions bare to the team and see if they can be exploited.

Regardless, this is a useful method of teaching threat types, as well as introducing an informal process to looking for threats. It's similar to disaster-recovery planning scenarios -- but done for security. As you learn more, you'll probably want to do this when you roll out new applications. And keep in mind that there are other threat discovery models and techniques out there, but this one is approachable for anyone who has not done this type of analysis before.

Adrian Lane is an analyst/CTO with Securosis LLC, an independent security consulting practice. Special to Dark Reading.

About the Author(s)

Adrian Lane

Contributor

Adrian Lane is a Security Strategist and brings over 25 years of industry experience to the Securosis team, much of it at the executive level. Adrian specializes in database security, data security, and secure software development. With experience at Ingres, Oracle, and Unisys, he has extensive experience in the vendor community, but brings a pragmatic perspective to selecting and deploying technologies having worked on "the other side" as CIO in the finance vertical. Prior to joining Securosis, Adrian served as the CTO/VP at companies such as IPLocks, Touchpoint, CPMi and Transactor/Brodia. He has been invited to present at dozens of security conferences, contributed articles to many major publications, and is easily recognizable by his "network hair" and propensity to wear loud colors.

Keep up with the latest cybersecurity threats, newly discovered vulnerabilities, data breach information, and emerging trends. Delivered daily or weekly right to your email inbox.

You May Also Like


More Insights