セキュリティ状況の分析を使用する

Security Command Center を使用して Security Health Analytics の検出結果を管理します。Security Health Analytics は、Security Command Center の組み込みサービスです。Security Health Analytics の検出結果を表示するには、Security Command Center の [サービス] 設定で有効にする必要があります。

次の動画では、Security Health Analytics の設定手順とダッシュボードの使用方法を示しています。Security Health Analytics の検出結果の表示と管理の詳細については、このページの後半をご覧ください。

Security Health Analytics 検出器からの検出結果は、Security Command Center のダッシュボードと、Security Command Center API を使用しての検索が可能です。

スキャンは、Security Command Center が有効になってから約 1 時間後に開始し、2 つのモードで実行されます。バッチモードは、毎日 2 回、12 時間間隔で自動的にスキャンを実行します。リアルタイム モードは、アセット構成の変更に対してスキャンを実行します。リアルタイム スキャンモードをサポートしていない Security Health Analytics の検出項目は、Security Command Center レイテンシの概要に記載されています。

Security Command Center のロールは、組織レベル、フォルダレベル、またはプロジェクト レベルで付与されます。検出結果、アセット、セキュリティ ソース、セキュリティ マークを、表示、編集、作成、更新する権限は、アクセス権が付与されるレベルによって異なります。Security Command Center のロールの詳細については、アクセス制御をご覧ください。

料金ティア別の機能

Security Health Analytics は、マネージド 脆弱性の評価スキャン機能を提供します。このスキャンでは、Google Cloud アセットの最も重大な脆弱性と構成ミスを自動的に検出します。

Security Command Center のスタンダード ティアでは、Security Health Analytics に含まれるのは高重大度の検出項目の基本的なグループのみです。プレミアム ティアにはすべての Security Health Analytics 検出項目が含まれており、業界のベスト プラクティスとベンチマークのコンプライアンス レポートが追加されます。

ティアの切り替え

ほとんどの Security Health Analytics 検出項目は、Security Command Center Premium でのみ使用できます。プレミアムのお客様でスタンダード ティアに切り替える予定がある場合は、サブスクリプションを変更する前にすべての検出結果を解決することをおすすめします。

プレミアム検出項目によって生成された検出結果は、スタンダード ティアで自動的に解決できません。これは、プレミアム ティアのダウングレード後、またはトライアル終了後、Security Health Analytics が組織でプレミアム検出項目を実行しなくなるためです。これらの検出結果は更新されず、アクティブのままです。手動で検出結果を非アクティブにするには、Security Command Center ダッシュボードの [検出結果] タブに移動します。

検出項目を有効または無効にする

次のセキュリティ状況分析検出は、デフォルトでは有効になっていません。

  • BUCKET_CMEK_DISABLED
  • DATASET_CMEK_DISABLED
  • DISK_CMEK_DISABLED
  • DISK_CSEK_DISABLED
  • NODEPOOL_BOOT_CMEK_DISABLED
  • PUBSUB_CMEK_DISABLED
  • SQL_CMEK_DISABLED
  • SQL_NO_ROOT_PASSWORD
  • SQL_WEAK_ROOT_PASSWORD

検出項目(モジュールとも呼ばれる)を有効にするには、 gcloud コマンドライン ツールで次の gcloud alpha command を実行します。

  gcloud alpha scc settings services modules enable \
    --organization=ORGANIZATION_ID \
    --service=SECURITY_HEALTH_ANALYTICS \
    --module=DETECTOR_NAME

以下を置き換えます。

  • ORGANIZATION_ID: 組織 ID
  • DETECTOR_NAME: 有効にする検出項目の名前

検出項目を無効にするには、modules disable コマンドを実行します。

  gcloud alpha scc settings services modules disable \
    --organization=ORGANIZATION_ID \
    --service=SECURITY_HEALTH_ANALYTICS \
    --module=DETECTOR_NAME

以下を置き換えます。

  • ORGANIZATION_ID: 組織 ID
  • DETECTOR_NAME: 無効にする検出項目の名前

検出項目を無効にすると、アクティブな検出結果の状態に影響を与える可能性があります。検出項目を無効にすると、既存の検出結果は非アクティブとしてマークされます。

また、特定のフォルダやプロジェクトに対して、Security Health Analytics や特定の検出項目を無効にすることもできます。フォルダとプロジェクトで Security Health Analytics または検出項目をオフにしている場合、それらのリソース内のアセットに添付されている既存の検出結果は非アクティブとしてマークされます。

Security Command Center で検出結果をフィルタする

大規模な組織では、デプロイ全体にわたって確認、トリアージ、追跡が必要な多数の脆弱性が存在する場合があります。使用可能なフィルタとともに Security Command Center を使用することで、組織全体で重大度の高い脆弱性に焦点を当て、アセットの種類ごとやセキュリティ マークごとに、脆弱性を確認できます。

Security Health Analytics の検出器と検出結果の完全なリストについては、Security Health Analytics の検出結果ページをご覧ください。

セキュリティ状況の分析結果をプロジェクトごとに表示する

