ネットワーク セキュリティ脅威検出 - 分析方法の比較
Google Cloud Japan Team
※この投稿は米国時間 2021 年 9 月 17 日に、Google Cloud blog に投稿されたものの抄訳です。
Jaliesha は、クラウドネイティブ ソフトウェア サービスの会社で DevOps チーム内のサイバーセキュリティを担当しています。この仕事は DevSecOps と呼ばれています。自社サービスの人気が高まって第 2 の VC ファンディングを受け取るにあたり、Jaliesha には次のようないくつかの要求が課せられています。
PCI DSS 範囲内のインフラストラクチャ上で侵入検知システムと侵入防止システム(IDS / IPS)のコンプライアンス要件を満たし、予定されている SOC 2 監査用のアーティファクトを生成する。
Cloud Security Alliance CAIQ で Cloud Controls Matrix の 90% を実現するという目標に向かって、前進し続ける。
Network Operations Center(NOC)チームと共同で、ネットワーク パフォーマンス モニタリング(NPM)向けに収集したテレメトリーを活用していくつかのセキュリティ モニタリング目標を達成する。
12 か月分のネットワーク メタデータを保持する(重大なセキュリティ インシデントがあった場合に脅威探査または法的証拠のために必要とされる可能性があるため)。
組織の最高情報セキュリティ責任者(CISO)チームと提携して脅威検出および応答の改善を図る。
難しい課題ですが、担当者は Jaliesha を含めて 3 人しかいません。最近ワークロードの大半を別のパブリック クラウド プロバイダから移行し、3 年前には物理ワークロードと仮想ワークロードがどちらも存在するプライベート環境で同様の経験をしていることから、Jaliesha は必要なメカニズムには精通しています。しかし、Google Cloud でこれらの機能を実現する方法についてはいまだ学習中です。もちろん、可視化の範囲を広げ検出を向上させる方法やチームのワークフローを簡素化する方法は常に模索しています。Google Cloud の Meet ルームでは、Jaliesha のような話をよく耳にします。
Google Cloud ネットワークベースの脅威検出
Google Cloud のサイバーセキュリティ プロダクト管理とエンジニアリングのチームは数十年も前からこの業界に存在しており、こうした課題に精通しています。私たちは、アクセス制御から侵入防止の追加、さらに最近では分析ベースの検出や応答の自動化へと至るまでの業界の成熟を目にしています。それに伴い、ネットワークベースの脅威検出の取り組みで DevSecOps のプロに必要とされるいくつかのシグナルタイプを提供してきました。
ここでは、これら 5 つのサービスおよび発せられるそれぞれのシグナルタイプについて簡単に説明し、詳細を参照する各リンクを提示し、違いがわかるようにするとともに、それぞれを使用すべきタイミングを案内します。表 1 に概要をまとめています。


