フローログレコードとフィールドの読み方
送信元、送信先、ポート、許可または拒否のアクションを読み解きます。
「フローログレコードとフィールドの読み方」はCoddyKit上の無料Cloud & IT Cert Prepレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCloud & IT Cert Prep学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
レコードの構成
フローログレコードは、集約間隔中に1つの接続で発生したトラフィックを説明する1行の記録です。デフォルト形式では、スペースで区切られたフィールドが固定の順序で並びます。この行をすばやく読み取ることは、AWS でネットワーク調査を行う際の基本的なスキルです。
五つ組
レコードの中心となるのは五つ組です。送信元アドレス、宛先アドレス、送信元ポート、宛先ポート、プロトコル番号で構成されます。これにより、通信を一意に識別できます。プロトコル 6 は TCP、17 は UDP です。これらのフィールドを組み合わせると、どのエンドポイント同士が、どのサービスを介して通信していたのかを正確に把握できます。
2 111122223333 eni-0abc 10.0.1.5 10.0.2.9 49152 443 6 12 6000 1620140761 1620140821 ACCEPT OK送信元と宛先
srcaddr フィールドと dstaddr フィールドには、通信に関係する IP アドレスが示されます。インスタンスから外部へ送信されるトラフィックでは、srcaddr はインスタンスです。インバウンドトラフィックでは、srcaddr はリモートピアです。方向を正しく読み取ることは不可欠です。送信元と宛先を取り違えると、イベント全体の理解を誤る可能性があります。
ポートからサービスを特定する
dstport は通常、サービスを示します。443 は HTTPS、22 は SSH、3389 は RDP、3306 は MySQL です。ボットネットがよく使用する IRC の 6667 番ポートへのアウトバウンド通信など、想定外の宛先ポートは危険な兆候です。srcport は通常、クライアントが選択した一時的な高番ポートです。
バイト数とパケット数
bytes フィールドと packets フィールドには、間隔中に転送されたデータ量が示されます。小さなリクエストに対して非常に大きなアウトバウンドバイト数が返っている場合、データの持ち出しを示している可能性があります。これらの量を時間の経過に沿って追跡すると、通常の通信と、ホストが見慣れないアドレスへ突然ギガバイト単位のデータを送信する状況を区別できます。
アクションフィールド
action フィールドは ACCEPT または REJECT です。REJECT は、セキュリティグループまたは NACL によってフローがブロックされたことを意味します。1つの送信元から多数のポートに向けて REJECT が大量に発生している場合、スキャンが疑われます。重要なのは、セキュリティグループがステートフルである点です。そのため、そこでの REJECT は通常 NACL ルールを反映しており、どの制御が適用されたのかを特定する手掛かりになります。
ログステータスフィールド
最後のフィールドである log-status は、OK、NODATA、SKIPDATA のいずれかです。NODATA は、その間隔中にトラフィックがなかったことを意味します。SKIPDATA は、容量の都合で一部のレコードがスキップされたことを意味します。SKIPDATA は可視性に空白があることを示す警告であり、調査で完全性を頼りにする場合には重要です。
タイムスタンプ
各レコードには、個々のパケットではなく、集約対象の時間枠を示す Unix エポック秒の start 時刻と end 時刻が含まれます。Flow Logs を CloudTrail やアプリケーションログと照合する際は、これらの時刻が間隔の境界を示していることに注意してください。イベントは、その時間枠内のどの時点でも発生している可能性があります。
カスタム形式のフィールド
カスタム形式では、instance-id、vpc-id、subnet-id、tcp-flags、flow-direction など、調査に役立つ重要なフィールドを追加できます。pkt-srcaddr フィールドと pkt-dstaddr フィールドを使うと、基本の srcaddr/dstaddr では隠れてしまう NAT 前の元のアドレスを確認できます。これらの追加情報により、調査を大幅に迅速化できます。
実際にレコードを読む
1行を解釈するには、まず五つ組を特定し、次にアクションとバイト数を確認してから、宛先ポートをサービスに対応付けます。そのインスタンスの役割に照らして、通信方向、通信量、通信相手が妥当かどうかを確認してください。この手順に沿った読み方により、暗号のようなログの1行を、何が起きたのかを明確に示す情報へ変換できます。
直感を養う
練習を重ねると、見慣れないインターネット上の IP からの SSH、大量のアウトバウンド転送、新しいリージョンへの通信、サブネットをスキャンする REJECT の繰り返しなどの異常にすぐ気付けるようになります。フィールドは変わらないため、必要なのはパターン認識のスキルです。この習熟度こそ、ネットワーク可視性のシナリオで試験が問うものです。
クイックチェック
フローログレコードを読み取る力を確認しましょう。
まとめ
フローログレコードの中心は、五つ組(送信元/宛先アドレス、送信元/宛先ポート、プロトコル)です。これに加えて、bytes、packets、ACCEPT/REJECT アクション、OK、NODATA、SKIPDATA のいずれかを示す log-status が含まれます。宛先ポートからサービスを特定でき、バイト数からデータ持ち出しの可能性を推測できます。また、カスタム形式では instance-id や tcp-flags などのフィールドを追加できます。最初に五つ組を読むことで、調査に必要な直感をすばやく養えます。
よくある質問
「フローログレコードとフィールドの読み方」レッスンは無料ですか?
はい。「フローログレコードとフィールドの読み方」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cloud & IT Cert Prepコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cloud & IT Cert Prepコースには全4レッスンが含まれています。
「フローログレコードとフィールドの読み方」で何を学びますか?
送信元、送信先、ポート、許可または拒否のアクションを読み解きます。 ブラウザで直接実行するハンズオンコードでCloud & IT Cert Prepを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cloud & IT Cert Prepを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCloud & IT Cert Prepは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「フローログレコードとフィールドの読み方」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCloud & IT Cert Prepレッスンでコードを書いて実行できますか?
はい。すべてのCloud & IT Cert Prepレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- VPCフローログが取得する内容
- フローログレコードとフィールドの読み方
- VPC、サブネット、ENIレベルのフローログ
- フローログで不審なトラフィックを発見