フローログサービスは、ユーザーのネットワークインターフェイスに送受信されるパケットを分析して統計情報を提供します。このサービスを使用すると、ネットワークインターフェイスに設定されたSecurity Groupsルールによって許可または拒否されたパケットの数、サイズなどの様々な統計情報を確認できます。フローログサービスを活用すれば、ユーザーのネットワークインターフェイスが正しくトラフィックを送受信したのか、誰と通信を行ったのか、そして外部からどのような侵入の試みがあったのかなどを確認できます。
フローログサービスは、ネットワークインターフェイスに行き来するすべてのパケットのヘッダを検査します(現在はインスタンスのネットワークインターフェイスのみ提供)。
ただし、L2タイプはEthernet、L3タイプはIPv4、L4タイプはTCP/UDP/ICMPの場合のみヘッダを検査して統計を提供します。検査されたパケットは5-tupleを基準に集計されます。
現在、フローログサービスはObject Storageをストレージとして活用しています。ユーザーが設定した収集間隔ごとにOBS(Object Storage)にファイルが作成され、このファイルをダウンロードして実際の統計を確認できます。
統計を確認してSecurity Groupsが正しく設定されているかどうか、外部侵入の試みなどを確認できます。
インスタンスのポートを介して送受信されるパケットの接続情報、統計情報などを収集/確認したい場合
Security Groups設定によって許可またはブロックされたパケットの接続情報、統計を収集/確認したい場合
インスタンスへのパケット流入記録を確認し、疑わしいアドレスをブロックしてインスタンスのセキュリティ強化を図りたい場合
フローログサービスで使用するリソースと用語を説明します。
番号 | フィールド | 説明 | 単位 | 備考 |
---|---|---|---|---|
1 | timestamp_start | 該当5-tupleが最初に確認された時間 | UNIX TIMESTAMP | |
2 | timestamp_end | 該当5-tupleが最後に確認された時間 | UNIX TIMESTAMP | |
3 | interface_id | ネットワークインターフェイスID | UUID | |
4 | vm_id | ネットワークインターフェイスを所有するインスタンスのID | UUID | |
5 | subnet_id | ネットワークインターフェイスを所有するサブネットのID | UUID | |
6 | vpc_id | ネットワークインターフェイスを所有するVPCのID | UUID | |
7 | region | リージョン情報 | KR1 | KR2 |
* KR1:韓国(パンギョ)リージョン * KR2:韓国(ピョンチョン)リージョン |
8 | protocol | 5-tupleの中でプロトコル番号 | IANAが付与したプロトコル番号を表現します。 * 各番号に基づくプロトコルは次のとおりです。1:ICMP, 6:UDP, 17:TCP * それ以外は収集しません。 |
|
9 | src_addr | 送信元アドレス | IPv4アドレス | |
10 | dst_addr | 宛先アドレス | IPv4アドレス | |
11 | src_port | 送信元ポート番号 | Integer | ICMPは0とみなします。 |
12 | dst_port | 宛先ポート番号 | Integer | ICMPは0とみなします。 |
13 | tcp_flag | TCP flag | Integer | TCP flagは収集間隔内にキャプチャされたパケットをbitwise OR 処理して表記します。詳細は、表下部のTCP flagsを参照してください。 |
14 | packets | 収集間隔中に確認されたパケット数 | Integer | |
15 | bytes | 収集間隔中に確認されたパケットサイズの合計 | Byte | |
16 | direction | 収集された5-tupleのパケットフローの方向 | ingress | egress | unknown |
|
17 | filter | 収集された5-tupleのSecurity Groupsの判定結果 | ACCEPT またはDROP |
|
18 | status | ログ状態 | OK またはSKIPDATA |
* OK:正常にロギングされた5-tupleです。 * SKIPDATA:フローログが提供する内部容量を超え、該当収集間隔期間中に収集されなかったパケットが存在します。 |
TCP接続が短い場合、TCP Active openを試みる側でSYN、FINを収集間隔内に送信できます。この場合、SYN | FIN (2 | 1 = 3)が記録されます。SYN | FIN (2 | 1 = 3)が記録されます。
逆に受信データとしては、収集間隔内にSYN | ACK、そしてFINが受信されることがあります。この場合、SYN | ACK | FIN (16 | 2 | 1 = 19)が記録されます。
SYN, ACK, RST, FINの各数値は、TCP header tcp flag bit field(RFC 793, section 3.1. Header Format)に従います。
PSH flagのみ存在するパケット、ACK flagのみ存在するパケット、および一般的にトラフィックを送信する際に使用するPSH | ACK flagは収集に含めません。つまり、SYN、SYN | ACK、FIN | ACK、RST、FINのみ記録します。
収集間隔を長く設定した場合、実際には異なる接続ですが、同じ5-tupleで収集されることがあります。
収集間隔内に同じ5-tupleで複数回接続の確立/終了を繰り返すと、これらの接続が論理的にはそれぞれ異なる接続であっても、同じ5-tupleで集計されます。
したがって、状況に応じて適切な収集間隔を設定することをお勧めします。