フロー / セッション
まず「ネットワーク フロー」(「セッション」とも呼ばれることもあります)の定義から始めましょう。この用語は、本ブログのこれ以降の部分で、繰り返し登場します。
フロー 名詞: 1 つのネットワーク エンドポイント(ソース)から出発して別のネットワーク エンドポイント(宛先)に至る一連のパケット。両者間の独立した単一の接続セッションの開始と終了が境界となる。
たとえば、ソース IP:port が 10.1.1.2:5832 のエンドポイント A(接続元)と IP:port 10.200.200.12:80 のエンドポイント B(接続先)の間の、TCP(IP プロトコル番号 6)を使用したシンプルな HTTP 接続を例に挙げてみます。IP フローを記述する「5 タプル」は次のようになります。
IP プロトコル番号、ソース IP:port、宛先 IP:port
この場合は、次のとおりです。
6, 10.1.1.2:5832, 10.200.200.12:80.
IPFIX(かつての NetFlow)
概要:
IPFIX は IETF による国際標準プロトコルです。ネットワーク デバイスからの IP フロー情報を共通形式でエクスポートするために使用されます。もとは Cisco が設計し、IETF で「Informational」として公開した、NetFlow と呼ばれるプロトコルをベースにしています。
IPFIX は、ネットワーク フローの 5 タプルを記述するほか、測定、モニタリング、会計、請求などに使用できるカウンタなどの基本的接続情報を提供します。現在のネットワーク モニタリングはほぼすべてこれを基盤として行われています。ルーター、スイッチ、プローブ、次世代ファイアウォール(NGFW)、NAT ゲートウェイなど、最近の仲介ネットワークデバイスのほとんどが IPFIX のエクスポートに対応しています。今ではその多くが IPFIX データ解析、トラッキング、メッセージ作成、ハードウェア シリコンでの送信を行って、スループットに影響しない IPFIX エクスポートを実現しています。
IPFIX / NetFlow は、設定によって、Google Cloud 上で機能し、Cloud Marketplace で入手可能なさまざまなネットワーキング ベンダーのイメージタイプ(NGFW など)からエクスポートできます。これらのレコードは、Chronicle に送信できます。あるいは、サードパーティ製のネットワーク パフォーマンス モニタリング(NPM)、ネットワーク トラフィック分析(NTA)、セキュリティ情報 / イベント管理(SIEM)、ネットワーク / 拡張脅威検出および応答(NDR / XDR)、その他のサードパーティ製検出および応答システムなどに対しても送信可能です。Google が最近発表した自律型のセキュリティ運用ソリューションと、Google Cloud のビジネス インテリジェンス(BI)/ 分析プラットフォームである Looker および Chronicle とのインテグレーション(ブログをお読みください)により、データ アナリストだけでなくあらゆる SOC ユーザーが、SQL スクリプトの知識がなくても人間の言語によるクエリでこのデータセットに対しクエリを実施できるようになりました。


