Daily using/supporting

Get Firefox browser!
Get Thunderbird!
Get Opera browser!
Get The Gimp!
Get Inkscape!
Get LibreOffice!
Get Videolan!
Get Linux!
Get Mandriva!
Get Joomla!
Hacker Emblem

Archives

Which topics would you like us to cover more?

Latest comments

Latest tweets

about 1 day ago Using REDIPS.drag to add drag and drop to your .Net webapplication #li #dib0 http://t.co/n8zY3s7d
about 7 days ago http://t.co/cknQcDbo #Kindle
about 15 days ago Freedom isn't the ability to choose what to do or say, but the ability to choose what not to do or say #freedom
about 29 days ago http://t.co/61KTQknI #Kindle
12 Apr 2012 Force the use of a networking adapter using C# #li #dib0 http://t.co/ZTJOPzOz
9 Apr 2012 Mandriva 2010.2 and USB devices in Virtualbox http://t.co/fwq9gbHB
9 Apr 2012 Execute a http request to you own site with PHP http://t.co/DIvWPrpd
Home Architecture, security and coding Making a threatmodel, part 1: Business usecases
Making a threatmodel, part 1: Business usecases
Written by Division by Zero   
Wednesday, 02 February 2011 13:01

Last year I wrote some posts on threat modeling. Now it seems time to give an example on how to create a threat model. Because of the lack of good tooling to create threat models, the example is by hand.

As the basis for this example I'll take a fictional middle large company that has a web-shop and a customer service department. They use a customer relations database, a system that handles orders and a customer contact registration application. Threat models can be created in every level of detail that you want. Most of the time I keep them quite globally. The level of detail isn't relevant for the technique of creating a threat model.

The first step in creating a threat model is by identifying the (business) use cases that are relevant for the architecture of the application or applications you're modeling. A use case is relevant if the requesting functionality changes the architecture or demands more of it. For example a new user-role is added that needs access to the system or the the application needs to be accessible from everywhere instead of only on the company network.

In this example the following use cases are relevant:

  1. The potential customer browses the catalog
  2. The customer places an order
  3. The customer pays
  4. The customer requests the order status
  5. An employee of the customer service department handles order status to help a customer on the phone
  6. An employee gets then next order to process and send.

These use cases give us the different roles that will have access to the system. The next step is to create a DFD (Data Flow Diagram) of the architecture of the roles and components involved.

Last year I wrote some posts on threat modeling. Now it seems time to give an example on how to create a threat model. Because of the lack of good tooling to create threat models, the example is by hand.

As the basis for this example I'll take a fictional middle large company that has a web-shop and a customer service department. They use a customer relations database, a system that handles orders and a customer contact registration application. Threat models can be created in every level of detail that you want. Most of the time I keep them quite globally. The level of detail isn't relevant for the technique of creating a threat model.

The first step in creating a threat model is by identifying the (business) use cases that are relevant for the architecture of the application or applications you're modeling. A use case is relevant if the requesting functionality changes the architecture or demands more of it. For example a new user-role is added that needs access to the system or the the application needs to be accessible from everywhere instead of only on the company network.

 

Add comment


Security code
Refresh

Computers are useless. They can only give you answers. - Pablo Picasso


© 2009 - 2012, Division by Zero

Template based on the empire template by joomlashack 

Valid XHTML 1.0 Strict  Valid CSS!  Creative Commons License
This work by Division by Zero is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Netherlands License.