G-gen の杉村です。Google Cloud (旧称 GCP) のセキュリティサービスである Cloud IDS について解説していきます。
Cloud IDS とは
Cloud IDS とは Google Cloud (旧称 GCP) のセキュリティサービスであり、Google Cloud 上のネットワークにおける侵入、マルウェアによる通信、コマンド&コントロール通信等を検知する仕組みです。
IDS とは Intrusion Detection System の略語であり侵入検知システムのことです。主にネットワークトラフィックを検査することで有害なアクセスを検知することを目的とした仕組みを指します。しばしば IPS/IDS のように侵入防止システムとセットで語られることが多いものです。
そのため Cloud IDS で提供されるのは侵入の検知だけであり侵入を防ぐ機能はありません。
Cloud IDS は、VPC からトラフィックをミラーリング (複製) し Palo Alto Networks の脅威検知技術 で検査します。
また、利用時間と処理データ量に応じて料金が発生します。全トラフィックを検査することも、サブネット単位なインスタンス単位で検査対象パケットを指定することも可能です。
- 参考 : Cloud IDS の概要
アーキテクチャ
構成図
Cloud IDS のアーキテクチャは、以下のように図示されます。
IDS エンドポイント
Cloud IDS では IDS エンドポイント というリソースを作成します。
IDS エンドポイント自体はゾーンリソースですが、1つ作れば同じリージョン内の全ゾーンのトラフィックを検査できます。
IDS エンドポイントは Private services access の機能を使って、ユーザの VM と Google が管理する検査用 VM の間を接続します。
パラメータとして以下を持ちます。
- 最小のアラート (アラートとして扱う最小の重要度。 Critical > High > Medium > Low > Informational)
- トラフィックログ (ON or OFF)
トラフィックログ は、検知された脅威とは別に、ミラーリングしたトラフィックのログを JSON で生成します。
大量のログが Cloud Logging へ送信され利用料金が大きくなることが想定されますので、特に必要な理由がある場合を除いて、オフとすることが望ましいでしょう。
Packet mirroring policy
IDS エンドポイントを作成すると Packet mirroring policy をアタッチする必要があります。
このポリシーが、どのトラフィックを検査対象とするかを決定します。
Packet mirroring policy では以下のパラメータを持っています。
- ポリシーの状態 (有効 or 無効)
- ミラーリングの対象 (サブネット単位 or ネットワークタグ単位 or インスタンス単位)
- ミラーリングのフィルタ (プロトコル / IP レンジ / トラフィックの方向)
脅威検知
Application-ID
検査されるネットワークトラフィックは Palo Alto Networks がメンテナンスする Application-ID (App-ID) という ID により、どのアプリのトラフィックであるかが判断されます。
脅威検知された際、そのトラフィックが何のアプリケーションにより生成されたものなのかが、この App-ID によって分類されます。
App-ID は週次程度の頻度で更新されていき、 Cloud IDS のユーザーが意識しなくとも、自動でアップデートされていきます。
シグネチャーセット
Cloud IDS は シグネチャー によりトラフィックを検査します。
例として、以下のような挙動となります。
- バッファオーバーフロー、コードの不正実行、その他の脆弱性を突いたアクセスなどを検知
- スパイウェアからコマンド & コントロール (C&C) サーバへの通信を検知
重要度
検知された脅威は 5段階に分類 されます。
IDS エンドポイントの設定でどのレベルまでを検知対象とするかを指定できます。
重要度 | 説明 |
---|---|
Critical | 深刻。 サーバに深刻なダメージを与えるもの。またエクスプロイトコードが広く知られている、攻撃者が攻撃対象に関して認証情報や深い情報を必要としないなど、危険度が高い脅威 |
High | 高。危険ではあるものの、エクスプロイトの難易度が高い、特権昇格に繋がらない、攻撃対象となり得る範囲が狭いなどの理由で "深刻" には分類されない脅威 |
Medium | 中。インパクトは中程度で、攻撃者が同じローカルネットワークにいる必要があったり、標準的でない設定に対してのみ危険であったり、限定的な対象に対してのみ危険な脅威 |
Low | 低。インパクトが小さく、ローカルネットワークもしくは物理的なアクセスが可能な場合のみ危険となりえるなどの理由で、警告レベルとされる脅威 |
Informational | 情報レベル。直ちに脅威にはなり得ないが潜在的に危険な、疑わしい挙動など |
シグネチャーの更新頻度
App-ID やシグネチャーは、ユーザーが意識する必要なく、 自動的にアップデート されます。
Palo Alto Networks によるアップデートは、日次で Cloud IDS に反映されます。反映の遅れは、最大でも 48 時間とされています。
料金
Cloud IDS の料金は エンドポイントの存在する時間 単位の課金 + 処理したトラフィックの GB 単位の課金 の2軸となっています。
2021/11時点で料金は以下のようになっています。
- エンドポイント時間あたり: $1.50 / hour
- 処理データ量あたり: $0.07 / GB
最新の料金は必ず以下のドキュメントを参照してください。
参考: Pricing
上限
Cloud IDS には以下の上限 (Quotas) が設定されています。
コンソールの 割り当て 画面から緩和リクエストを送信することが可能です。
- ゾーンあたりの IDS エンドポイント数: デフォルト 10
- 分あたりの API リクエスト数: デフォルト 1,200
セットアップ
セットアップ手順
セットアップ方法は以下のドキュメントを参考にしてください。
大まかな流れは以下のとおりです。
IDS エンドポイントの作成時に待ち時間が 10 分ほどありますが、全体としては 30 分程度で構築することができます。
- Private service access を作成 (Cloud SQL などで既存のものがあれば利用可能)
- IDS エンドポイントを作成
- Packet mirroring policy を作成
動作確認
Google Compute Engine (GCE) のコンソールで対象 VM を選択し オブザーバビリティ タブを選択すると対象 VM の Cloud Monitoring メトリクス (指標) を見ることができます。
その中に Packet Monitoring
という項目があります。
ここを見ると、対象 VM からパケットが IDS エンドポイントを通じてミラーリングされていることが分かります。
また、脅威が確実に検知されることを確かめるため、以下のコマンドを VM 上で実行しましょう。
curl http://example.com/cgi-bin/../../../..//bin/cat%%20/etc/passwd
しばらくすると Cloud IDS のコンソール画面で検知が High として脅威されていることが表示されます。
対象アラートをクリックすると、詳細を表示することができます。
参考: Troubleshooting
杉村 勇馬 (記事一覧)
執行役員 CTO / クラウドソリューション部 部長
元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。
Follow @y_sugi_it