使用する場面:
Jaliesha の会社のネットワーク運用センター(NOC)では、ネットワークとエンドポイントの接続のモニタリング、サービス停止の識別、使用量の測定(キャパシティ プランニング、会計、請求目的)、接続グラフの判定に IPFIX を使用しています。接続グラフを使用して、エンドポイント ネットワークのベースライン通信パターンを確立しました。そのベースラインから、全エンドポイント間の通信パターンの統計的特徴が確認されました。これがさまざまなことの基礎になりました。たとえばキャパシティ プランニングです。
セキュリティの観点から言うと、ベースラインは、default-allow-explicit-block 環境からその対極であるゼロトラスト環境(すなわち default-deny-explicit-allow)への移行の基盤にもなりました。このフローデータによって、次のことが可能になりました。
ある特定のエンドポイント、一連のエンドポイント、各マイクロサービス、アプリ全体の接続グラフの特徴を判定する。
当該時点でパターンがポリシーに沿っているか外れているか判断する。
接続のためのアクセス制御 / 認証 / 認可ポリシー案を作成する。
過去と現在のトラフィック パターンと照らし合わせてそのポリシーを仮説的に評価する。
適用されたポリシーを調整する(Cloud Armor、アクセス制御、IAM、Cloud ファイアウォール、Cloud NAT、VPC Service Controls を介して)。
上の図 1 で示したように、接続のコンテンツあるいはインテントに関することはフローログでは判断できません。そのため Jaliesha はフローのコンテンツに関するメタデータを必要としています。これについては、以下の「VPC フローログ」、「Cloud IDS」、「ネットワーク フォレンジック&テレメトリー ブループリント」のセクションで取り上げます。
VPC フローログ
概要:
これらのログには、VPC 内でワークロードによって送受信されるネットワーク フローが記録されます(VM インスタンスと Google Kubernetes Engine ノードの両方を含む)。各ワークロードの TCP、UDP、ICMP、ESP、GRE フローがサンプリングされます。これらは IPFIX / NetFlow のスーパーセットであり、各フローに関する属性を追加します(GCE および GKE コンテキストなど Google Cloud 環境特有のいくつかの属性を含む)。これらは、サンプリングされたパケットに基づいており、パフォーマンスを改善するために補完され、オプションで不要物と量を減らすためにフィルタされます。
すべてのパケットがログレコードにキャプチャされるとは限りません。10 パケットごとに約 1 パケットがキャプチャされますが、このサンプリング レートは VM の負荷に応じて低くなることもあります。この方法では、キャプチャされたパケットから補完することで、欠落したパケットを補います。これは、初期構成とユーザーが構成可能なサンプリング設定が原因でパケットが欠落している場合に起こります。特定の接続について特定の間隔で収集されたすべてのパケットは、一定期間(一定集計間隔で)集計されます。VPC フローログのサンプリングによってフローがキャプチャされると、フロー用のログが生成されます。サンプリングであり、すべてのフローが記録されるわけではないため、推論となります。表 2 に示すように、各フローレコードには、レコードの形式で説明されている情報が含まれます(表 2 では Cloud IDS 脅威ログ形式との比較が示されます)。
デフォルトでは、VPC フローログ エントリには、送信元と宛先の VM の名前や、外部の送信元と宛先の地理的リージョンなどのメタデータ情報でアノテーションが付きます。これらも表 2 に示されています。保存容量を節約するためにメタデータ アノテーションをオフにすることも、特定のアノテーションのみを指定することもできます。
VPC フローログは、接続別に集計されてリアルタイムでエクスポートされます。これをユーザー指定の基準でフィルタできます。設定可能なサンプルレート パラメータに基づいて 2 番目のログ サンプリングを取ることでもスペースを節約できます。
ログはその後(デフォルトでは)Cloud Logging に送られ、ここでデータを表示できます。そこから、Cloud Logging のエクスポート先としてサポートされている任意の宛先にログをエクスポートできます。あるいは、ログを Cloud Logging から除外して Pub/Sub に送り、リアルタイム ストリーミング API またはサードパーティ製ツールを使用して分析することが可能です。
VPC フローログを有効にしても、お客様のワークロードに対する遅延やパフォーマンスの低下は発生しません。
使用する場面:
Jaliesha の会社では、NOC 関連のネットワーク モニタリング、使用量(経費目的)、キャパシティ プランニングのほか、DevSecOps / SOC 関連のモニタリングに、VPC フローログを利用しています。
NOC チームのデータ サイエンティストは、過去のデータに照らし合わせて予測モデルを実行し、Pub/Sub 関数を使用して同じ機能のサードパーティ製ツールにリアルタイム ストリームでログをフィードすることで、より高度な停止前通知オペレーションを実現しています。使用量と経費に関しては、NOC はリージョンとゾーン間のトラフィック、インターネット上の特定の国または通信会社へのトラフィック、トップトーカーへのトラフィックの特徴を判定します。
DevSecOps チーム向けには、VM 別およびアプリケーション別に VPC フローログをフィルタすることで、もともと IPFIX レコードで実現されていたことに加え、接続グラフを把握し、ゼロトラスト環境に移行した場合およびアクセス制御とマイクロセグメンテーションのルールを設定あるいは変更した場合のグラフ内の変化も把握します。また、ある程度のネットワーク フォレンジック(どのエンドポイントがどの相手といつ通信したかなど)も実行し、不正使用されたワークロードとの間でやり取りされたすべてのフローを分析して根本原因分析とリスク軽減に役立てています。最後に、リアルタイム ストリーミング API を(Pub/Sub 経由で)利用し、市販の SIEM と統合します。
上述のように、VPC フローログでは、一部のセキュリティ分析をリアルタイムで行うのに十分なシグナルが提供されます。これを使用して、一部の攻撃や、望ましくないトラフィック(DDoS など)、すでに報告されている悪意ある IP とのインタラクションなどを検出できます。後述する Cloud IDS やネットワーク フォレンジック&テレメトリー ブループリントなどのGoogle Cloud から提供している他のツールは、高度なネットワークベース脅威検出に適しています。
Packet Mirroring
概要:
Packet Mirroring は、Google Cloud で利用できるプロダクトで、お客様が指定した VPC ネットワーク内ワークロードのトラフィックのクローンを作成し、調査のために転送します。Packet Mirroring では、ペイロードとヘッダーを含む完全なパケットデータがキャプチャされます。Packet Mirroring からパケット ストリームを受信するシステム(「バックエンド コレクタ」と呼ばれます)として、さまざまなサードパーティ ソリューションまたは Google Cloud ソリューションをお客様に設定していただけます。
解析ツール(構造化メタデータを作成して保存します)。例: Zeek オープンソース ツール
データレイク。構造化データと非構造化データの両方に対応。例: Elastic
NTA ワークロード
検出エンジン。例: IDS、NDR、次世代ファイアウォール(NGFW)ワークロード
Packet Mirroring を有効にすると、Google Cloud によって、ミラーリングされたワークロードからパケット受信側(バックエンド コレクタ、ネットワーク センサーなど)に送られる全パケット向けにオーバーレイ カプセル化と転送が設定されます。お客様が設定するのは、内部 TCP / UDP ロードバランサ(ILB)、サービス、パケットを受信するバックエンド コレクタのみです。ミラーリングされたトラフィックの往復は Google が管理します。暗号化および暗号認証の付与によって、プライバシーとパケット整合性を保ち、機密情報向けのコンプライアンス基準を満たします。Jaliesha のチームは、高度にカスタマイズ可能なフィルタリングをポリシーによって行うことで、料金支払い対象を各ユースケースに必要なトラフィックのミラーリングのみに抑え、予算に合わせたコスト管理を可能にしています。このアクティビティはすべて、ワークロードのコンピューティング パフォーマンスに影響することなく実行されます。
Packet Mirroring は、すべての Google Cloud リージョン内のすべての GCE および GKE クラスタで利用可能です。
使用する場面:
Packet Mirroring は、パフォーマンスの問題(NPM、NTA)、セキュリティ インシデント(IDS、SIEM、NDR、XDR)、接続またはアプリケーションのトラブルシューティング、アプリケーション パフォーマンス モニタリング(APM)、合法的傍受の目的でネットワークをモニタリングおよび分析するためにフローデータ(IPFIX / NetFlow)やサンプリングされたフローデータ(VPC トラフィック ログ)だけではなくフルパケット データが必要とされる場合に便利です。多くの場合、ミラーリングされたパケットは、市販のサードパーティ製品によって受信されます。
Cloud IDS
概要:
Google Cloud IDS(現在はプレビュー版)は、ネットワークベースの脅威検出技術です。使用中のアプリケーションおよびさまざまな侵害(アプリのマスカレード、マルウェア、スパイウェア、コマンド&コントロール攻撃など)を特定するのに役立ちます。Cloud IDS は、Palo Alto Networks の業界をリードする脅威検出テクノロジーをもとに開発されたシステムです。Unit 42 による高品質の脅威調査に裏打ちされた高いセキュリティ効果を実現しています。デプロイのしやすさと、高パフォーマンスの Google Cloud 統合エクスペリエンスを享受できます。
Cloud IDS は数回クリックするだけでデプロイでき、Google Cloud ブラウザベースの GUI、CLI、API のいずれかを使用して簡単に管理できます。Cloud の Packet Mirroring 機能を内部で活用し、目的のフロー(ポリシーで定義)を検出エンジンに移動します。Palo Alto Networks の技術が組み込まれた Cloud IDS は、App-ID™ 技術 により、正規品を装った不正アプリケーションがネットワークに存在しないことを確認するのに役立ちます。さらに、検出署名の作成に時間を費やす必要がありません。それはすでに組み込まれています。既知の攻撃に関しては、多くのマネージド クラウド サービスで行われているように、脅威検出メカニズム、ライブラリ、署名が継続的に更新され自動適用されます。ゼロデイ攻撃に関しても、不正行動を警告する異常検出が同様に更新され適用されます。これらすべてを Cloud IDS で実現する際、すべてのピースを設計あるいは管理する必要はありません。それにより、運用上の多大な負担が解消されて SecOps チームの時間が解放されます。
Cloud IDS は脅威検出アラートログを発行します。これらのアラートと VPC フローログの項目を比較したリストについては、表 2 を参照してください。


