こんにちは! GIMLEチームの太田です。
いよいよ年末も近づいてきて、クリスマスムード一色になってきましたね!
師走ということで忙しない日々が続いていますが、残り少ない2022年を精一杯楽しんでいきたいものですね(≧◡≦)
さて、最近業務の中でGoogle CloudやAzureに触れる機会が増えつつあります。
先日も、Google CloudのSecurity Command Centerというサービスを調査する機会がありましたので、その情報を共有したいと思い、筆をとりました。
今回は、
「Google Cloudでセキュリティの継続的改善を実践していく第一歩として、Security Command Center の概要を知り、また、その活用方法を考えてみよう」
をテーマに記事を書いていこうと思います。
それでは早速いってみましょう!
- はじめに
- 登場するGoogle Cloudのサービス・用語
- Security Command Center の概要
- スタンダードティアで使用できる機能
- プレミアムティアで使用できる機能
- Security Command Centerと連携するサービス
- 実際に、どう活用するか
- おわりに
- 参考情報リンクまとめ
はじめに
Security Command Centerは、Google Cloudの環境を自動的にスキャンして、構成のミスや認証情報漏洩の可能性などの脆弱性を検知して一覧化してくれるサービスです。
本記事では以下のような流れで、このSecurity Command Centerについて見ていった後、実際に、どう活用するかを考えてみたいと思います。
- Security Command Center の概要
- スタンダードティアで使用できる機能
- プレミアムティアで使用できる機能
- Security Command Centerと連携するサービス
登場するGoogle Cloudのサービス・用語
Security Command Center以外で登場するサービス・用語です。
- Cloud Asset Inventory
- Google Cloud上に作成したアセット(リソース・ポリシー・ランタイム情報)について、メタデータや変更履歴などを閲覧・エクスポートできるサービスです。
- Cloud Logging
- Google Cloud上のシステムが生成したログを収集、保管、管理するためのサービスです。
- BigQuery
- 大量のデータを保管し、分析の処理ができるデータウェアハウスのサービスです。
- Google Kubernetes Engine(GKE)
- Kubernetesを使用してコンテナを実行するための環境を提供してくれるサービスです。
- Container-Optimized OS
- GKEの実行環境におけるノードにて使用できる、OSイメージです。
- Cloud Load Balancing
- ネットワークトラフィックを複数のバックエンドに分散させる、ロードバランサーのサービスです。
Security Command Center の概要
まずは 公式のドキュメント から、Security Command Center の特長を引用してみます。
Security Command Center は、脆弱性と脅威の報告を一元的に行う Google Cloud のサービスです。Security Command Center は、セキュリティとデータの対象領域を評価し、アセット インベントリとディスカバリを提供します。構成ミス、脆弱性、脅威を特定することにより、セキュリティ体制を強化し、リスクを軽減して修正するのに役立ちます。
システムを運用する上で、リソースの洗い出しやセキュリティリスクの特定、リスクへの対処方法検討などを助けてくれるようなサービス、というイメージです。
ISMS に則ってリスク管理されている企業も多いかと思いますが、ISMS運用の際にも役立つのではないでしょうか。
実際に利用するときは、Google Cloudの組織単位で有効化した後、組織配下のフォルダ・プロジェクト毎に機能の有効/無効を選択することができます。
また、サービスの料金体系として、無償で利用可能なスタンダードティアと年間単位のサブスクリプションとなるプレミアムティアの2つがあります。
ここからは、スタンダードティアとプレミアムティアでそれぞれ利用可能な機能について見ていきます。
スタンダードティアで使用できる機能
スタンダードティアでは、以下の機能が利用可能です。
- Security Health Analytics
- Cloud Anomaly Detection
- Web Security Scanner
Security Health Analytics
Security Command Centerのコアとなる機能です。
Cloud Asset Inventoryで確認できるGoogle Cloud内のリソースとIAMのポリシーをスキャンして、設定のミスや安全でない設定を検出してくれます。
バッチ・リアルタイム・混合の3つのモードを使用したスキャンが自動的に行われるとのこと。
実際の画面では、Security Command Center の [脆弱性] タブから確認できます。
なお、スタンダードティアでは重大度「高」の基本的なスキャン結果のみ検知可能。
プレミアムティアでは、全てのスキャン結果 + CISベンチマーク・PCI DSS・NIST・ISOなどの基準に対応したモニタリングおよびレポートが含まれます。
Cloud Anomaly Detection
Google Cloudで構築したシステムの外部からの情報を元に、認証情報漏洩の可能性や、暗号通貨のマイニングの可能性などの異常(Anomaly)な状態を検出してくれる機能です。
こちらは、Security Command Centerを有効化した際に自動的に有効になります。
Web Security Scanner
インターネットに公開されているGoogle Cloud上のWebアプリケーションに対してスキャンを行い、セキュリティの脆弱性を検知してくれるサービスです。
一般的な脆弱性診断における、Webアプリケーション診断を実施してくれるイメージに近いかと思います。
自動的に実行される "マネージドスキャン" と、手動で設定する "カスタムスキャン" と呼ばれる2つのスキャンタイプがあり、スタンダードティアではこの内の "カスタムスキャン" が利用可能です。
また、検知できる脆弱性についても、スタンダードティアでは一部のみとなります。
プレミアムティアで使用できる機能
プレミアムティアでは、スタンダードティアの機能に加えて、以下の機能が利用可能になります。
- Event Threat Detection
- Container Threat Detection
- Virtual Machine Threat Detection
- Sensitive Actions Service(プレビュー*1)
- Rapid Vulnerability Detection(プレビュー*2)
Event Threat Detection
Cloud LoggingおよびGoogle Workspaceのログをモニタリングして、脅威を検出するサービスです。
有効にするログの種類によって検出できる内容は変わってきます。
Cloud Audit LogsからBigQueryデータ漏洩リスクなどを検出をしたり、Google Workspaceのログからパスワード漏洩リスクなどの検出をしたりできます。
Container Threat Detection
Google Kubernetes Engineにて使用されるContainer-Optimized OSノードイメージの状態をモニタリングして、脅威を検出するサービスです。
ノードで起きたイベントを解析して、コンテナ上での不審なバイナリ・スクリプトの実行や、ライブラリの読み込みなどを検出してくれます。
Virtual Machine Threat Detection
VMインスタンスをスキャンして、VM内で実行されている不審なアプリケーション(暗号通貨マイニング ソフトウェアなど)を検出してくれるサービスで、上記のEvent Threat Detectionと、Container Threat Detectionの機能を補完するような設計となっています。
Virtual Machine Threat Detectionで検出される脅威は重大度が高く、すぐに修正することが推奨されています。
Sensitive Actions Service(プレビュー)
Cloud Loggingの中の監査ログをモニタリングして、ビジネスに影響を与える可能性がある、不審なアクションを検出するサービスです。
Google Cloudのユーザーアカウントによる操作を元にした検出ということで、内部不正対策の一環として利用できそうですね。
Rapid Vulnerability Detection(プレビュー)
インターネットに公開されているGoogle Cloud上のエンドポイント(仮想マシン・外部向けロードバランサー等)に対してスキャンを行い、セキュリティの脆弱性を検知してくれるサービスです。
週に1度自動でスキャンが実行されて、「Nデイ脆弱性*3」と呼ばれる脆弱性を検出してくれます。
Nデイ脆弱性は既に公開済みの脆弱性で、攻撃者にとっては容易に解析が可能であり、その分攻撃の対象にもなりやすいため、Rapid Vulnerability Detectionで検出される項目の重大度は高く、早急な修正が推奨されます。
Security Command Centerと連携するサービス
Google Cloudの他のセキュリティ系サービスにも、Security Command Centerと連携するものがありますので、少し記載します。
Cloud Armor
DDoS攻撃・XSS・SQLインジェクションなどの脅威から、アプリケーションを保護するための、WAF(Web Application Firewall)のサービスです。
自分で作成したルールや、事前構成されたルールを使用してアプリケーションの保護ができる他、Cloud Load Balancingの背後にある Web アプリケーションのDDoS保護が自動で受けられます。
こちらもスタンダードティア(Google Cloud Armor Standard)とプラスティア(Managed Protection Plus)の2種類の料金体系があり、スタンダードティアは従量課金制、プラスティアはサブスクリプション課金制となっています。
利用イメージとしては、最初はスタンダードから始めて、保護対象のリソースやリクエスト数が増えて、サブスクリプション課金の料金を超えそうならプラスティアを検討する、というような流れでしょうか。
Security Command Centerとは、Cloud Armorにて「許可されたトラフィック急増」と「拒否率増加」が検知された場合に、その検出結果を送信する、という形でサービス連携します。
Data Loss Prevention
個人情報など、機密性の高いデータを検出、分類、保護するためのサービスです。
BigQueryのテーブルをスキャンして機密データを自動検出したり、テキストや画像に含まれるセンシティブなデータをマスキングしたりできます。
Security Command Centerとは、スキャンジョブの作成時に設定できるアクションにて、「Security Command Centerに公開」を選択することで、スキャン後に検出結果を送信する、という形でサービス連携します。
実際に、どう活用するか
ここからは、Security Command Centerの機能を、システム開発・運用する上でどのように活用していくかを考えてみたいと思います。
と、その前に……ここまでで見てきた要素に、検出されたリスクの通知機能を加えて、サンプルの構成図にまとめてみました。
図を見てもわかるように、Security Command Centerは、様々なリソースをスキャンして検知されたリスクを、一箇所に集約して管理できるサービスになっています。
ユースケースとしては以下のような使い方が思い浮かびます。
- システム開発時、開発者が、検出されたリスクを確認・改善しながら開発を進める
- システム運用時、セキュリティ運用者が、検出されたリスクを確認して、改善対応を行う
開発〜運用の各フェーズにわたって、継続的にリスクの検出・確認・改善を繰り返して実践していく。
その実践の中で、開発者も運用者もセキュリティへの意識・知識を深めていくことができるのではないかと思います。
上記は一例ではありますが、このようにSecurity Command Centerを活用することで、システムのライフサイクル全般にわたってセキュリティのレベルを上げることが可能になりそうだと感じた次第です。
実践してみる
ここでは、実際にSecurity Command Center(スタンダードティア)を使用して、検出されたリスクの確認と改善を実践してみようと思います。
Security Command Centerの画面にある [ソース] タブでは、検出されたリスクが、サービスごとに表示されています。
今回は、Security Health Analyticsで検出されている、OPEN_RDP_PORT
を修正していきます。
検出されたリスクの確認
まずは、リスクの内容を確認してみましょう。
ソースタブにて表示されている検出項目を選択すると、検出タブの画面に遷移します。
そこでもう一度項目を選択して、詳細内容を表示します。
リスクの詳細画面にて概要と改善の手順を確認した後は、改善の手順に沿って作業していきます。
ただし、実際の運用上では、組織における運用業務のルールやインフラ構成の状況に合わせて、改善作業を進めていくことになります。
以下の作業はあくまで参考例としてご覧ください。
なお、Security Health Analyticsにて検出されるリスクと改善の手順については、Security Health Analytics の検出結果を修正する でも確認可能です。
検出されたリスクの改善
手順に沿って、ファイアウォール ルールの編集を行います。
リスクの詳細画面にあるリンクから、ファイアウォール ルールの画面に移動します。
ファイアウォール ルールの画面で、[編集] を選択します。
[送信元 IPv4 範囲] から、0.0.0.0/0
を削除します。
ネットワークへの接続を許可する特定のIPアドレスまたはIP範囲、およびプロトコル・ポートを指定します。
ここでは例として以下の設定にしました。
- IP範囲 : 192.168.2.0/24
- プロトコル : TCP(変更なし)
- ポート : 3389(変更なし)
設定が完了したら [保存] を選択して、設定内容を保存します。
これで、OPEN_RDP_PORT
の改善作業が完了しました。
再度Security Health Analyticsの自動スキャンが動いた後に、リスクが解消されていればOKですね。
しばらくすると、無事 OPEN_RDP_PORT
のリスクが解消されていました!
おわりに
以上、今回はGoogle CloudのSecurity Command Centerについて、関係する様々なサービスと一緒に見てきました。
スタンダードティアは無料で使用できますし、Google Cloudでシステムを構築する際にはとりあえず有効にしておくと、システム自体の成長に合わせたセキュリティの継続的改善もやりやすくなるのではないでしょうか。
また、最初の方にも記載したのですが、Security Command Centerは、Google Cloudの組織単位・組織配下のフォルダ・プロジェクト単位で有効/無効が設定可能です。
うまく活用すれば、組織全体にわたるセキュリティレベル向上にも役立ちそうなサービスだなと感じました。
他のセキュリティ関係のサービスも本当にたくさんあって、ドキュメントを読むだけでも大変でしたが、実現したいこととその全体像をしっかり見据えつつ、今後のサービス選定に生かせたら良いなと思います。
最後に、Security Command Centerの機能とそのスキャン対象、スタンダードティアとプレミアムティアの違いについて表にもまとめてみたので、そちらを貼り付けて、今回の記事は終了とさせていただきます。
機能 | スキャン・モニタリングの対象 | スタンダードティア | プレミアムティア |
---|---|---|---|
Security Health Analytics | Google Cloud内のリソース・IAMのポリシー | 一部の検出結果のみ対応 | 全ての検出結果に対応 |
Cloud Anomaly Detection | システムの外側からの動作信号 | ○ | ○ |
Web Security Scanner | Webアプリケーション | カスタムスキャンのみ対応 | マネージドスキャンおよびカスタムスキャンに対応 |
Event Threat Detection | Cloud Logging および Google Workspace のログ | x | ○ |
Container Threat Detection | Google Kubernetes Engine内のノード | x | ○ |
Virtual Machine Threat Detection | VMインスタンス | x | ○ |
Sensitive Actions Service | Cloud Loggingの監査ログ | x | ○ |
Rapid Vulnerability Detection | インターネットに公開されているGoogle Cloud上のエンドポイント | x | ○ |
それでは、またお会いしましょう!
参考情報リンクまとめ
Security Command Center 関連
Google Cloudのサービス関連
- Cloud Asset Inventory
- Cloud Logging
- BigQuery
- Google Kubernetes Engine(GKE)
- Cloud Load Balancing
- Cloud Armor
- Cloud Data Loss Prevention