Security Command Centerを徹底解説。Google Cloud(GCP)の脆弱性を自動検知

記事タイトルとURLをコピーする

G-gen の杉村です。 Google Cloud (旧称 GCP) のセキュリティサービスである Security Command Center は Google Cloud 環境の構成ミス、脆弱性、脅威を特定するためのサービスです。今回はこの Security Command Center (通称 SCC)を徹底解説します。

Security Command Center 概要

Security Command Center とは

Security Command Center は Google Cloud 環境を自動的にスキャンして、構成ミスなどを自動検知して一覧化してくれるサービスです。

Google Cloud 環境で組織 (Organization) を構成していることが利用の前提条件です。

無償で使える スタンダードティア と有償の プレミアムティア の 2 種類の料金体系があり、使える機能に差があります。料金体系については後述します。

有効化

Security Command Center は 組織レベルで有効化 もしくは プロジェクトレベルで有効化 することで利用できます。

ただし、組織レベルとプロジェクトレベルでは一部の機能差がありますので ドキュメント をご参照ください。

スタンダードティア

スタンダードティアでは、以下のような機能が含まれています。

  • Security Health Analytics : Google Cloud の ID (アカウント) や権限 (IAM) 周り、ネットワーク、データ管理などに関する設定ミス、危険な設定などを検知してくれる
  • Web Security Scanner custom scans : Web アプリケーションに対して簡易的な脆弱性診断を行う (スタンダードでは手動のみ)
  • Anomaly Detection : 異常検知。サービスアカウントの漏洩や VM での不正な暗号通貨マイニングなどの検知
  • Cloud Data Loss Prevention (DLP), Cloud Armor など他の Google Cloud サービスとの統合
  • オープンソースの Google Cloud 用セキュリティツールである Forseti Security との統合

プレミアムティア

プレミアムティアでは、スタンダードティアの機能に加えて以下のような機能が含まれています。

  • Security Health Analytics : スタンダードティアより強化され PCI DSS や CIS といった共通規格に準じた検知
  • Web Security Scanner : スタンダードティアより強化 (自動スキャンも可能)
  • Event Threat Detection : Cloud Logging や Google Workspace を機械学習等を用いて監視してマルウェア活動やデータ抜き取りなどの異常挙動を検知
  • Container Threat Detection : コンテナに関する不審な挙動を検知
  • 検知内容の Cloud Pub/Sub への定期的なエクスポート
  • Virtual Machine Threat Detection (VMTD) : ハイパーバイザレイヤからのメモリ検査によりVM内で仮想通貨マイニングを検知

コンプライアンス標準とのマッピング

前述の各機能により検出された検出結果は、以下のようなコンプライアンス標準規格にマッピングされます。
検出結果ごとに「この結果はこの標準規格に違反している可能性があるよ」とコンソール画面に表示されることをイメージしてください。

  • CIS ベンチマーク
  • PCI DSS
  • OWASP Top 10
  • NIST 800-53
  • ISO 27001

検知内容がどの標準規格に関係するか右側の列に表示されている

CIS ベンチマーク は、 CIS (Center for Internet Security 、米国の 国家安全保障局 (NSA) や米国立標準技術研究所 (NIST) 、学術団体などが設立した非営利団体) が定義するベンチマークです。
Amazon Web Services (AWS) における Security Command Center の類似サービスである AWS Security Hub でも、セキュリティ基準として利用されています。

PCI DSS はクレジットカード情報を扱うためのグローバルなセキュリティ基準です。
クレジットカードを扱うシステムに関わった方であれば、一度は耳にし、認証取得に苦労したこともあるでしょう。

OWASP Top 10 は米国の非営利団体である OWASP Foundation が定期的に発行しているセキュリティレポートで、日本でも広く参照されています。
この団体から提供されているオープンソースの脆弱性診断ツールである OWASP ZAP は、セキュリティの教則本でもハンズオンに利用されているのをよく目にします。

NIST 800-53 は米国の政府機関である米国立標準技術研究所 (NIST) が、米国連邦政府の情報システムのセキュリティ基準として定義したものです。

ISO 27001 は日本で ISMS として知られる認証の国際規格として有名ですね。

Security Command Center では各種の検知結果をこのようなコンプライアンス標準にマッピングしてくれるので、認証取得などに向けて環境を整備したり、継続的なモニタリングにも活用できます。

料金

スタンダードとプレミアム

Security Command Center のスタンダードティアは 無料 です。一方のプレミアムティアは 有償 です。

それぞれの機能差は、前述の「Security Command Center 概要」に記載のとおりです。

プレミアムティアは 組織全体で有効化する か、プロジェクトのレベルで有効化する かを選択することができ、それぞれ料金単価が異なります。