使用する場面:
Cloud IDS は、VPC フローログだけでなく、モニタリングされているネットワークベースの脅威をほぼリアルタイムで可視化できます。VPC エッジにある NGFW とは異なり、Cloud IDS では、VPC 内、GKE 内、さらにはコンテナ Pod 間で、East-West 全体の可視化と検出が実現します。
Jaliesha は規制の厳しい業界で働いているため、Cloud IDS を使用して、可視化と脅威検出の目標およびコンプライアンス要件のサポートに役立てています。
Jaliesha の DevSecOps チームは時間と資金に余裕があるわけではないため、独自スクリプトを構築して記述せずに、提示された自動検出からセキュリティの調査情報と知識が得られることを高く評価しています。DIY 検出への関心が薄い別のお客様は、Google のシステムですべての基本事項が自動的にカバーされる点を評価しています。DevSecOps チームでは、Cloud IDS により検出作業の大部分が自動化され、環境特有のより高度な検出および脅威探査に取り組むための時間が増え、戦力が倍増されています。
ネットワーク フォレンジック&テレメトリー ブループリント
概要:
Jaliesha のチームは、独自のデータセンターのネットワーク トラフィックをモニタリングし分析するために使用するツールと方法(手動と自動の両方による脅威の検出および探査など)を備えています。これらのツールは物理ネットワークとプライベート クラウド向けに設計されていたため、ワークロードをクラウドに移行したときには適用できませんでした。このニーズに対処するのがネットワーク フォレンジック&テレメトリー ブループリントです。ネットワーク パケット データをログに変換して、Google Chronicle、既存の SIEM、その他のサードパーティ製分析ダッシュボードおよびツール(NDR ツールや XDR ツールなど)で使用できるようにします。ネットワーク フォレンジック&テレメトリー ブループリントは、自律型のセキュリティ運用ソリューションでもネイティブに提供されています。
このドキュメントに従い、DevSecOps チームは、どのワークロードのフローや環境をモニタリングするかを決めるだけですむようになりました。そこから、次のことを実現する環境全体が、Terraform スクリプトによって作成されました。
すべてのフローのパケットコピー(ワークロードのパフォーマンスには影響しない)。
コピーされたパケットの元データをメタデータに変換。
構造化および非構造化メタデータを分析ツールにプッシュし、データレイクと分析(例: Chronicle、SIEM、Elastic)など、選択した事後調査のためにそれらを保存。
レシピでは、Packet Mirroring、ILB、マネージド インスタンス グループ、Zeek、Pub/Sub、(オプションで)Google Chronicle が使用されます。
Packet Mirroring - 必要な任意のワークロードとの間でやり取りされる必要な全フローからのパケットのコピーを送信します。
ILB とマネージド インスタンス グループ - トラフィックのロード バランシングを行って、Zeek インスタンスのスケーリングを容易にします。
Zeek - 生のパケットをメタデータに解析変換するオープンソース ソフトウェア。
Pub/Sub - データレイクまたは分析ツールがすでにある場合は(Elastic クラスタなど)、Zeek からそれらのツールにメタデータをエクスポートします。Jaliesha の事例では、脅威の検出と処理に特化したものが求められていたため、Chronicle が選ばれました。これには Pub/Sub は必要ありませんでした(すでに統合済みであるため)。
Chronicle - セキュリティ チームにとっては、すべてのセキュリティ データからの自動応答をコスト効率よく保存、分析、記述でき、脅威の調査と検出に役立ちます。お客様が検出を Chronicle に記述します。
Chronicle では、ログとメタデータ ストリームを送信することによりセキュリティ分析に必要なデータ パイプラインの構築をお客様が行います。その後は、ハイブリッドおよびマルチクラウドのアーキテクチャからのデータ集約のサポートなど、分析と検出のための単一の画面が Chronicle によって提供されます。リモートコード実行やランサムウェアなどのウェブ攻撃を検出するために Chronicle で定義可能なルールの例を表 3 に示します。


