MP Ist 115 16
MP Ist 115 16
MP Ist 115 16
ABSTRACT
Security has been an area of concern in information systems for more than four decades. However, interest has
enormously grown worldwide in the last decade with the proliferation of attacks and malware coming to public
attention, such as Titan Rain, the cyber attacks against Estonia, GhostNet, Operation Aurora, Stuxnet, Duqu,
Flame and Red October, to name only a few. After years of work on cyber security, the community has learned
that:
2) a plethora of activities, and not just a single silver-bullet activity, needs to be performed to bring the
security of a system to a substantial level.
Many of these activities must be done during system engineering, while the system is being developed, making
the system more secure right from the beginning. A good example of such activities is testing. Other activities,
like monitoring, must be done after the system has been deployed, during its operation and maintenance. Finally,
some activities can actually be done both during and after development. One of those is the security risk
assessment of the system’s architecture. It can be done in the design phase to develop an architecture that will
likely have fewer exploitable vulnerabilities, and it can also be done while maintaining the system to evaluate the
impact of changes on security risks.
This paper presents a methodology named Software Architecture Risk Analysis (SARA). This methodology is
based on established risk analysis processes so it is coherent with actual practices. It also structures the use of
the analyst’s knowledge in security, focuses on quick, scoped, repetitive and complementary assessments and
finally, emphasizes participation of system architects, designers and users. This paper covers each step of the
SARA methodology and presents one selected SARA application.
1.0 INTRODUCTION
The last fifteen years have been very intense in the computer security community. We have been fighting against
stack-based buffer overflows, format string vulnerabilities, TCP and ASN.1 vulnerabilities, SQL injections,
XSS, heap overflows, use-after-free vulnerabilities, memory information leaks and so on and so forth. We have
realized that these vulnerabilities have been present in our software as soon as we started using the technologies
that give rise to them, whether it is C programming, web applications or even modern operating systems. After a
few “We solved security!” announcements that turned out to be untrue, we realized that:
STO-MP-IST-115 16 - 1
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
During operation, making sure configuration stays correct, testing the deployed system, performing penetration
testing, educating and training users to operate the system in more secure ways, testing new threats against the
system to make sure it is not vulnerable to them, monitoring most of the system’s activities to detect anomalies
and always considering the system’s entire stack of technologies (hardware, drivers, operating systems, etc.) are
other examples of activities that improve security.
Finally, some activities can actually be done both during development or maintenance and during operation. One
of those activities is the security risk assessment of the system’s architecture. It can be done in the design phase
to develop an architecture that will likely have fewer exploitable vulnerabilities and it can also be done while
maintaining the system to evaluate the impacts of changes on security risks.
This paper presents a methodology named Software Architecture Risk Analysis (SARA). This methodology is
based on established risk analysis processes so it is coherent with actual practices. It also structures the use of the
analyst’s knowledge in security, focuses on quick, scoped, repetitive and complementary assessments and
finally, emphasizes participation of system architects, designers and users. Section 2.0 covers the SARA
methodology in detail. Section 3.0 presents one selected SARA application. The paper is then concluded.
• No complete methodology could be found to assess software system architectures. A few methodologies
were documented but complete documentation could not be found. It was thus cumbersome to use them
on real cases.
16 - 2 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
• Security must be considered during system engineering, not only as protection mechanisms added after
deployment. Avoiding some vulnerabilities right from the beginning is certainly good. But moreover,
encouraging simple and quick activities related to security during system development increases the
stakeholders’ future buy-in into security and the development teams’ motivation to build better systems.
Indeed, the feeling of building better systems usually brings motivation to go further and raise the bar.
• It can be used to assess the security of existing software system architectures. These assessments can be
used to compare available solutions or even more interestingly, to fix owned and controlled systems.
2.3 Uses
• Assessing the security risks of a software system architecture, one component at a time. Each
component usually takes one to three weeks to assess when done by security experts. The architecture is
thus assessed in short complementary iterations, each time on a different component, instead of as a
whole. If all short assessments are done by the same people, the architecture’s big picture becomes
clearer and clearer as assessments are completed and thus, components’ integration and their
interactions naturally become part of considerations in future assessments.
• Slowly increasing stakeholders’ buy-in in security-related activities inside projects. Stakeholders can
more easily approve the first security-related activities, like security risk analysis, if they demand less
resource. Moreover, since it is usually easier to get good results for simpler tasks, when stakeholders
realize what was found, they generally become motivated to go forward and approve more security-
related activities. Therefore, SARA facilitates the adoption of security considerations in projects.
SARA is not:
• A methodology to perform certification and accreditation (C&A). There are many such methodologies
available and they are usually endorsed by particular accreditation entities.
• A silver bullet. It does not find all security vulnerabilities in software system architectures. To maximize
security, you must combine risk analysis with better design, reviewed implementations (with peers and
tools), thorough testing, deployed protection mechanisms, monitoring, log reviews, etc.
• A methodology to magically transform anyone into a security expert. It helps novices structure their
learning but does not provide them the background knowledge they need.
2.4 Terminology
Before presenting the steps involved in SARA, it is appropriate to give two short definitions of risk and risk
management within the present context.
Risk is “a function of the likelihood of a given threat-source’s exercising a particular potential vulnerability, and
the resulting impact of that adverse event on the organization” [1]. In other words, risk is the measure of the
gravity of what happens if an attack is successful, weighted by the likelihood of the attack’s occurrence; it
measures how much should someone worry about something.
Risk management is “the process of identifying risk, assessing risk and taking steps to reduce risk to an
acceptable level” [1]. It is divided into three sub-processes:
STO-MP-IST-115 16 - 3
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
2.5 Methodology
SARA was derived from existing risk analysis processes, mainly from NIST 800-30 [1] and Cigital’s process
[2]. The objective was to start with existing methodologies, since it was possible, and thus not be too different
from the current best practice.
16 - 4 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
Steps 2, 3, 4 and 6 can be, and usually are, done in parallel. Each of the nine steps is detailed in the following
subsections. For each step, a table provides additional information on its inputs and outputs, as well as on how it
is performed.
STO-MP-IST-115 16 - 5
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
16 - 6 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
STO-MP-IST-115 16 - 7
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
Step 4: Control analysis • Determine if the implemented controls are effective against the identified
likely vulnerabilities.
Output • Controls that are lacking.
16 - 8 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
Outputs • An attack likelihood rating (high, medium, low) for each threat, which
identifies the likelihood of the threat successfully exercising a vulnerability.
Threat likelihood
STO-MP-IST-115 16 - 9
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
16 - 10 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
Output • Risk level (high, medium, low) for each potential attack.
Attack likelihood
STO-MP-IST-115 16 - 11
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
• Risks are prioritized by their level and by evaluating their mitigation cost-
benefit ratio.
Step 8: Mitigation
recommendations • New controls and component modifications are recommended to eliminate
or mitigate each risk. A mitigation plan can be recommended by proposing
mitigations in the order of their corresponding prioritized risk.
Output • Recommended controls and modifications in an ordered mitigation plan.
16 - 12 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
The current selected application is an assessment that was done on a software component consisting of a few
computers used to share information among systems of a Canadian Forces aircraft. Since it was the first
assessment of this kind being performed on this component, it was done at a fairly high level, thus considering
Operating System and application versions used, but no actual code, and Standard Operating Procedures used
with the component. For the same reason, the assessment took more than one to three weeks to perform (six
weeks in fact). Stakeholders and key players, such as the lead developers of the component, were actively
involved in the assessment.
This first assessment targeted “low hanging fruit”: security risks that are the most obvious to spot and mitigate.
However, it does not mean that these risks have little impact. Mitigating these security risks usually has a very
high benefit compared to the cost of the mitigation and constitutes the first line of defence that should be put in
place.
STO-MP-IST-115 16 - 13
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
entire systems’ lifetime. System engineers must understand why those risks are low and maintain the system
consequently to keep them low.
The following is a summary of some selected reasons why low risks were considered low during the assessment:
• Potential attacks necessitate very good understanding of the component architecture which makes them
unlikely, very targeted attacks;
• Data files use very simple file formats and thus their viewers are not usually vulnerable to attacks;
• Data files and their applications are not widespread so publicly known attacks against them are scarce or
inexistent. An attacker looking for such an attack would thus most likely be targeting the specific
component and this is unlikely.
3.2 Medium and High Importance Risks
Medium and high importance risks should be mitigated, especially when they are the security “low hanging
fruit” as they are in this assessment.
The following is a non-controlled goods summary of some selected medium importance risks found during the
assessment:
• The component uses image files and viewers for which there are known attacks but since the images
come from DND sources, the chances that they are infected is medium and not high.
• Many data files loaded in and produced by the component are stored unencrypted. If the component gets
compromised, these data files are vulnerable to theft or corruption. However, stealing or corrupting
those data files would constitute a very targeted attack which was assessed as a medium risk instead of
high.
• The component uses an FTP server with a few known vulnerabilities. Because that FTP server software
is not a widely spread one, this risk was considered medium instead of high.
And the following is a non-controlled goods summary of some selected high importance risks found during the
assessment:
• A single storage medium provides the data interface between many systems and the assessed
component. Any storage medium that is frequently connected to different systems has a high risk of
becoming infected if minimum care is not taken.
• Only one antivirus software is used to protect a system used to load data in the component. Antivirus
software is not particularly effective at detecting malware, so using only one results in a significant
chance of not detecting some malware.
• One type of user logs in as an administrator in a system used to load data in the component, even though
administrative privileges are not necessary.
• Many operating systems used by the component are out of date. This constitutes a high risk, of course,
because many known vulnerabilities exist in those older OSes.
3.3 Recommended Mitigation Plan
This is a non-controlled goods summary of the mitigation plan that was recommended at the end of the
assessment:
16 - 14 STO-MP-IST-115
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
• Setup a dedicated computer equipped with multiple antivirus software (commercial solutions exist) and
modify the procedures so that all storage devices and transferred data files are scanned with this
computer prior to being used.
• Reduce the use of removable media to the minimum because they can become infected themselves. Use
network transfers whenever possible and scan files with the computer in the bullet above.
• Make sure that all user accounts on the component and systems used to load data into the component
have the appropriate minimal required privileges with respect to the level of access they need.
• Keep Operating Systems and applications updated as much as possible.
• Determine the cost of modifying the component to work with encrypted data files, both as inputs and
outputs. Implement those modifications if the cost-benefit analysis is positive.
4.0 CONCLUSION
The SARA methodology is not very different from other risk analysis methodologies. This was a design
objective to stay as close as possible to existing practices. Despite the fact that SARA must be performed by
security experts, it does not impose specific knowledge on them, only structure. And novices can use that
structure while they learn.
An example use of SARA on a component architecture, and its Standard Operating Procedures and Operating
Systems, was given. Low importance risks were identified. Understanding why those risks are low in the current
component version is key to keeping them low in the future. Medium and high importance risks were also
identified and a mitigation plan was provided.
This first assessment encouraged buy-in in security-related activities among the component’s stakeholders.
Future assessments are currently being planned on other components.
5.0 ACKNOWLEDGEMENTS
The author wants to thank his partners in the Canadian Forces who have accepted to actively participate in
security assessments. SARA would also not have been possible without the hard work put into existing risk
analysis methodologies like OCTAVE, NIST 800-30, Cigital’s, OSSTMM, HTRA, etc., by countless other
researchers.
Finally, thank you to Daniel U. Thibault for his comments on this paper.
6.0 REFERENCES
[1] G. Stoneburner, A. Goguen and A. Feringa, Risk Management Guide for Information Technology
Systems: Recommendations of the National Institute of Standards and Technology, NIST Special
Publication 800-30, National Institute of Standards and Technology, Gaithersburg, MD, 2002;
http://csrc.nist.gov/publications/nistpubs/800-30/sp800-30.pdf.
[2] P. Hope, S. Lavenhar and G. Peterson, “Architectural Risk Analysis”, Cigital Inc., 2005;
https://buildsecurityin.us-cert.gov/bsi/articles/best-practices/architecture/10-BSI.html.
STO-MP-IST-115 16 - 15
Software Architecture Risk Analysis (SARA):A Methodology to Assess
Security Risks in Software Architectures, and an Application
[3] The Mitre Corporation, “CAPEC - Common Attack Pattern Enumeration and Classification (CAPEC)”;
http://capec.mitre.org/.
[4] C. Dougherty, K. Sayer, R. Seacord, D. Svoboda and K. Togashi, “Secure Design Patterns”, Software
Engineering Institute; http://www.cert.org/archive/pdf/09tr010.pdf.
[5] The SANS Institute, “SANS TOP 25 Most Dangerous Software Errors”; http://www.sans.org/top25-
software-errors/.
[8] Open Source Vulnerability Database, “OSVDB: The Open Source Vulnerability Database”;
http://osvdb.org/.
[9] The Mitre Corporation, “CVE - Common Vulnerabilities and Exposures”; http://cve.mitre.org/.
[10] Center for Strategic & International Studies, “20 Critical Security Controls”; http://www.sans.org/critical-
security-controls/.
16 - 16 STO-MP-IST-115