プレミアムティアの料金

Security Command Center Premium Tier の料金は「定額のサブスクリプション」または「使用量ベースの課金」のいずれかから選択できます。

定額サブスクリプションを利用するには、Google Cloud の営業または販売パートナーへ連絡します。

基本となる使用量ベースの課金では、単価が設定されている以下のサービスの使用ボリュームに応じて課金が発生します (2023年6月現在)。

サービス名 課金対象リソース
Compute Engine CPU vCore / 時間
Google Kubernetes Engine (Autopilot) CPU vCore / 時間
Cloud SQL CPU vCore / 時間
App Engine (Standard) インスタンス / 時間
App Engine (Flex) CPU vCore / 時間
Cloud Storage Class A/B オペレーション数
BigQuery (オンデマンド) スキャンデータ TB 数
BigQuery (Editions) スロット / 時間
BigQuery (Flat-rate) スロット / 月

料金単価は、Security Command Center を組織レベルで有効化するかプロジェクトレベルで有効化するかによって異なります。例えば Compute Engine の vCPU コア数あたりの単価は、組織レベルでは $0.0057/hour、プロジェクトレベルでは $0.0071/hour です (いずれも2023年6月現在)。

なお上記は 2023年6月現在の情報です。最新の料金は以下の公式ページでご確認ください。

なお上記の料金体系は2023/06/08のアップデートに伴い制定されたものです。それ以前はプレミアムティアを組織レベルで有効化する場合「Google Cloud 全体の利用料金の 5 % または $15,000/年 の高い方」「1年または複数年のサブスクリプション」というものでした。現在では使用量ベースの課金が基本であり、サブスクリプション形式の課金は料金含めお問い合わせが必要である点にご留意ください。

Security Command Center の運用

Security Command Center は、ただ有効化しただけではセキュリティリスクを「検知すること」しかできません。

検知内容を正しく理解して Google Cloud の設定をセキュアな状態に変更するなど、通知されたリスクに具体的に対処する運用が必要になります。

しっかりしたスキルに基づく運用体制を築いたり、自動対処の仕組みを構築しない限り、Security Command Center が「オオカミ少年」になってしまうことに注意が必要です (これは、通知がノイズとして捉えられてしまい、対処が取られなくなってしまう状態の比喩です)。

適切な運用体制とフローを確保し、通知内容に対する適切な対処を継続的に行うことで初めて、Security Command Center は価値を発揮します。

Security Health Analytics

Security Health Analytics とは

数ある Security Command Center の機能の中でも、コアとなるのがこの Security Health Analytics です。
Security Health Analytics は Google Cloud 環境をスキャンすることで、設定ミスやセキュアでない設定を検知する機能です。

検出機能の一覧は、以下の公式ドキュメントに記載されています。

上記ドキュメントでは検出機能ごとに、どのような機能なのか、スタンダードティアで利用可能なのか、プレミアムティアへの登録が必要なのか、またリアルタイムスキャンが行われるのか、などが一覧化されています。

なおバックエンドでは Google Cloud リソースのメタデータを管理する仕組みである Cloud Asset Inventory (CAI) という仕組みが使われています。
また、 検査対象の対象となるサービス は以下の通りです。

  • Cloud Monitoring and Cloud Logging
  • Compute Engine
  • Google Kubernetes Engine containers and networks
  • Cloud Storage
  • Cloud SQL
  • Identity and Access Management (IAM)
  • Cloud Key Management Service (Cloud KMS)
  • Cloud DNS

検出機能の例

前掲のドキュメントから、検出機能の例をいくつか挙げます。
なお以下に挙げているものは、スタンダードティアで利用可能なもののみです。
プレミアムティアではさらに多数の検出機能があります。

  • PUBLIC_COMPUTE_IMAGE : Compute Engine イメージが一般公開されてしまっている
  • OPEN_SSH_PORT : VPC のファイアウォールで 22/TCP や 22/SCTP ポートが開いている
  • NON_ORG_IAM_MEMBER : "@gmail.com" メールアドレスのアカウントに IAM 権限が付与されている
  • MFA_NOT_ENFORCED : MFA が有効になっていないユーザーが存在
  • PUBLIC_BUCKET_ACL : 一般公開されている Cloud Storage バケットが存在

3 つのスキャン

Security Health Analytics は以下の 3 つのモードでスキャンを実行します。

  1. バッチスキャン ( 1 日 2 回以上の頻度)
  2. リアルタイムスキャン (リソースの変更と同時にスキャン)
  3. 混合 (バッチとリアルタイムの混合)