これらのツールが備わった DevSecOps チームは、検出が開始されたら環境内で自動化スクリプトを記述し修正措置を行います。たとえば、見慣れない未承認の外部サイトへのコマンド&コントロール接続が発見され内部ネットワークのスキャンが観察された VM インスタンスのネットワーク インターフェースを自動的に切断する例が考えられます。
あるいは、ジョブ遂行のため内部ワークロードを接続させている健全な外部サービスをモニタリングおよびマッピングした後、ServiceNow システムでチケットをオープンすることにより未知のドメインに対するあらゆる接続を警告し、インスタンスのオーナーに対応できるようにする例もあります。このユースケースを適用した別のお客様の事例について、こちらの Security Talks セッションで詳細をご確認いただけます。
使用する場面:
DevSecOps チームは、Cloud IDS の検出よりも一歩先を行くためにこのブループリントを使用しています。チームは、環境とボリュームに合わせた検出を記述し脅威探索し、それに応じて修正措置を自動化します。
そのためには、ログデータだけでなく、パケットとフロー(PCAP)のメタデータが必要です。また、VPC 内でデプロイされるバックエンド コレクタ VM を制御し、コレクタのデータを 1 か所に集計して他のデバイスのログデータと結合する必要もあります。さらに、エンドポイント ログとアクティビティ メタデータを追加します。
また、Tier 1 の検出モニタリング / 検証を支援するアウトソースのマネージド セキュリティ サービス プロバイダ(MSSP)も存在します。MSSP に加え、VPC フローログ、Cloud IDS 脅威ログ、デバイスのログ(自身の NGFW、DNS ログ、自身の Cloud Armor DDoS / WAF アラートなど)から Chronicle に配置されるフロー メタデータ、デバイスログ、接続情報を使用してスクリプトを書き、手作業の脅威探査を実施します。
さらに、(a)侵害または損失が確認された場合にセキュリティ インシデントの調査すなわち事後分析を行ってセキュリティへの影響と根本原因を把握するため、および(b)データ サイエンス ベース(一部は ML ベース)の検出のトレーニング(Google の豊富なAI / ML / 分析ツールの使用により簡易化されています)用のデータセットを蓄積するために、ネットワーク メタデータとログデータを 12 か月間保存します。
Cloud IDS とネットワーク フォレンジック&テレメトリー ブループリントとの具体的な違いを表 4 に示します。


