AWS Security Hub の新機能 「Network Scanning」 で実際にインターネットから到達可能なポートを検出してみた
はじめに
2026年7月9日、AWS Security HubにNetwork Scanning(ネットワーク到達可能性スキャン)機能が追加されました。
これまでのSecurity Hubは、セキュリティグループなどの設定を分析して「構成上インターネットに公開されているか」を判定するコントロールプレーン分析を行っていました。今回追加されたNetwork Scanningは、実際にインターネット側からプローブを送信してポートの応答を確認します。TLSで応答するポートでは、ハンドシェイクや証明書情報も取得されます。
| 観点 | 従来(コントロールプレーン分析) | 新機能(Network Scanning) |
|---|---|---|
| 判定方法 | セキュリティグループ等のルールを静的に分析 | 実際にプローブを送信して応答を確認(TLS応答時はハンドシェイクも実施) |
| 検出対象 | 構成上インターネットに開いているポート | 実際にインターネットから到達可能なポート |
| 証拠 | 設定値(SGルール等) | ポート応答、TLS証明書情報、サービス検出 |
| 偽陽性 | OS側FWや経路上のフィルタで実際はブロックされていても、構成上開いていれば検出されうる | スキャン時点でプローブへの応答が確認できた場合に検出 |
| Finding形式 | ASFF(get-findings) |
OCSF(get-findings-v2) |
本記事では、Network Scanningの有効化手順、Finding(OCSF形式)の構造、スキャン対象の粒度を確認します。検証対象はパブリックIPで443ポートを公開しているEC2インスタンスです。
検証内容
検証環境
- リージョン:ap-northeast-1
- EC2:t3.nano(Amazon Linux 2023)
- Elastic IP:xxx.xxx.xxx.xxxをアタッチ
- セキュリティグループ:TCP 443を0.0.0.0/0に許可
- Nginx 1.30.2 + TLS 1.3(AWS Certificate ManagerのACME対応エンドポイントで発行したECDSA証明書)
- Security Hub:Essentialsプラン
証明書の発行手順は以下の記事を参照してください。
Network Scanningの有効化
Security Hubコンソールの「Settings」>「一般」から、ネットワーク到達可能性スキャンを有効化します。



有効化後、今回の検証では数分でFindingが生成されました。
Findingの確認
「すべての検出結果」画面で、タイプを「Network Scanning/Network Reachability」でフィルタすると、Network Scanning由来のFindingを確認できます。

検証用のEIPに対して、ポート443のインターネット到達可能性がFindingとして生成されています。

Findingには以下の情報が含まれています。
- ポートスキャンの結果:443/tcpがOpen
- サービス推定結果:smb(後述)
- TLS証拠:TLSv1.3、発行者
CN=Amazon ECDSA 256 S07,O=Amazon,C=US、証明書有効期限 - リソース:
AWS::EC2::EIP eipalloc-0xxxxxxxxxxxxxxxxxxxxx
CLIでの確認
Network ScanningのFindingは、従来のget-findings API(ASFF形式)では取得できません。新しいget-findings-v2 API(OCSF形式)を使用する必要があります。
aws securityhub get-findings-v2 --region ap-northeast-1 --max-results 5
get-findings-v2 の出力(抜粋)
{
"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
}
OCSF形式のFindingでは、port_scan_result_listにポートスキャンの結果が構造化されています。TLSハンドシェイク時間(handshake_dur、ミリ秒)や証明書情報まで含まれるのが特徴です。

スキャン対象と検出単位
今回の検証では、FindingのリソースはEC2インスタンスではなくパブリックIPアドレス単位で生成されていました。検証対象のEIP以外にも、同一アカウント内のELBに関連するパブリックエンドポイントに対するFindingが確認できました。

注意事項
- Finding形式:Network ScanningのFindingは
get-findings-v2(OCSF形式)でのみ取得可能です。従来のget-findings(ASFF形式)では表示されません。CLIやAPIで参照する際は注意してください。 - スキャン頻度:ドキュメントによると、有効化後最大24時間以内に初回スキャンが実行されるとされています。リソースの新規作成や設定変更が検出された場合は、スキャンが優先される場合があります。
- 除外方法:ドキュメントによると、対象リソースに
SecurityHubNetworkScanExclusionタグを付与することでスキャン対象から除外できるとされています。タグ値などの条件はドキュメントの記載に従ってください(本記事では除外動作の検証は行っていません)。 - コスト:Security HubのFindings課金に含まれます。Network Scanning単体の追加料金はありません。
まとめ
AWS Security HubのNetwork Scanningを有効化し、インターネットから到達可能な443/tcpがFindingとして検出されることを確認しました。
Network Scanningは、セキュリティグループなどの設定値だけでなく、実際にインターネット側からプローブを送信してポートの応答を確認します。今回の検証では、Openなポートに加えて、TLSバージョン、証明書発行者、有効期限などの情報もOCSF形式のFindingに含まれていました。
CLIやAPIで確認する場合は、従来のget-findingsではなくget-findings-v2を使用する必要があります。また、サービス名の推定結果は実サービスと一致しない場合があるため、参考値として扱うのがよさそうです。
外部から実際に応答しているポートをSecurity Hub上で確認できるため、外部公開面の把握や意図しない公開ポートの発見に役立つ機能だと感じました。









