<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Web Admin Blog &#187; modeling</title>
	<atom:link href="http://www.webadminblog.com/index.php/tag/modeling/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webadminblog.com</link>
	<description>Real Web Admins.  Real World Experience.</description>
	<lastBuildDate>Wed, 25 May 2011 03:02:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Threat Modeling</title>
		<link>http://www.webadminblog.com/index.php/2009/11/12/threat-modeling/</link>
		<comments>http://www.webadminblog.com/index.php/2009/11/12/threat-modeling/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 22:55:55 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec DC 2009]]></category>
		<category><![CDATA[Web Application Security]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[threat]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=322</guid>
		<description><![CDATA[This presentation was by John Steven, the NoVA Chapter Lead and Senior Director of Advanced Technology Consulting at Cigital, Inc.   He notes that this is not that MS thing, it is not going to help you find XSS, and is not going to help you with Risk Management.  My notes are below: Don't use threat [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by John Steven, the NoVA Chapter Lead and Senior Director of Advanced Technology Consulting at Cigital, Inc.   He notes that this is not that MS thing, it is not going to help you find XSS, and is not going to help you with Risk Management.  My notes are below:</p>
<p>Don't use threat modeling to help you with the things you already have checklists for.</p>
<p>Do this because you want to understand the intersection of your stakeholder's goals and the architecture.</p>
<p><span style="text-decoration: underline;"><strong>What is a Threat?</strong></span></p>
<ul>
<li>An agent who attacks you?</li>
<li>An attack?</li>
<li>An attack's consequence?</li>
<li>A risk?</li>
</ul>
<p>What is a Threat Model</p>
<ul>
<li>Depiction of
<ul>
<li>The system's attack surface</li>
<li>Threats who can attack the system</li>
<li>Assets threats may compromise</li>
</ul>
</li>
<li>Some leverage risk management practices
<ul>
<li>Estimate probability of attack</li>
<li>Weight impact of successful attack</li>
</ul>
</li>
</ul>
<p>Threat</p>
<ul>
<li>Capability
<ul>
<li>Access ot the system</li>
<li>Able to reverse engineer binaries</li>
<li>Able to sniff the network</li>
</ul>
</li>
<li>Skill Level
<ul>
<li>Experienced hacker</li>
<li>Script kiddie</li>
<li>Insiders</li>
</ul>
</li>
<li>Resources and Tools
<ul>
<li>Simple manual execution</li>
<li>Distributed bot army</li>
<li>Well-funded organization</li>
<li>Access to private information</li>
</ul>
</li>
<li>Threats help
<ul>
<li>Encourage thorough throught about how intentions for misuse</li>
<li>Determine "out of bounds" scenarios</li>
</ul>
</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Threat Modeling as a Process</strong></span></p>
<ul>
<li>Know thy enemy and how they attack you (who, what, how, why, impact, mitigation)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Threat Modeling - High-level Process</strong></span></p>
<ol>
<li>Diagram Structure</li>
<li>Identify Assets</li>
<li>Identify Threats</li>
<li>Stitch Threats onto Structure</li>
<li>Enumerate Doomsday Scenarios</li>
<li>Document Misuse/Abuse</li>
<li>Enumerate Attack Vectors</li>
<li>Iterate</li>
</ol>
<p><span style="text-decoration: underline;"><strong>1. Diagram the Software</strong></span></p>
<ul>
<li>Different methods of diagraming (likes the whiteboard the best)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>1.1  - Anchor in Software Architecture</strong></span></p>
<p>Consider where attacks occur</p>
<p>Top-down</p>
<ul>
<li>Enumerate business objects
<ul>
<li>Sensitive data</li>
<li>Privileged functionality</li>
</ul>
</li>
</ul>
<p>Bottom-up</p>
<ul>
<li>Enumerate application entities
<ul>
<li>Sensitive data</li>
<li>Privileged functionality</li>
</ul>
</li>
</ul>
<p>Look for</p>
<ul>
<li>Middleware</li>
<li>Open source</li>
<li>Frameworks</li>
</ul>
<p><span style="text-decoration: underline;"><strong>1.2 - Identify Application Attack Surface</strong></span></p>
<ul>
<li>Are there different privilege levels?</li>
<li>Connectivity between services and processes</li>
</ul>
<p><span style="text-decoration: underline;"><strong>1.3 - Annotate with Design Patterns</strong></span></p>
<ul>
<li>Are there pieces that whitebox testings is unable to analyze?</li>
<li>What types of frameworks is the application using?</li>
<li>Where are there command patterns?</li>
<li>Where is there an inversion of control?</li>
</ul>
<p><span style="text-decoration: underline;"><strong>1.4 - Consider Patterns' Responsibilities</strong></span></p>
<ul>
<li>Document specific standards for implementing each responsibility</li>
<li>List out each pattern, piece of app, and associated standards</li>
</ul>
<p><strong>1.5 - Enumerate Potential Failures in Design Elements</strong></p>
<p><span style="text-decoration: underline;"><strong>1.6 - Find Key Structural Componenets</strong></span></p>
<p>Component diagrams show critical choke points for security controls</p>
<p><span style="text-decoration: underline;"><strong>1.7 - Identify Frameworks</strong></span></p>
<p>Showing frameworks indicates where important service contracts exist 'up' and 'down'</p>
<p><strong>1.8 - Explicitly Identify Controls</strong></p>
<p><span style="text-decoration: underline;"><strong>2 - Identify Assets</strong></span></p>
<p><span style="text-decoration: underline;"><strong>2.1 - Identify Critical Data Assets</strong></span></p>
<ul>
<li>Do I have PII?</li>
<li>Things that proxy for PII like sessions?</li>
</ul>
<p><strong>2.2 - Identify Interfaces as Proxies for Data</strong></p>
<p><span style="text-decoration: underline;"><strong>2.3 - Identify Assets flow through the System</strong></span></p>
<ul>
<li>Assets exist not only in rest, but also flow through the system</li>
<li>Think about where there are points you could stop the data from going</li>
</ul>
<p><strong>2.4 - Identify Critical Application Entities</strong></p>
<p><span style="text-decoration: underline;"><strong>2.5 - Identify 'Intermediate' Asset Objectives</strong></span></p>
<p>Identify:</p>
<ul>
<li>Sensitive data</li>
<li>Privileged function</li>
</ul>
<p>Look out for:</p>
<ul>
<li>Proxies, facades, etc</li>
<li>Services</li>
<li>UI vs implementation</li>
<li>Aggressive caching scheme</li>
</ul>
<p><span style="text-decoration: underline;"><strong>2.6 - Identify Equivalence-classes</strong></span></p>
<ul>
<li>In essence an escalation of privilege connector</li>
<li>Ex: Putting username and password and password reset questions on the same page puts them on the same equivalence-class without reauthentication and defeats the security control</li>
</ul>
<p><span style="text-decoration: underline;"><strong>3 - Identify Threat Agents</strong></span></p>
<p><span style="text-decoration: underline;"><strong>3.1 - Anchor Threats in Use Cases</strong></span></p>
<ul>
<li>What is the dumbest things that a user can do?</li>
<li>What is the most malicious thing a user can do?</li>
</ul>
<p><span style="text-decoration: underline;"><strong>4.1 - Identity Principal Resolution</strong></span></p>
<ul>
<li>Arrows indicate resolution of principal/assertion propagation</li>
</ul>
<p><strong>4.2 - Place Threats on Diagram</strong></p>
<p><span style="text-decoration: underline;"><strong>4.3 - Show Authorization in Structure</strong></span></p>
<ul>
<li>Coloration shows authorization by role</li>
<li>Color modules by who you would need to be to access them and look where the colors change</li>
<li>Has never NOT found a vulnerability for John</li>
</ul>
<p><span style="text-decoration: underline;"><strong>5 - Enumerate Doomsday Impacts</strong></span></p>
<p><span style="text-decoration: underline;"><strong>5.1 - Assign Threats Malicious Intent</strong></span></p>
<ul>
<li>What is each Threat's motivation?</li>
<li>What would drive escalation?</li>
<li>Why would each try beyond the first hurdle?</li>
</ul>
<p><strong>5.2 - Instanstiate Doomsday Attack</strong></p>
<p><span style="text-decoration: underline;"><strong>6.1 - Add in Misuse Cases</strong></span></p>
<p>Convert Actors to Threats</p>
<ul>
<li>Abuse - Make actors behave stupidly</li>
<li>Misuse - Make actors deviant/evil</li>
</ul>
<p><strong>6.2 - 'Cache' Misuse in a 'Cookbook'</strong></p>
<p><span style="text-decoration: underline;"><strong>7 - Enumerate Attack Vectors</strong></span></p>
<p><strong>7.1 - Pilfer technology-specific security standards</strong></p>
<p><strong>7.2 - Pilfer community resources</strong></p>
<p><strong>7.3 - Pass technology-specific resources as your own</strong></p>
<ul>
<li>When testing finds an attack:
<ul>
<li>First, decide if its impact warrants further exploration</li>
<li>Are additional impacts possible?</li>
<li>Consider what conceptual goals the attack supports</li>
<li>Then consider who could launch the attack against the application</li>
</ul>
</li>
</ul>
<ul>
<li>After analysis converges, iterate secure design</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2009/11/12/threat-modeling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Practical Advanced Threat Modeling &#8211; OWASP AppSec NYC 2008</title>
		<link>http://www.webadminblog.com/index.php/2008/09/25/practical-advanced-threat-modeling-owasp-appsec-nyc-2008/</link>
		<comments>http://www.webadminblog.com/index.php/2008/09/25/practical-advanced-threat-modeling-owasp-appsec-nyc-2008/#comments</comments>
		<pubDate>Thu, 25 Sep 2008 18:53:45 +0000</pubDate>
		<dc:creator>Josh</dc:creator>
				<category><![CDATA[OWASP AppSec NYC 2008]]></category>
		<category><![CDATA[Web Application Security]]></category>
		<category><![CDATA[advanced]]></category>
		<category><![CDATA[application]]></category>
		<category><![CDATA[appsec]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[owasp]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[threat]]></category>

		<guid isPermaLink="false">http://www.webadminblog.com/?p=122</guid>
		<description><![CDATA[This presentation was by John Steven who is the Senior Director of Advanced Technology Consulting at Cigital, Inc. What is a threat? An agent who attacks you? An attack? An attack's consequence? A risk? What is a threat model? Depiction of the system's attack surface, threats who can attack the system, and assets threats may [...]]]></description>
			<content:encoded><![CDATA[<p>This presentation was by John Steven who is the Senior Director of Advanced Technology Consulting at Cigital, Inc.</p>
<p><span style="text-decoration: underline;"><strong>What is a threat?</strong></span></p>
<ul>
<li>An agent who attacks you?</li>
<li>An attack?</li>
<li>An attack's consequence?</li>
<li>A risk?</li>
</ul>
<p><span style="text-decoration: underline;"><strong>What is a threat model?</strong></span></p>
<ul>
<li>Depiction of the system's attack surface, threats who can attack the system, and assets threats may compromise.</li>
<li>Some leverage risk management practices.  Estimate probability of attack.  Weigh impact of successful attack.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Elements of a threat model</strong></span></p>
<ul>
<li>Structural view</li>
<li>Threat actors</li>
<li>Assets</li>
<li>Attack vectors</li>
<li>Privilege/"trust"</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Threat</strong></span></p>
<ul>
<li>Capability: Access to the system, able to reverse engineer binaries, able to sniff the network</li>
<li>Skill Level: Experienced hacker, script kiddie, insiders</li>
<li>Resources and Tools: Simple manual execution, distributed bot army, well-funded organization, access to private information</li>
<li>Threats help encourage thorough throught about how intentions for misuse and determine "out of bounds" scenarios.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>A Few Words on STRIDE</strong></span></p>
<ul>
<li>A conceptual checklist backed by data flow diagrams</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Attack Trees</strong></span></p>
<ul>
<li>Aggregate attack possibilites</li>
<li>Use OR, AND</li>
<li>Allow for decoration (probability, cost, skills required, etc)</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Threat Modeling as a Process</strong></span></p>
<ul>
<li>Use threat modeling to identify where potential threats exist relative to the architecture, how threats escalate privilege, specify vectors of attack, identifies components and assets worth protecting.</li>
</ul>
<p><span style="text-decoration: underline;"><strong>Leading Up to Threat Modeling</strong></span></p>
<ul>
<li>Identify threats</li>
<li>Enumerate doomsday scenarios</li>
<li>Document misuse/abuse</li>
<li>Diagram structure, assets</li>
<li>Annotate diagram with threats</li>
<li>Enumerate attack vectors</li>
<li>Iterate</li>
</ul>
<p>Input: Goals, Doomsday Scenarios</p>
<p>Misuse/Abuse Cases (use case view and component view)</p>
<p>Inputs: Security Requirements (specified security features - "128 bit encryption", "software security != security software")</p>
<p><span style="text-decoration: underline;"><strong>Anchor in Software Architecture</strong></span></p>
<p>Consider where attacks occur:</p>
<ul>
<li>Top-down: enumerate business objects (sensitive data, privileged functionality)</li>
<li>Bottom-Up: enumerate application</li>
</ul>
<p>Output: Security Assessment &amp; Test Design.  Threat models drive assessments, Test design.  Establish rules of engagement.  Prioritize areas of interest.  Manage a team in risk-based fashion.  Establish a single tie between vulnerability and control.</p>
<p>Application Structure: No "One Size Fits All"</p>
<p>Application Structure: Topology - Coloration shows authorization by role.  Arrows indicate resolution of principal/assertion propagation.  Use structure to separate privilege.</p>
<p>Application Structure: Components - Component diagrams show critical choke points for security controls (input validation, authentication, output encoding).</p>
<p>Application Structure: Frameworks - Showing frameworks indicates where important service contracts exist "up" and "down".</p>
<p>Assets: Flow - Assets exist not only in rest, but also flow through the system.  Use different types of flags to represent data flow of assets.</p>
<p>Use different colored arrows to represent each different attack vector.</p>
<p>Target Using Layered Attacks: Bootstrap later attacks with those that "deliver".  Use one layer to exploit another (net, app).  Combine attacks to reach desired target.</p>
<p><span style="text-decoration: underline;"><strong>Take Homes</strong></span></p>
<ul>
<li>Base threat model in software architecture</li>
<li>When specific use (cases) and high-level architecture are defined: inventory roles, entitlements, if one doesn't exist and inventory assets, sensitive data, privileged components</li>
<li>Enumerate initial attack vectors.  Use common low hanging fruit.</li>
<li>Elaborate more attacks.  Find opportunities for privilege escalation.  Layer attacks to target or "hop" to assets.  Fill in gaps by "inventing" attacks.</li>
<li>Use threat modeling to drive security testing</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.webadminblog.com/index.php/2008/09/25/practical-advanced-threat-modeling-owasp-appsec-nyc-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