概要
Jaliesha の DevSecOps チームは大きな進歩を遂げました。さまざまなツールを使用して環境をクリーンに保ち、コンプライアンス要件を満たし、サイバー攻撃による損失を最小限に抑えています(前述の表 1 をご参照ください)。これらのツールの一部は Google Cloud のクラウドネイティブ サービスです(VPC フローログ、Packet Mirroring、Cloud IDS、Chronicle など)。そのほか、Google のサービスを市販のサードパーティ製ツールおよびオープンソース ソフトウェアの両方と組み合わせて統合したツールも含まれています。このようにして、セキュリティ意識がより高い Google Cloud のお客様の多くに見られるような脅威検出環境ができあがりました。
Jaliesha はこれらのツールの使用に満足していますが、さらに先を目指しています。ネットワーク セキュリティを担当するプロダクト管理およびエンジニアリング チームである私たちは、定期的に Jaliesha とミーティングしてニーズを聞き、将来のサービスに共同で取り組んでいます。私たちもまた、現状に満足することなく、さらなる高みを目指しているからです。今後は、さらに多くのハイブリッドおよびマルチクラウドのセキュリティ サービスが登場します。Jaliesha と同様の立場で、サイバーセキュリティ DevSecOps 業務の力を増強させるために Google ができることについてアイデアをお持ちの方は、貴社アカウント担当の Google チームを通してご連絡ください。Google の設計パートナーに加わっていただけましたら幸いです。
ネットワーク フォレンジック&テレメトリー ブループリントについて詳しく知りたい方は、こちらから技術に関するブログをお読みください。
- ネットワーク セキュリティ ポートフォリオ担当プロダクト管理 Gregory M. Lebovitz

