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 フォーマット の形式に準拠
参考資料
- ネットワークファイアウォールのログ分析でセキュリティ向上を実現 https://aws.amazon.com/jp/builders-flash/202310/network-firewall-log-analysis/
- 17.1.2. Eve JSON Format — Suricata 8.0.0-dev documentation https://docs.suricata.io/en/latest/output/eve/eve-json-format.html
- 8.2. Meta Keywords — Suricata 8.0.0-dev documentation https://docs.suricata.io/en/latest/rules/meta.html
- 29.1. EVE Index — Suricata 8.0.0-dev documentation https://docs.suricata.io/en/latest/appendix/eve-index.html