Attack surface analysis is an assessment of the total number of exploitable vulnerabilities in a system or network or other potential computer attack target.
IT security workers and hackers both use attack surface analysis to detect security weaknesses in a system. An individual trying to break into a system generally starts by scanning the target’s attack surface for vulnerabilities before choosing an attack vector. This is generally true for active attacks, passive attacks, ethical hacking and hacking competitions.
An organization’s attack surface can be subdivided into a few categories:
- The network attack surface: the totality of all vulnerabilities in connected hardware and software that are accessible to an unauthenticated user.
- The software attack surface: the complete profile of all functions in any code running in a given system that are available to an unauthenticated user.
- The physical attack surface: all security vulnerabilities in a given hardware system that are accessible to an attacker in the same location as the target.
These different types of attack surfaces pose very different types of threats. Usually, the analysis of a target’s vulnerabilities focuses on exposed functions of incoming and outgoing code (the software attack surface). With the majority of attacks coming from the web, network attack surface is a very important consideration because it is the most common path to the software attack surface.
The physical attack surface branches out with more and different possibilities in close access to the target. The physical element includes insider threats, social networking and even break and entry and vandalization as considerations.
OWASP offers an attack surface analysis cheat sheet for organizations; software tools include Microsoft Attack Surface Analyzer. However, as attackers can be very creative, it is often necessary for security analysts to think like a hacker to perceive potential threats.