1.2 Common Security Evaluation Metrics and Attack Surface
Measurement of security has been a challenge and is of practical importance to
software industry. Today we commonly use two measurements to determine the
security of a system: (1) at the ‘code level’, we count the number of bugs found (or
fixed from one version to the next); (2) at the ‘system level’, we count the number of
times a system version is mentioned in CERT advisories, security bulletins and
vulnerability databases like MITRE CVE. Manadhata [8, 9] proposed Attack Surface
as a security metric that focuses at the ‘design level’ of a system: above the level of
code, but below the level of the entire system. Attack Surface is a metric to compare
the relative security of two versions of the same system rather than the absolute
security of a system. Given two versions, A and B, of a system, one could measure
the security of A relative to B with respect to the system’s attack surface. Intuitively,
higher the attack surface, more the chances of the system getting compromised e.g.,
eliminating certain system features potentially makes it more secure.
Attack Surface assesses (a) system ‘actions’ externally visible to the system’s
users; and (b) system ‘resources’ accessed or modified by each action. The more
actions available to a user or the more resources accessible through these actions, the
more exposed the attack surface. The more exposed the attack surface, the more likely
the system could be compromised.
The Formal Definition of Attack Surface is [8] “The set M of entry points and exit
points, the set C of channels and the set I of un-trusted data items are the system’s
resources that can be used by the attacker to compromise the system. Therefore, given
a system S and its environment, the system’s attack surface can be represented as the
triple <M, C, I>”.
Attacks carried out over the years, however, show that certain system resources
are more likely to be opportunities, i.e., targets or enablers, of attack than others. This
leads to the idea of ‘Weighted Attack Surface’. For example, services running as the
privileged user root in UNIX are more likely to be targets of attack than services
running as non-root users. Since every system resource contributes unequally to the
system’s attack surface, author of [8] proposes the use of ‘Damage Potential – Effort
ratio’. The amount of damage that can be done to the system by exploiting a
particular resource is the damage potential of that resource. Similarly, the amount of
work that the attacker would have to put in to use that resource as an attack tool
defines the effort.
2 Attack Surface Shifting / Reduction as a Technique for Moving
Target Defense
In [8] Manadhata formalized the notion of a software system’s attack surface and
proposed the use of system’s attack surface measurement as an indicator of the
system’s security. Intuitively, a system’s attack surface is the set of ways in which an
adversary can enter the system and potentially cause damage. Hence larger the attack
surface, the more insecure the system.
Awad A. Younis et al., [10] establish that there is a relationship between Attack
Surface Size and Vulnerability Density. The authors also performed a case study on
16