I Tried Detecting Ports Actually Reachable from the Internet with AWS Security Hub's New "Network Scanning" Feature

I Tried Detecting Ports Actually Reachable from the Internet with AWS Security Hub's New "Network Scanning" Feature

AWS Security Hub adds Network Scanning. Unlike static analysis of security group settings, it sends actual probes to check port reachability. We tested the setup steps, OCSF Finding structure, and scan target granularity.
2026.07.10

This page has been translated by machine translation. View original

Introduction

On July 9, 2026, the Network Scanning (network reachability scanning) feature was added to AWS Security Hub.

https://aws.amazon.com/about-aws/whats-new/2026/07/aws-security-hub-network-scanning/

Until now, Security Hub performed control plane analysis, which analyzes settings such as security groups to determine whether a resource is "configured to be exposed to the internet." The newly added Network Scanning actually sends probes from the internet side and checks the responses from ports. For ports that respond with TLS, the handshake and certificate information are also obtained.

Aspect Conventional (control plane analysis) New feature (Network Scanning)
Determination method Statically analyzes rules such as security groups Sends actual probes and checks responses (also performs a handshake for TLS responses)
Detection target Ports configured to be open to the internet Ports actually reachable from the internet
Evidence Configuration values (SG rules, etc.) Port responses, TLS certificate information, service detection
False positives Can be detected if open by configuration, even if actually blocked by an OS-level firewall or a filter along the route Detected when a response to the probe is confirmed at the time of the scan
Finding format ASFF (get-findings) OCSF (get-findings-v2)

In this article, we will check the steps to enable Network Scanning, the structure of the Finding (OCSF format), and the granularity of scan targets. The verification target is an EC2 instance exposing port 443 on a public IP.

Verification

Verification environment

  • Region: ap-northeast-1
  • EC2: t3.nano (Amazon Linux 2023)
  • Elastic IP: xxx.xxx.xxx.xxx attached
  • Security group: TCP 443 allowed from 0.0.0.0/0
  • Nginx 1.30.2 + TLS 1.3 (ECDSA certificate issued via the ACME-compatible endpoint of AWS Certificate Manager)
  • Security Hub: Essentials plan

For the certificate issuance steps, refer to the following article.

https://dev.classmethod.jp/articles/acm-acme-endpoint-certbot-ec2-nginx-apache/

Enabling Network Scanning

Enable network reachability scanning from "Settings" > "General" in the Security Hub console.

Network Scanning section on the Settings screen

Enablement confirmation dialog

Status after enabling

After enabling, a Finding was generated within a few minutes in this verification.

Checking the Finding

On the "All findings" screen, filtering the type by "Network Scanning/Network Reachability" lets you see the Findings originating from Network Scanning.

Network Scan Finding list

A Finding for internet reachability of port 443 was generated for the EIP used in the verification.

Finding details — EIP

The Finding includes the following information.

  • Port scan result: 443/tcp is Open
  • Service inference result: smb (described later)
  • TLS evidence: TLSv1.3, issuer CN=Amazon ECDSA 256 S07,O=Amazon,C=US, certificate expiration date
  • Resource: AWS::EC2::EIP eipalloc-0xxxxxxxxxxxxxxxxxxxxx

Checking with the CLI

Network Scanning Findings cannot be retrieved with the conventional get-findings API (ASFF format). You need to use the new get-findings-v2 API (OCSF format).

aws securityhub get-findings-v2 --region ap-northeast-1 --max-results 5
Output of get-findings-v2 (excerpt)
{
    "class_name": "Network Scan Finding",
    "class_uid": 99802002,
    "finding_info": {
        "created_time_dt": "2026-07-09T16:08:14.293Z",
        "desc": "Security Hub Network Scanning detected an open port reachable from the internet: xxx.xxx.xxx.xxx:443/tcp (smb) on AWS::EC2::EIP eipalloc-0xxxxxxxxxxxxxxxxxxxxx.",
        "title": "xxx.xxx.xxx.xxx:443 is reachable from the internet (securityhub-network-scan-test)",
        "types": [
            "Network Scanning/Network Reachability"
        ],
        "uid": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    },
    "port_scan_result_list": [
        {
            "port_info": {
                "port": 443,
                "protocol_name": "tcp",
                "protocol_num": 6
            },
            "status": "Open",
            "svc_name": "smb",
            "tls": {
                "certificate": {
                    "expiration_time_dt": "2026-08-21T05:39:09.000Z",
                    "is_self_signed": false,
                    "issuer": "CN=Amazon ECDSA 256 S07,O=Amazon,C=US",
                    "serial_number": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
                },
                "handshake_dur": 8,
                "version": "TLSv1.3"
            }
        }
    ],
    "resources": [
        {
            "ip": "xxx.xxx.xxx.xxx",
            "name": "securityhub-network-scan-test",
            "type": "AWS::EC2::EIP",
            "uid": "eipalloc-0xxxxxxxxxxxxxxxxxxxxx"
        }
    ],
    "severity": "Medium",
    "severity_id": 3
}

In the OCSF-format Finding, the port scan results are structured in port_scan_result_list. A distinctive feature is that it even includes the TLS handshake duration (handshake_dur, in milliseconds) and certificate information.

Finding JSON view (console)

Scan targets and detection unit

In this verification, the Finding's resource was generated per public IP address, not per EC2 instance. In addition to the target EIP, we also confirmed Findings for public endpoints related to an ELB in the same account.

Finding — ELB detection

Notes

  • Finding format: Network Scanning Findings can be retrieved only with get-findings-v2 (OCSF format). They are not displayed with the conventional get-findings (ASFF format). Be careful when referencing them via the CLI or API.
  • Scan frequency: According to the documentation, the first scan is run within up to 24 hours after enabling. When the creation of a new resource or a configuration change is detected, the scan may be prioritized.
  • Exclusion method: According to the documentation, you can exclude a resource from scanning by attaching the SecurityHubNetworkScanExclusion tag to the target resource. Follow the documentation for conditions such as the tag value (this article did not verify the exclusion behavior).
  • Cost: It is included in Security Hub's Findings billing. There is no additional charge for Network Scanning alone.

Summary

We enabled AWS Security Hub Network Scanning and confirmed that 443/tcp, reachable from the internet, was detected as a Finding.

Network Scanning does not rely only on configuration values such as security groups; it actually sends probes from the internet side and checks port responses. In this verification, in addition to the Open port, information such as the TLS version, certificate issuer, and expiration date was also included in the OCSF-format Finding.

When checking via the CLI or API, you need to use get-findings-v2 instead of the conventional get-findings. Also, since the service name inference result may not match the actual service, it seems best to treat it as a reference value.

Because you can check in Security Hub which ports are actually responding from the outside, I felt this feature is useful for understanding your external attack surface and discovering unintentionally exposed ports.

References

Share this article

AWSのお困り事はクラスメソッドへ