3 つのスキャンは、検出機能に応じて自動的に使い分けられます。
検出機能によっては、バッチスキャンのみでリアルタイムスキャンに対応していないものもあります。
前掲の検出機能一覧に、対応しているスキャンタイミングが記載されています。

Web Security Scanner

Web Security Scanner とは

Web Security Scanner は Google Compute Engine (GCE) や App Engine (GAE) 、Google Kubernetes Engine (GKE) でホストされている Web アプリケーションに対して、アプリケーションレベルの脆弱性スキャンをかける機能です。
ただし、スキャンできる対象はインターネットに公開されている Web アプリのみですので、ローカルネットワーク内で使われる社内システム等には使用できません。

2 つのスキャン

Web Security Scanner には「マネージドスキャン」と「カスタムスキャン」があります。

前者のマネージドスキャンは、週 1 回の自動スキャンです。認証なし、 GET リクエストのみ、という制限があります。プレミアムティアでのみ利用できます。

後者のカスタムスキャンは、手動設定によるスキャンです。認証情報を用いて検査ができます。スタンダードティアでも使用できますが、一部機能が制限されています。

検出結果

OWASP Top 10 に準じた検出を行うことができます。以下のドキュメントに、検出結果の一覧があります。

例として以下のようなものがあります。

  • OUTDATED_LIBRARY : 既知の脆弱性があるライブラリが検出された。
  • SERVER_SIDE_REQUEST_FORGERY : サーバー側のリクエスト フォージェリ(SSRF)の脆弱性が検出された。
  • XSS : このウェブ アプリケーションのフィールドは、クロスサイト スクリプティング(XSS)攻撃に対して脆弱である。

注意点

スキャンを実行すると、フォームへの入力、ボタン押下、リンクへのアクセスなど、一般ユーザーの動きを模したリクエストが行われます。
そのため、 本番環境に思わぬ破壊的な結果を及ぼすおそれもゼロではありません (これは Security Command Center だけに言えることではなく、通常の脆弱性診断でも同じです) 。

公式ドキュメントでは ベストプラクティス として以下が紹介されています。

  1. テスト環境でのスキャン実行
  2. テストアカウントの利用
  3. CSS クラス inq-no-click の利用
  4. スキャン前のバックアップ
  5. テストを行わない URL パターンの指定

Anomaly Detection

Anomaly Detection とは

Security Command Center を有効化すると、スタンダードティア・プレミアムティアの両方で自動的に Anomaly Detection の機能が有効化されます。
主に Google Cloud 外部からの情報を元に異常検出する機能です。

「サービスアカウントのクレデンシャル情報の流出」「 Google Cloud リソースが暗号通貨のマイニングに利用されている」などの検知内容があります。
ただし、検知の仕組みはブラックボックスであり、公式ドキュメントでは公開されていません。
Google が自社サービスでも用いているであろう様々な技術によって、これらの検知を行っていると考えられます。

検知内容の例

  • account_has_leaked_credentials : Google Cloud サービスアカウントのクレデンシャル情報がオンラインに漏洩または不正利用されている
  • resource_compromised_alert : 組織内のリソースが不正利用されている可能性あり
  • resource_involved_in_coin_mining : 組織内の VM が暗号通貨の採掘に使われている予兆あり
  • outgoing_intrusion_attempt : 組織内のリソースが外部への攻撃 (SSH ブルートフォース、ポートスキャン、 FTP ブルートフォース等) に使われている予兆あり
  • resource_used_for_phishing : 組織内のリソースがフィッシング攻撃に使われている

Event Threat Detection

Event Threat Detection とは

Event Threat Detection は、 Cloud Logging および Google Workspace ログを監視し、機械学習等により検査することで、ニアリアルタイムで脅威を検知する仕組みです。
プレミアムティアのみで利用することができます。

「BigQuery からのデータの持ち出し」「 VM から発生したマルウェアによる通信」「 Google Workspace グループの安全でない権限設定」「政府に支援された攻撃と疑われるアクション」などを検知することができます。

検出結果は Security Command Center コンソール等で確認できる他、 Cloud Logging に出力されたり、 Pub/Sub にパブリッシュしたりできるため、後続アクションの自動化などにも繋げられます。

前述の Security Health Analytics と、この Event Threat Detection の違いですが、前者が Cloud Asset Inventory (CAI) にある構成情報を元に検査するのに対して、後者は Cloud Logging や Google Workspace のログを検査してアクティビティを検知する、という違いだと言えます。

検知内容の例

以下のドキュメントに、検知可能な内容がリストされています。