プロジェクトごとに Security Health Analytics の検出結果を表示する手順は次のとおりです。

  1. Cloud Console の Security Command Center に移動します。

    Security Command Center に移動

  2. Security Health Analytics の検出結果を表示するには、[脆弱性] タブをクリックします。

  3. [プロジェクト フィルタ] で [プロジェクト フィルタにプロジェクトを追加]()をクリックします。

  4. 表示される検索ダイアログで、検出結果を表示するプロジェクトを選択します。

[脆弱性] タブに、選択したプロジェクトの検出結果のリストが表示されます。

種類ごとに Security Health Analytics の検出結果を表示する

Security Health Analytics の検出結果をカテゴリ別に表示する手順は次のとおりです。

  1. Cloud Console の Security Command Center に移動します。

    Security Command Center に移動

  2. Security Health Analytics の検出結果を表示するには、[脆弱性] タブをクリックします。

  3. [カテゴリ] 列で、検出結果を表示する検出タイプを選択します。

[検出] タブに、選択した種類に一致する検出結果のリストが読み込まれて表示されます。

検出結果をアセットタイプごとに表示する

特定のアセットタイプに関する Security Health Analytics の検出結果を表示する手順は次のとおりです。

  1. Cloud Console で Security Command Center の [検出] ページに移動します。

    検出に移動

  2. [表示] の横にある [ソースの種類] をクリックし、[Security Health Analytics] を選択します。

  3. [フィルタ] ボックスに、「resourceName: ASSET_TYPE」と入力します。たとえば、すべてのプロジェクトの Security Health Analytics の検出結果を表示するには、「resourceName: projects」と入力します。

検出結果のリストが更新され、指定したアセットタイプのすべての検出結果が表示されます。

重大度別に Security Health Analytics の検出結果を表示する

Security Health Analytics の検出結果を重大度別に表示する手順は次のとおりです。

  1. Cloud Console の Security Command Center に移動します。

    Security Command Center に移動

  2. Security Health Analytics の検出結果を表示するには、[脆弱性] タブをクリックします。

  3. 検出結果を重要度で並べ替えるには、[重要度] 列の見出しをクリックします。検出値は HIGHMEDIUMLOW です。

検出結果の種類について詳しくは、脆弱性の検出をご覧ください。Security Command Center には、セキュリティ マークのようなカスタム プロパティなど、多くの組み込みプロパティも用意されています。

重大な脆弱性でフィルタリングした後、Security Command Center で脆弱性を選択して、検出結果に関する詳細情報を表示できます。この情報には、脆弱性の説明とリスクに関する説明、修正の推奨事項が記載されています。

セキュリティ マークによるアセットと検出結果のマーキング

セキュリティ マークを使用することで、Security Command Center の検出結果とアセットにカスタム プロパティを追加できます。セキュリティ マークを使用すると、本番環境のプロジェクト、バグやインシデントの追跡番号を含むタグなど、優先度の高い分野を特定できます。

許可リストにアセットを追加する

専用のセキュリティ マークをアセットに追加して、検出器がこれらのアセットのセキュリティ検出結果を生成しないようにすることもできます。専用マークがアセットに適用されると、アセットは Security Health Analytics の許可リストに追加され、それらのアセットの検出結果は、次のバッチスキャンが実行されたときに解決済みとしてマークされます。許可リストは、分離されたアセットや許容されるビジネス パラメータに含まれるアセットのセキュリティ検出結果を確認したくない場合に便利です。

専用のセキュリティ マークは、このページの許可リストの仕組みで説明されているように、検出結果ではなくアセットに直接適用する必要があります。検出結果にマークを適用しても、基盤となるアセットは検出結果を生成できます。

許可リストの仕組み

各 Security Health Analytics 検出器には、allow_FINDING_TYPE:true の形式で許可リスト専用のマークタイプがあります。この専用のマークをアセットに追加すると、そのアセットを検出ポリシーから除外できます。たとえば、検出タイプ SSL_NOT_ENFORCED を除外するには、関連する Cloud SQL インスタンスでセキュリティ マーク allow_ssl_not_enforced:true を設定します。指定された検出器では、マークされたアセットの検出結果は作成されません。

検出結果の種類の完全なリストについては、このページで先に説明した Security Health Analytics 検出項目のリストをご覧ください。セキュリティ マークとそのセキュリティを使用する手法についての詳細は、セキュリティ マークの使用をご覧ください。

アセット タイプ

このセクションでは、さまざまなアセットに対するセキュリティ マークがどのように機能するかについて説明します。

  • アセットを許可リストに追加する: Cloud Storage バケットやファイアウォールなどのアセットに専用マークを追加すると、次のバッチ スキャンの実行時に関連する検出が解決済みのマークが付けられます。マークが削除されるまで、検出項目によって新しい検出結果が生成されたり、アセットの既存の検出結果が更新されたりすることはありません。

  • プロジェクトを許可リストに追加する: プロジェクト リソースにマークを追加すると、プロジェクト自体がスキャンされたリソース、つまりターゲット リソースが解決されます。ただし、仮想マシンや暗号鍵など、プロジェクト内に含まれるアセットでは、引き続き検出結果が生成されます。

  • フォルダを許可リストに追加する: フォルダ リソースにマークを追加すると、フォルダ自体がスキャンされた、または、ターゲット、リソースである検出結果が解決されます。 ただし、フォルダ内のアセット(プロジェクトを含む)であっても、検出結果が生成される可能性があります。

  • 複数のアセットをサポートする検出項目: 複数のアセットタイプをサポートする検出項目の場合は、各アセットに専用マークを適用する必要があります。たとえば、検出項目 KMS_PUBLIC_KEY は CryptoKey と KeyRing の 2 つの Cloud Key Management Service アセットをサポートしています。マーク アセットに allow_kms_public_key:true マークを適用すると、そのアセットの KMS_PUBLIC_KEY 検出結果は解決されます。それでもキーリング アセット用に生成することはできます。

