18.01.2015 Views

Architecture and Design Considerations - Build Security In - US-CERT

Architecture and Design Considerations - Build Security In - US-CERT

Architecture and Design Considerations - Build Security In - US-CERT

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

» Adding monetary values, to the leaf nodes,<br />

to represent the amount of money required<br />

for an attacker to accomplish the attack. With<br />

assigned monetary values, the designer can<br />

create countermeasures that make the cheaper<br />

attack routes expensive or prevent the attacker<br />

from taking a certain route altogether.<br />

Figure 3 – Attack Tree Example (Microsoft)<br />

Threat Modeling – A threat is a potential occurrence,<br />

malicious or otherwise, that might damage or compromise<br />

system resources. Threat modeling is a systematic<br />

process that is used to identify threats <strong>and</strong> vulnerabilities<br />

in software <strong>and</strong> has become popular technique to help<br />

system designers think about the security threats that their<br />

system might face. Therefore, threat modeling can be<br />

seen as risk assessment for software development. It<br />

enables the designer to develop mitigation strategies for<br />

potential vulnerabilities <strong>and</strong> helps them focus their limited<br />

resources <strong>and</strong> attention on the parts of the system most<br />

“at risk.” It is recommended that all software systems<br />

have a threat model developed <strong>and</strong> documented. Threat models should be created as early as possible in the SDLC <strong>and</strong> should<br />

be revisited as the system evolves <strong>and</strong> development progresses. The National <strong>In</strong>stitute of St<strong>and</strong>ards <strong>and</strong> Technology (NIST)<br />

800-30 st<strong>and</strong>ard for risk assessment can be used as a guideline in developing a threat model. This approach involves:<br />

» Decomposing the application – underst<strong>and</strong>, through a process of manual inspection, how the application works, its<br />

assets, functionality, <strong>and</strong> connectivity.<br />

» Defining <strong>and</strong> classifying the assets – classify the assets into tangible <strong>and</strong> intangible assets <strong>and</strong> rank them according<br />

to business importance.<br />

» Exploring potential vulnerabilities – whether technical, operational, or managerial.<br />

» Exploring potential threats – develop a realistic view of potential attack vectors from an attacker’s perspective, by<br />

using threat scenarios or attack trees.<br />

» Creating mitigation strategies – develop mitigating controls for each of the threats deemed to be realistic. The<br />

output from a threat model itself can vary but is typically a collection of lists <strong>and</strong> diagrams. The OWASP Code Review<br />

Guide at http://www.owasp.org/index.php/Application_Threat_Modeling outlines a methodology that can be used as a<br />

reference for the testing for potential security flaws.<br />

<strong>Architecture</strong> <strong>and</strong> <strong>Design</strong> <strong>Considerations</strong> for Secure Software 8

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!