そのうちのいくつかを例示します。

  • DATA_EXFILTRATION_BIG_QUERY : BigQuery からデータが組織外へコピーされる等。 Cloud Audit Logs から検知。
  • MALWARE_BAD_DOMAIN : マルウェア通信と疑われるドメインへの通信。 Cloud DNS のログから検知。
  • ANOMALOUS_ACCESS : Tor など匿名化されたプロキシの IP から Google Cloud リソースが変更された。 Cloud Audit Logs から検知。
  • BRUTE_FORCE_SSH : VM の SSH にブルートフォース攻撃。 Cloud Logging にエクスポートされた syslog から検知。
  • SUSPICIOUS_LOGIN : 疑わしいログインが発生。 Google Workspace ログから検知。
  • 2SV_DISABLE : ユーザーが 2 段階認証を無効化した。 Google Workspace ログから検知。

検査対象のログの有効化

Event Threat Detection は、 Google Workspace のログや Cloud Logging のログを使って脅威を検知します。
Cloud Audit Logs の管理アクティビティ監査ログ (Admin Activity audit logs) はデフォルトで ON になっており Cloud Logging に出力されるので、何も設定しなくても自動的に検知対象になります。

しかし、以下のようなログは必要に応じて ON にする必要があります。

  • SSH logs/syslog (Ops Agent / Cloud Logging Agent 経由で Cloud Logging にエクスポート)
  • データアクセス監査ログ (Cloud Audit Logs)
  • VPC flow logs
  • Cloud DNS logs
  • Firewall Rules logs
  • Cloud NAT logs

これらのログは明示的に有効化しないと出力されません。出力されていないと当然、 Event Threat Detection の検査対象にもなりません。
出力によるログ料金の増大を理解しながら、必要に応じて ON にする必要があります。

なお Cloud Audit Logs については以下の記事で解説していますので、ご参照ください。

blog.g-gen.co.jp

またログ出力先となる Cloud Logging については以下の記事で解説していますので、ご参照ください。

blog.g-gen.co.jp

Container Threat Detection

Container Threat Detection とは

Container Threat Detection は Google Kubernetes Engine (GKE) におけるコンテナ稼働用ノードのモニタリングを行い、ノード上の変更やコンテナランタイムに対する攻撃をニアリアルタイムで検知します。
コンテナノードで実行されるバイナリやコンテナにロードされるライブラリの検査や、 NLP (自然言語処理) による bash スクリプトの検査などが行われます。

Container Threat Detection はプレミアムティアのみの機能です。

サポートしている GKE のバージョン等は ドキュメント をご参照ください。

検知できる内容

以下のような内容が 検知対象 となります。

  • Added Binary Executed : オリジナルのコンテナイメージに無いバイナリが実行された
  • Added Library Loaded : オリジナルのコンテナイメージに無いライブラリがロードされた
  • Malicious Script Executed : 悪意ある bash スクリプトが実行された
  • Reverse Shell : リモートのソケットへのストリームリダイレクションを行うプロセスが開始された

Virtual Machine Threat Detection (VMTD)

Virtual Machine Threat Detection (VMTD) とは

Virtual Machine Threat Detection (VMTD) はハイパーバイザレイヤからのメモリ検査によりVM内で仮想通貨マイニングを検知できる機能です。

検知できる内容

いずれもメモリからのパターンマッチで仮想通貨のマイニングを検知します。詳細は ドキュメント をご参照ください。

  • Execution: Cryptocurrency Mining Hash Match
  • Execution: Cryptocurrency Mining YARA Rule
  • Execution: Cryptocurrency Mining Combined Detection

VM の脆弱性レポート

VM Manager の脆弱性レポート 機能では、Google Compute Engine (GCE) を統合管理する機能である VM Manager を利用し、エージェントにより VM 内をスキャンして OS レベルの脆弱性を検知することができます。

2023年6月現在では Preview 公開であることにご留意ください。

詳細は、以下のドキュメントを参照してください。

Cryptomining Protection Program

Security Command Center Cryptomining Protection Program は、Premium Tier 利用中のユーザに Google から提供される、補償プログラムです。

このプログラムに参加すると、Compute Engine VM 環境や Google Kubernetes Engine 環境において万が一クリプトマイニング (Crypto Mining、仮想通貨をマイニングするために不正にコンピュートリソースを使用する攻撃) が行われてしまった際において、Security Command Center Premium を適切に設定していたのにも関わらず検知されなかった場合、Google Cloud クレジットでの補填を受けることができます。

プログラムの参加要件などの詳細は、以下のドキュメントをご参照ください。

杉村 勇馬 (記事一覧)

執行役員 CTO / クラウドソリューション部 部長

元警察官という経歴を持つ現 IT エンジニア。クラウド管理・運用やネットワークに知見。AWS 12資格、Google Cloud認定資格11資格。X (旧 Twitter) では Google Cloud や AWS のアップデート情報をつぶやいています。