As a software engineer or client, how much of your budget should you spend on software security mitigation for the applications and networks on which you depend? The authors introduce a novel way to optimize a combination of security countermeasures under fixed resources. Software engineers and their customers continuously face a complex and frustrating decision: given a fixed budget, which combination of vulnerability mitigation actions produces optimal system security? In a world without budgetary or temporal constraints, engineers could invest in whatever tools or training they deemed necessary to safeguard applications and networks. Or they could spend arbitrary amounts of time and money patching existing code and take painstaking precaution in writing new software to ensure its security. Of course, the economic reality is that software engineers are pushed to get their product to market as fast as possible, and security is often a distant priority in the face of budgetary constraints. However, fixing any remaining security vulnerabilities postproduction can be both costly and wasteful. In this article, we describe a novel methodology for quantitatively optimizing the blend of architectural and policy recommendations that engineers can apply to their products to maximize security under a fixed budget. The results of our optimization are sometimes surprising and even counterintuitive: bigger budgets don't always produce greater security, and the optimal combination of corrective actions changes nonlinearly with increasing expenditures. These findings suggest that some form of formal decision support could augment traditional methods.
[1]
Edmund A. Mennis.
The Wisdom of Crowds: Why the Many Are Smarter than the Few and How Collective Wisdom Shapes Business, Economies, Societies, and Nations
,
2006
.
[2]
J. Whittle,et al.
A methodology for scenario-based requirements capture
,
2004,
ICSE 2004.
[3]
A. Tversky,et al.
Judgment under Uncertainty: Heuristics and Biases
,
1974,
Science.
[4]
Gary McGraw,et al.
Risk Analysis in Software Design
,
2004,
IEEE Secur. Priv..
[5]
Nancy R. Mead.
Identifying Security Requirements Using the Security Quality Requirements Engineering (SQUARE) Method
,
2007
.
[6]
Annie I. Antón,et al.
Misuse and Abuse Cases : Getting Past the Positive
,
2022
.
[7]
A. Tversky,et al.
Choices, Values, and Frames
,
2000
.
[8]
Leon S. Lasdon,et al.
Design and Use of the Microsoft Excel Solver
,
1998,
Interfaces.
[9]
G. Nemhauser,et al.
Integer Programming
,
2020
.