セキュリティ マークは、リアルタイム スキャンではなく、バッチスキャン中にのみ更新されます。そのため、専用のセキュリティ マークが削除され、アセットに脆弱性が存在する場合、マークが削除されて検出結果が書き込まれるまでに最大で 24 時間かかることがあります。

特殊なケースの検出項目: 顧客指定の暗号鍵

DISK_CSEK_DISABLED 検出項目はデフォルトでオンになっていません。この検出項目を使用するには、セルフマネージド暗号鍵を使用するアセットにマークを付ける必要があります。

特定のアセットに対して DISK_CSEK_DISABLED 検出項目を有効にするには、値が true のアセットにセキュリティ マーク enforce_customer_supplied_disk_encryption_keys を適用します。

有効な検出結果の数を検出結果のタイプごとに表示する

Cloud Console または gcloud コマンドライン ツールを使用して、有効な検出結果の数を検出結果タイプごとに表示できます。

Console

セキュリティ状況の分析ダッシュボードでは、有効な検出結果の数を検出結果タイプごとに表示できます。

Security Health Analytics の検出結果を検出タイプ別に確認する手順は次のとおりです。

  1. Cloud Console の Security Command Center に移動します。

    Security Command Center に移動

  2. Security Health Analytics の検出結果を表示するには、[脆弱性] タブをクリックします。

  3. 検出結果のタイプごとに有効な検出結果の数で検出結果を並べ替えるには、[有効] 列のヘッダーをクリックします。

gcloud

gcloud ツールを使用してすべての有効な検出結果を取得するには、Security Command Center にクエリを行って、Security Health Analytics のソース ID を取得します。次に、ソース ID を使用してアクティブな検出結果数についてクエリを行います。

手順 1: ソース ID を取得する

この手順を完了するには、組織 ID が必要です。組織 ID を取得するには、gcloud organizations list を実行して、組織名の横の番号をメモします。

Security Health Analytics のソース ID を取得するには、次のコマンドを実行します。

gcloud scc sources describe organizations/ORGANIZATION_ID \
  --source-display-name='Security Health Analytics'

Security Command Center API をまだ有効にしていない場合は、有効にするよう求められます。Security Command Center API が有効になっている場合は、上記のコマンドをもう一度実行します。このコマンドによって、次のような出力が表示されます。

description: Scans for deviations from a GCP security baseline.
displayName: Security Health Analytics
name: organizations/ORGANIZATION_ID/sources/SOURCE_ID

次のステップで使用する SOURCE_ID をメモします。

手順 2: アクティブな検出結果の数を取得する

前のステップでメモした SOURCE_ID を使用して、Security Health Analytics からの検出結果をフィルタリングします。次の gcloud ツール コマンドを実行すると、検出結果数がカテゴリ別に返されます。

gcloud scc findings group organizations/ORGANIZATION_ID/sources/SOURCE_ID \
 --group-by=category --page-size=PAGE_SIZE

ページサイズは、1,000 までの任意の値に設定できます。このコマンドは、特定の組織からの結果とともに、次のような出力を表示します。

groupByResults:
- count: '1'
  properties:
    category: MFA_NOT_ENFORCED
- count: '3'
  properties:
    category: ADMIN_SERVICE_ACCOUNT
- count: '2'
  properties:
    category: API_KEY_APIS_UNRESTRICTED
- count: '1'
  properties:
    category: API_KEY_APPS_UNRESTRICTED
- count: '2'
  properties:
    category: API_KEY_EXISTS
- count: '10'
  properties:
    category: AUDIT_CONFIG_NOT_MONITORED
- count: '10'
  properties:
    category: AUDIT_LOGGING_DISABLED
- count: '1'
  properties:
    category: AUTO_UPGRADE_DISABLED
- count: '10'
  properties:
    category: BUCKET_IAM_NOT_MONITORED
- count: '10'
  properties:
    category: BUCKET_LOGGING_DISABLED
nextPageToken: TOKEN
      readTime: '2019-08-05T21:56:13.862Z'
      totalSize: 50

検出結果をプログラムで管理する

Security Command Center SDK とともに gcloud コマンドライン ツールを使用すると、Security Command Center ダッシュボードでできるすべての操作を自動化できます。また、gcloud ツールを使用して、多くの検出結果を修正することもできます。詳細については、各検出結果で説明されているリソースの種類のドキュメントをご覧ください。

次のステップ