AWS Network Firewall のフローログ・アラートログ解説とサンプル

記事タイトルとURLをコピーする

AWS Network Firewall で取得できるログについて調査する機会があったため、メモ書きとして残しておきます。

AWS Network Firewallでは、ネットワークトラフィックの詳細を把握するために、フローログアラートログの2種類のログを取得できます。

フローログ
  • ステートレスエンジンからステートフルエンジンに転送されるトラフィックのログ
アラートログ
  • ステートフルルールグループでドロップ、アラート、拒否のアクションが設定されたルールにマッチするトラフィックのログ
ログ記録の推奨設定

ステートレスのルールにマッチするトラフィックについてはログに記録されません。 ステートフルルールを使用することで、以下が可能となるため推奨されます - 戻りトラフィックの自動許可 - パケットの内容を詳細に検査 ステートレスエンジンのデフォルトアクションは「ステートフルルールグループに転送」を設定することを推奨します。

ログの出力先

ログの活用方法と出力先
  • Amazon S3:AthenaやSIEMでの分析に利用
  • Amazon CloudWatch:CloudWatch Logs Insightsでの分析に利用
  • Amazon Kinesis Data Firehose:リアルタイム処理やサードパーティーSIEMに利用

ログサンプル

フローログ例
{
    "firewall_name": "NFW-Firewall",
    "availability_zone": "ap-northeast-1a",
    "event_timestamp": "1733711193",
    "event": {
        "tcp": {
            "tcp_flags": "02",
            "syn": true
        },
        "app_proto": "unknown",
        "src_ip": "10.0.2.253",
        "src_port": 58088,
        "netflow": {
            "pkts": 5,
            "bytes": 300,
            "start": "2024-12-09T02:20:26.691827+0000",
            "end": "2024-12-09T02:20:42.110635+0000",
            "age": 16,
            "min_ttl": 126,
            "max_ttl": 126
        },
        "event_type": "netflow",
        "flow_id": 719578654249789,
        "dest_ip": "52.119.222.211",
        "proto": "TCP",
        "dest_port": 443,
        "timestamp": "2024-12-09T02:26:33.828371+0000"
    }
}
フィールドの説明
キー 説明
firewall_name ログを生成したファイアウォールの名前。
availability_zone ファイアウォールが配置されているアベイラビリティゾーン。
event_timestamp イベントが発生したUNIXタイムスタンプ。
event.tcp.tcp_flags TCPフラグの値(例: "02"はSYNフラグを示す)。
event.tcp.syn SYNフラグがセットされているかを示すブール値。
event.app_proto 検出されたアプリケーション層のプロトコル(この場合は不明)。
event.src_ip 送信元のIPアドレス。
event.src_port 送信元のポート番号。
event.netflow.pkts 転送されたパケット数。
event.netflow.bytes 転送されたバイト数。
event.netflow.start フローの開始時刻(ISO 8601形式)。
event.netflow.end フローの終了時刻(ISO 8601形式)。
event.netflow.age フローの継続時間(秒単位)。
event.netflow.min_ttl フロー内のパケットの最小TTL値。
event.netflow.max_ttl フロー内のパケットの最大TTL値。
event.event_type イベントの種類(この場合はネットフロー)。
event.flow_id フローを一意に識別するID。
event.dest_ip 宛先のIPアドレス。
event.proto 使用されたプロトコル。
event.dest_port 宛先のポート番号。
event.timestamp イベントのタイムスタンプ(ISO 8601形式)。
アラートログ例
{
    "firewall_name": "NFW-Firewall",
    "availability_zone": "ap-northeast-1a",
    "event_timestamp": "1733711798",
    "event": {
        "src_ip": "10.0.2.253",
        "src_port": 46614,
        "event_type": "alert",
        "alert": {
            "severity": 3,
            "signature_id": 1,
            "rev": 0,
            "signature": "",
            "action": "blocked",
            "category": ""
        },
        "flow_id": 1968320155664873,
        "dest_ip": "52.119.222.211",
        "proto": "TCP",
        "verdict": {
            "action": "drop",
            "reject-target": "to_client",
            "reject": [
                "tcp-reset"
            ]
        },
        "dest_port": 443,
        "pkt_src": "geneve encapsulation",
        "timestamp": "2024-12-09T02:36:38.261677+0000",
        "direction": "to_server"
    }
}
フィールドの説明
キー 説明
firewall_name ログを生成したファイアウォールの名前。
availability_zone ファイアウォールが配置されているアベイラビリティゾーン。
event_timestamp イベントが発生したUNIXタイムスタンプ。
event.src_ip 送信元のIPアドレス。
event.src_port 送信元のポート番号。
event.event_type イベントの種類(この場合はアラート)。
event.alert.severity アラートの深刻度(1 が最高)。
event.alert.signature_id アラートのシグネチャID(アラートを一意に識別する番号)。
event.alert.rev シグネチャのリビジョン番号(署名が変更されると増える)。
event.alert.signature シグネチャの名前(具体的なアラートの詳細を示す)。
event.alert.action アラートが生成されたアクション(例: blocked)。
event.alert.category アラートのカテゴリ(詳細情報がない場合は空欄)。
event.flow_id フローを一意に識別するID。
event.dest_ip 宛先のIPアドレス。
event.proto 使用されたプロトコル(例: TCP)。
event.verdict.action ファイアウォールの最終的なアクション(例: drop)。
event.verdict.reject-target リジェクトのターゲット(例: to_client)。
event.verdict.reject リジェクトアクションの詳細(例: tcp-reset)。
event.dest_port 宛先のポート番号。
event.pkt_src パケットの送信元情報(例: Geneveエンカプセレーション)。
event.timestamp イベントのタイムスタンプ(ISO 8601形式)。
event.direction パケットの送信方向(例: to_server)。

※ event 内の情報は Suricata EVE JSON フォーマット の形式に準拠

参考資料

  1. ネットワークファイアウォールのログ分析でセキュリティ向上を実現 https://aws.amazon.com/jp/builders-flash/202310/network-firewall-log-analysis/
  2. 17.1.2. Eve JSON Format — Suricata 8.0.0-dev documentation https://docs.suricata.io/en/latest/output/eve/eve-json-format.html
  3. 8.2. Meta Keywords — Suricata 8.0.0-dev documentation https://docs.suricata.io/en/latest/rules/meta.html
  4. 29.1. EVE Index — Suricata 8.0.0-dev documentation https://docs.suricata.io/en/latest/appendix/eve-index.html

手嶋 凌一朗 (記事一覧)

エンタープライズクラウド部・クラウドリライアビリティ課

書きたい心はあるんです

最近ハマっているものはテニスです