Playbook

What Are We Actually Exposing?

Nobody deliberately exposes a management interface. Exposure is what accumulates after two years of changes nobody documented — a firewall rule added during an incident, a container that published a port to the host, a package that enabled a service by default. The task is not to be careful; it is to look regularly, because carefulness does not survive contact with a production estate.

Start from what resolves, not from what is documented

Any inventory maintained by hand is wrong, and it is wrong in the direction that matters — it omits things. Build the list from DNS: every name in your zones, every subdomain that resolves, then probe which of them are actually serving. The output routinely includes hosts nobody present can account for, which is exactly the point.

Certificate Transparency logs are a second, independent source. Every publicly trusted certificate ever issued for your domain is recorded there, which means the logs know about hostnames your documentation does not. Attackers enumerate subdomains this way as a matter of course; reading the same data is simply seeing what they see.

Then ports, and pay attention to the diff

Scan the hosts you found. The full list of open ports on a mature estate is long enough that nobody reads it, which is why the first scan is less useful than the second: what matters is what is open now that was not open last time. That question has a short, actionable answer, and it is the one worth alerting on.

Version information is worth as much as the port list. A service several versions behind the rest of your fleet is a strong signal that the host is not in your patching rotation at all, which is a bigger finding than the specific version.

Then the paths that should never be public

Port scanning finds listening services; it does not find an environment file served over an otherwise legitimate web server. Probe explicitly for the known-dangerous locations: environment and configuration files, version control directories, database dumps, admin panels, debug endpoints and status pages.

These deserve their own priority tier. An exposed environment file typically contains database credentials and API keys in plain text, and an exposed version control directory can allow the source tree to be reconstructed including secrets that were committed and later removed. Neither is a vulnerability to be scheduled for the next sprint — it is an incident that has already started, and the credentials should be treated as compromised.

Then the headers, because their absence is silent

Security headers instruct the browser to enforce things on your behalf, and nothing breaks when they disappear. No error, no failed request, no complaint. They are set across several layers — framework, web server, proxy, CDN — and a header correctly set by the application can be stripped in front of it, so the only meaningful test is what actually arrives at a client.

Then the known-issue sweep

Run a signature-driven scan and a current template library against what you found. This catches the things that were fine when deployed and became vulnerable because an advisory was published — nothing on your side changed, and you are now exposed. That category is invisible to any process that only reviews things when they change.

Why the schedule is the whole control

Every finding above has the same shape: it appeared without an event, and it will not announce itself. A quarterly audit finds problems that have existed for up to three months, and the paths that matter most — exposed credentials — are probed by automated scanners constantly, so the window between exposure and discovery by someone else is measured in hours. Scanning after every deployment, or frequently enough to approximate that, is the difference between finding it yourself and being told.

A closing constraint: only run any of this against infrastructure you are responsible for. Scanning systems you do not own is a materially different activity with materially different consequences.

Tools used in this playbook