{{ summaryTitle }}{{ summaryValue }}{{ summaryLine }} {{ badge.label }} {{ badge.value }}
Port exposure inventory and review policy
Analyze one firewall, scanner, or cloud-rule inventory locally. This tool does not scan hosts.
{{ fileStatus || 'Drop CSV or TXT onto the textarea. Files stay in this browser session.' }}
Choose how incomplete public-listener evidence should be prioritized.
Match the public, external, DMZ, or any-source vocabulary used by the source inventory.
Built-in remote-access and data-service rules still apply; this list adds organization-specific policy.
{{ workflowFeedback }}
All evidence is the neutral default; narrower views support focused handoff.
HostListenerExposureRiskOwnerReasonNext actionCopy
{{ row.host }}{{ row.listener }}{{ row.exposure }}{{ row.severity }}{{ row.owner }}{{ row.reason }}{{ row.action }}
{{ tableAnnouncement }}
PriorityHost and portOwnerWhy flaggedNext actionCopy
{{ row.severity }}{{ row.listener }}{{ row.owner }}{{ row.reason }}{{ row.action }}
{{ tableAnnouncement }}
HostOwnerPublic openCriticalHighMediumTop listenersCopy
{{ row.host }}{{ row.owner }}{{ row.publicOpen }}{{ row.critical }}{{ row.high }}{{ row.medium }}{{ row.listeners }}
{{ tableAnnouncement }}
{{ chartAnnouncement }}

A port inventory becomes useful when each listener can be tied to an approved purpose, reachable scope, and accountable owner. A bare list of port numbers cannot show whether an exposure is intended, protected, or even reachable from the internet.

Questions that change a port exposure decision
Question Why it changes the review
Is the listener public? An open service on a private segment is not the same finding as direct internet reachability.
What service is expected? A public web listener may be intentional, while direct database or remote-console access often needs stronger controls.
Who owns the exception? Missing ownership and business justification make an exposure difficult to approve, monitor, or remove.
Where did the evidence come from? A rule inventory shows intended policy; an external scan shows observed reachability. Either can be stale or incomplete.

Public exposure is the intersection of two facts: a service appears open in the supplied evidence, and its row is marked as internet-facing under the organization’s vocabulary. Firewall exports, cloud security rules, scanner results, and service registers express those facts differently, so normalization is necessary before prioritization.

Port numbers are clues, not proof of the running application. A service can move to a nonstandard port, share a listener, sit behind network address translation, or be blocked farther upstream. Risk therefore comes from the service, controls, exposure path, and business need together.

Prioritization should guide review rather than replace it. Unexpected management and data-service listeners deserve prompt attention, but an approved public service still needs authentication, patching, logging, source restrictions where appropriate, and evidence that direct origin access is not broader than intended.

How to Use This Tool:

Start from one firewall, scanner, or cloud-rule inventory and align the policy fields with the wording used in that source.

  1. Paste CSV-style exposure rows or load a text file. A header may use common aliases for host, zone, protocol, port, state, owner, and justification; headerless rows use that positional order.
  2. Choose Conservative review when incomplete public-listener evidence should begin at Medium. Choose Standard review when an otherwise unmatched public listener may begin at Low.
  3. Edit Internet-facing markers so they match the source vocabulary, such as public, dmz, or 0.0.0.0/0. Remove broad words that could match unrelated host, owner, or note text.
  4. Add organization-specific high-risk ports or ranges. These supplement the built-in remote-access, management, and data-service rules.
  5. Correct malformed ports, then work through public entries at Medium or higher. Confirm each listener with the authoritative firewall rule, cloud policy, or an approved external scan before remediation.

Interpreting Results:

The review queue contains public-open entries rated Medium, High, or Critical. A higher entry score means a stronger match to the local triage rules, not a measured probability of compromise.

  • Critical includes all-port rules and selected direct-exposure services such as Telnet, SMB/NetBIOS, RDP, and an unencrypted Docker API.
  • High includes selected remote administration, file transfer, telemetry, console, and data-service listeners, plus local policy matches.
  • Medium and Low still require service identity, ownership, ingress scope, and approval checks.
  • None means the row was not classified as public open; it does not prove the service is unreachable.

Technical Details:

The analysis is a repository-authored triage model, not an official vulnerability score. It parses each source row, expands supported port fields, identifies open and public evidence, applies the most severe matching rule, and then rolls public entries up by host.

Transformation Core

CSV rows may include a recognized header or use the positional order host, zone, protocol, port, state, owner, and justification. Port values can be numeric, named services, ranges, or multiple semicolon/pipe-separated tokens. A blank port becomes an all-port range from 0 through 65,535.

Port exposure normalization rules
Input evidence Normalization
Blank, any, all, or * port All ports, 0 through 65,535
Named service such as ssh or postgresql Mapped to the built-in service port
Numeric range such as 6000-6010 Ordered inclusive range, even when endpoints were reversed
Blank state Treated as open
Closed, denied, dropped, blocked, rejected, filtered, or disabled state Treated as not open

A row is public when any configured marker appears as a case-insensitive substring of the combined host, zone, owner, and justification text. This flexible match supports varied exports, but it can also create false positives when a short marker appears inside unrelated text.

Rule Core

A public-open entry starts at Medium under conservative review and Low under standard review. The highest matching built-in, local, or management-interface rule then wins.

Built-in public port severity rules
Severity Built-in ports and conditions
Critical All ports; 23; 139; 445; 3389; 2375
High 21; 22; 69; 161; 5900; 5985–5986; 6000; 1433; 1521; 3306; 5432; 6379; 9200; 9300; 11211; 27017
Medium 135; 137–138; 389
Low 80; 443; 8080; 8443 under standard review when no stronger rule applies

Any overlap with the local high-risk list raises an entry to at least High. Web ports 80, 443, 8080, and 8443 also rise to High when the row text contains a management indicator such as admin, console, router, firewall, iLO, iDRAC, or BMC.

Formula Core

Entry scores convert severity into a sortable number and add a conservative missing-context penalty. The entry score is capped at 100.

S = min ( 100 , B(v) + 10I(cmvCritical) )

B(v) is 0 for None, 15 for Low, 40 for Medium, 70 for High, and 100 for Critical. c means conservative review, m means either owner or justification is missing on a public-open row, and I contributes 1 when all conditions are true. Host scores are the uncapped sum of their public entry scores, so they rank cleanup workload rather than represent a percentage.

Rows sort by severity, then entry score, host, and listener. Host rollups sort by summed score. Input is limited to 200,000 characters; comments beginning with # and blank lines are ignored.

Limitations and Privacy Notes:

Inventory text and uploaded files are processed in the browser. No host is scanned and no reachability test is performed.

  • Marker matches and port-to-service assumptions can be wrong; verify the original rule and the process actually listening.
  • A closed or internal label may be stale, and upstream NAT or firewall policy may change the true exposure.
  • Only scan systems you own or have explicit permission to test. Keep the external vantage point, target, time, and scope with the evidence.

Worked Examples:

Approved public HTTPS service

A row for web01 is open on TCP 443, marked public, and includes both owner and justification. Standard review assigns Low with score 15. Conservative review starts the same evidence at Medium with score 40, so policy choice changes prioritization even though the source row does not.

Public SSH without ownership

An open public TCP 22 row matches the built-in SSH rule and has no owner. Conservative review keeps the High severity and adds the missing-context penalty, producing score 80. The first action is to establish ownership and business need before deciding whether to restrict or remove access.

References: