Amazon Web Services ブログ

最新 – VPC トラフィックミラーリング – ネットワークトラフィックを捉えて検査する

複雑なネットワークを運用することは簡単な作業ではありません。ネットワークを円滑に稼動させることに加えて、異常なトラフィックパターンや甚大なネットワーク侵入を引き起こすコンテンツ、感染したインスタンス、その他の異常な事象にこれまで以上に警戒する必要があります。

VPC トラフィックミラーリング
今日、AWS では VPC トラフィックミラーリングの利用を開始します。これは既存の Virtual Private Clouds (VPC) を使用する新機能で、ネットワークトラフィックを捕捉し、検査します。また、この機能はスケール可能です。次のことを実行できます。

ネットワークおよびセキュリティ上の異常を検出 – VPC 上の任意のワークロードから関心のあるトラフィックを抽出し、指定した検出ツールにルーティングできます。従来のログベースのツールと比較して、より迅速に攻撃を検出し、対応できます。

運用上のインサイトを取得 – VPC トラフィックミラーリングを使用することで、ネットワークを可視化し、コントロールを得ることができます。それは後に、より詳細な情報を得たうえでセキュリティの意思決定を下すのに役立ちます。

コンプライアンスとセキュリティコントロールを実装 – モニタリング、ログ作成、その他を必要とする法令およびコンプライアンスの要件に準拠できるようになります。

問題のトラブルシューティング – テストやトラブルシューティングの目的で、アプリケーションのトラフィックを社内的にミラーリングできます。トラフィックパターンを分析し、事前にアプリケーションのパフォーマンスを損なう「渋滞」ポイントを見つけることができます。

VPC トラフィックミラーリングは「仮想ファイバータップ」と捉えることができます。このタップにより VPC を通じて、ネットワークパケットへ直接アクセスできるようになるのです。すぐにご覧いただけるように、すべてのトラフィックを捕捉することも、特に関心のあるパケットを捕捉するためにフィルターを使用することもでき、さらには、パケットあたりの捕捉するバイト数を制限するオプションも用意されています。多数の AWS アカウントをまたいだ VPC からトラフィックを捕捉して、検査のために集中型 VPC にルーティングするといった、AWS のマルチアカウント環境で VPC トラフィックミラーリングを使用する使い方も可能です。

AWS Nitro システム (本記事の執筆時点では A1、C5、C5d、M5、M5a、M5d、R5、R5a、R5d、T3、および z1d) でサポートされている任意の EC2 インスタンスからのトラフィックをミラーリングできます。

VPC トラフィックミラーリングを使い始める
VPC トラフィックミラーリングの主要な要素を見直して、セットアップを始めましょう。

Mirror Source – 特定の VPC 内にある AWS ネットワークリソースで、トラフィックの送信元として使用できます。VPC トラフィックミラーリングは、ミラー送信元として Elastic Network Interface (ENI) を使用できます。

Mirror Target – ミラーリングの対象となるトラフィックの送信先として ENI または Network Load Balancer を使用できます。送信先はミラー送信元と同一の AWS アカウント内であることも、上記で説明したとおり、集中型 VPC モデルを活用して別のアカウントに置くこともできます。

Mirror Filter – 捕捉 (承認) またはスキップ (拒否) するインバウンドまたはアウトバウンド (送信元に対して) のトラフィックの仕様。フィルターはプロトコル、送信元と送信先のポートの範囲、送信元と送信先の CIDR ブロックを指定できます。ルールは採番され、特定のミラーセッションの範囲内の順序で処理されます。

Traffic Mirror Session – フィルターを使用するミラー送信元とミラー送信先間の接続。セッションは採番され、順番に評価されて、最初の一致 (承認または拒否) がパケットの処理を決定するために使用されます。指定されたパケットは、最大で 1 つの送信先へ送信されます。

これは、VPC コンソールEC2 CLI、または EC2 API を使用し、CloudFormation のサポートも含めて設定できます。ここではコンソールを使用しましょう。

ミラーの送信元と送信先として使用する ENI を指定してあります (実世界のユースケースでは、NLB を送信先として使用するかもしれません)。

MirrorTestENI_SourceMirrorTestENI_Destination ENI は既に適切な EC2 インスタンスにアタッチされています。VPC コンソールを開き、Traffic Mirroring の項目までスクロールダウンして、Mirror Targets をクリックします。

Create traffic mirror target をクリックします。

名前と説明を入力し、Network Interface ターゲットタイプを指定して、メニューから自分の ENI を選択します。これは私がいつもする方法ですが、送信先に Blog タグを追加し、Create をクリックします。

送信先が作成され、使用できるようになりました。

Mirror FiltersCreate traffic mirror filter をクリックします。ここでは 3 つのポート (22、80、443) でインバウンドトラフィックを捕捉する簡単なフィルターを作成し、Create をクリックします。

これでフィルターが作成され、数秒で使用できるようになります。

次に、Mirror SessionsCreate traffic mirror session をクリックします。MirrorTestENI_SourceMainTargetMyFilter を使用するセッションを作成し、AWS が VXLAN network identifier を選択できるように指定して、パケット全体をミラーするよう指定します。

準備は完了です。フィルターに一致するミラー送信元からのトラフィックは RFC 7348 で指定されたとおりにカプセル化され、ミラー送信先へと送信されます。その後、Suricata のようなツールを使用してトラフィックを捕捉、分析、また視覚化できます。

知っておくべきこと
ここで、留意するべきことがいくつかあります。

Sessions Per ENI – 各 ENI で最大 3 件のアクティブセッションを持つことができます。

Cross-VPC – 送信元と送信先の ENI は、互いにピアの関係にあるか、Transit Gateway を経由して接続されている限り、異なる VPC にあっても問題ありません。

Scaling & HA – ほとんどの場合、1 台の Network Load Balancer へのトラフィックをミラーする計画を立て、その背後にある EC2 の自動スケール可能なシステム上で捕捉および分析ツールを実行するべきです。

Bandwidth – 各インスタンスによって生成されたレプリケートトラフィックは、このインスタンスで利用できる帯域幅全体に対してカウントされます。トラフィックの遅延が生じれば、ミラーされたトラフィックが最初にドロップされます。

今すぐ利用可能
VPC トラフィックミラーリングは本日リリースされ、アジアパシフィック (シドニー)中国 (北京)、中国 (寧夏) を除くすべての商用 AWS リージョンですぐにご利用いただけます。これらのリージョンでのサポートも間もなく追加されます。各ミラー送信元に時間ごとの料金が課金されます ($0.015/時より開始)。詳細については Amazon VPC の料金のページをご覧ください。

Jeff;