An attack surface is the total set of points where an attacker can try to enter, extract data from, or cause damage to your systems. It includes every internet-facing application, API endpoint, cloud resource, user account, open port, third-party integration, and piece of infrastructure that is exposed to potential threats. The larger your attack surface, the more opportunities an attacker has to find a way in.
NIST defines an attack surface as "the set of points on the boundary of a system, a system element, or an environment where an attacker can try to enter, cause an effect on, or extract data from." In practical terms, it's everything about your technology stack that's exposed to the outside world, or that could be reached by someone who gets inside.
Your attack surface includes:
There are three categories to think about:
You can't eliminate your attack surface, but you can manage it:
Fencer continuously discovers and maps your attack surface across code repositories, cloud environments, and external-facing assets. Rather than maintaining static spreadsheets or running one-off scans, Fencer provides a live view of your infrastructure, domains, and integrations. When your attack surface changes (a new subdomain, a misconfigured cloud resource, an exposed service), Fencer detects it and surfaces it alongside the rest of your security findings.
An attack surface is the total set of potential entry points into your systems. An attack vector is the specific method an attacker uses to exploit one of those entry points. Think of the attack surface as every door and window on a building, and an attack vector as the technique used to get through one of them (picking a lock, breaking a window, social engineering someone into opening the door). Reducing your attack surface means having fewer doors and windows. Defending against attack vectors means securing the ones that remain.
Start with your cloud provider's built-in inventory tools (AWS Config, GCP Asset Inventory, Azure Resource Graph) to see what's actually running in your accounts. Scan your DNS records and certificate transparency logs to find subdomains you may have forgotten. Review your OAuth connections and API integrations to identify third-party services with access to your systems. For a comprehensive view, external attack surface management (EASM) tools scan from the outside in, discovering what an attacker would find if they were looking at your organization.
Continuously, if possible. Point-in-time assessments (quarterly scans, annual pen tests) miss changes that happen between reviews, and for a startup deploying daily, that's a lot of changes. The ideal approach is automated, continuous discovery that runs alongside your existing development and deployment processes. At minimum, review your attack surface whenever you add new infrastructure, integrate new services, or make significant architectural changes.