Event Threat Detection 用カスタム モジュールの作成と管理

このページでは、Event Threat Detection 用カスタム モジュールを作成、管理する方法について説明します。

準備

このセクションでは、Event Threat Detection 用カスタム モジュールを使用するための要件について説明します。

Security Command Center Premium と Event Threat Detection

Event Threat Detection のカスタム モジュールを使用するには、Event Threat Detection が有効になっている必要があります。Event Threat Detection を有効にするには、組み込みサービスを有効または無効にするをご覧ください。

IAM ロール

IAM ロールにより、Event Threat Detection のカスタム モジュールで実行できるアクションが決まります。

次の表に、Event Threat Detection カスタム モジュールの権限と、それらを含む事前定義された IAM ロールを示します。これらの権限は 2024 年 1 月 22 日まで有効です。それ以降は、2 番目の表に一覧表示されている権限が必要になります。

Google Cloud コンソールまたは Security Command Center API を使用すると、これらのロールを組織、フォルダ、またはプロジェクトのレベルで適用できます。

2024 年 1 月 22 日より前に必要な権限 ロール
securitycenter.eventthreatdetectioncustommodules.create
securitycenter.eventthreatdetectioncustommodules.update
securitycenter.eventthreatdetectioncustommodules.delete
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycenter.eventthreatdetectioncustommodules.get
securitycenter.eventthreatdetectioncustommodules.list
roles/securitycenter.settingsViewer
roles/securitycenter.adminViewer
roles/securitycenter.admin

次の表に、2024 年 1 月 22 日以降に必要な Event Threat Detection カスタム モジュールの権限と、それらを含む事前定義された IAM ロールを示します。

Google Cloud コンソールまたは Security Command Center API を使用すると、これらのロールを組織、フォルダ、またはプロジェクトのレベルで適用できます。

2024 年 1 月 22 日以降に必要な権限 ロール
securitycentermanagement.eventThreatDetectionCustomModules.create
securitycentermanagement.eventThreatDetectionCustomModules.update
securitycentermanagement.eventThreatDetectionCustomModules.delete
roles/securitycentermanagement.etdCustomModulesEditor
roles/securitycenter.settingsEditor
roles/securitycenter.admin
securitycentermanagement.eventThreatDetectionCustomModules.list
securitycentermanagement.eventThreatDetectionCustomModules.get
securitycentermanagement.effectiveEventThreatDetectionCustomModules.list
securitycentermanagement.effectiveEventThreatDetectionCustomModules.get
securitycentermanagement.eventThreatDetectionCustomModules.validate
roles/securitycentermanagement.etdCustomModulesViewer
roles/securitycentermanagement.etdCustomModulesEditor
roles/securitycenter.adminViewer
roles/securitycenter.admin

Security Command Center でアクセスエラーが発生した場合は、管理者にお問い合わせください。Security Command Center を有効にしたレベルに応じて、次のいずれかのページをご覧ください。

必要なログ

組織、フォルダ、プロジェクトで関連するログが有効になっていることを確認してください。各カスタム モジュール タイプに必要なログについては、カスタム モジュールとテンプレートの表をご覧ください。

Google Cloud の外部ソースからのログはサポートされていません。

カスタム モジュール レベル

このドキュメントでは、カスタム モジュールが作成されたレベルを次の用語で表します。

住宅モジュール
現在のビューまたはスコープで作成されたモジュールです。たとえば、Google Cloud コンソールの組織ビューの場合、住宅モジュールは組織レベルで作成されたモジュールです。
継承モジュール
親ビューまたはスコープで作成されたモジュールです。たとえば、組織レベルで作成されたモジュールは、任意のフォルダレベルまたはプロジェクト レベルの継承モジュールです。
子モジュール
子ビューまたはスコープで作成されたモジュールです。たとえば、フォルダレベルまたはプロジェクト レベルで作成されたモジュールは、組織レベルの下位モジュールです。

カスタム モジュールを作成する

Event Threat Detection カスタム モジュールを作成するには、Google Cloud コンソールを使用するか、JSON テンプレートを変更して gcloud CLI で送信します。gcloud CLI を使用してカスタム モジュールを作成する場合にのみ、JSON テンプレートが必要です。

サポートされているモジュール テンプレートのリストについては、カスタム モジュールとテンプレートをご覧ください。

テンプレート構造

テンプレートは、ログ内の脅威を識別するためにカスタム モジュールが使用するパラメータを定義します。テンプレートは JSON で記述され、その構造は Security Command Center が生成する検出結果と似ています。JSON テンプレートは、gcloud CLI を使用してカスタム モジュールを作成する場合にのみ構成する必要があります。

各テンプレートには、カスタマイズ可能な次のフィールドがあります。

  • severity: このタイプの検出結果に割り当てる重大度またはリスクレベル(LOWMEDIUMHIGH、または CRITICAL)。
  • description: カスタム モジュールの説明。
  • recommendation: カスタム モジュールが生成する検出結果への対処に推奨される対応。
  • 検出パラメータ: ログの評価と検出結果のトリガーに使用される変数。検出パラメータはモジュールごとに異なりますが、次のうち 1 つ以上が含まれます。
    • domains: 監視対象のウェブドメイン
    • ips: 監視対象の IP アドレス
    • permissions: 監視対象の権限
    • regions: 新しい Compute Engine インスタンスが許可されているリージョン
    • roles: 監視対象のロール
    • accounts: 監視対象のアカウント
    • 使用できる Compute Engine インスタンス タイプを定義するパラメータ(seriescpusram_mb など)。
    • プロパティを照合する正規表現(caller_patternresource_pattern など)。

次のコードサンプルは、Configurable Bad IP の JSON サンプル テンプレートです。

{
  "metadata": {
    "severity": "LOW",
    "description": "Flagged by Cymbal as malicious",
    "recommendation": "Contact the owner of the relevant project."
  },
  "ips": [
    "192.0.2.1",
    "192.0.2.0/24"
  ]
}

上記のサンプルでは、リソースが IP アドレス 192.0.2.1 または 192.0.2.0/24 に接続されていることがログに示されている場合、カスタム モジュールは重大度の低い検出結果を生成します。

モジュール テンプレートを変更する

モジュールを作成するには、モジュール テンプレートを選択して変更します。

Google Cloud CLI を使用してカスタム モジュールを作成する場合は、このタスクを実行する必要があります。

Google Cloud コンソールを使用してカスタム モジュールを作成する場合は、このタスクをスキップしてください。画面に表示されたオプションを使用して、テンプレートのパラメータを変更します。

  1. [Custom modules and templates] からテンプレートを選択します。
  2. コードをローカル ファイルにコピーします。
  3. ログの評価に使用するパラメータを更新します。
  4. ファイルを JSON ファイルとして保存します。
  5. JSON ファイルを使用して、gcloud CLI でカスタム モジュールを作成します。

カスタム モジュールを作成する

このセクションでは、Google Cloud コンソールと gcloud CLI を使用してカスタム モジュールを作成する方法について説明します。Event Threat Detection の各カスタム モジュールのサイズ上限は 6 MB です。

カスタム モジュールを作成するには、次の操作を行います。

Console

  1. Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
  2. [モジュールを作成] をクリックします。
  3. 使用するモジュール テンプレートをクリックします。
  4. [Select] をクリックします。
  5. [モジュール名] に新しいテンプレートの表示名を入力します。名前は 128 文字以下で、英数字とアンダースコアのみで構成される必要があります(例: example_custom_module)。
  6. リクエストされたパラメータ値を選択または追加します。パラメータはモジュールごとに異なります。たとえば、Configurable allowed Compute Engine region モジュール テンプレートを選択した場合は、1 つ以上のリージョンを選択します。あるいは、JSON 形式でリストを指定します。
  7. [Next] をクリックします。
  8. [重大度] に、新しいカスタム モジュールによって生成される検出結果に割り当てる重大度レベルを入力します。
  9. [説明] には、新しいカスタム モジュールの説明を入力します。
  10. [次のステップ] には、推奨されるアクションを書式なしテキスト形式で入力します。段落を追加しても無視されます。
  11. [作成] をクリックします。

gcloud

  1. カスタム モジュールの定義を含む JSON ファイルを作成します。カスタム モジュールとテンプレートのテンプレートをガイドとして使用します。

  2. gcloud コマンドで JSON ファイルを送信して、カスタム モジュールを作成します。

 gcloud alpha scc custom-modules etd create \
     --RESOURCE_FLAG=RESOURCE_ID \
     --display-name="DISPLAY_NAME" \
     --module-type="MODULE_TYPE" \
     --enablement-state="ENABLED" \
     --custom-config-from-file=PATH_TO_JSON_FILE

次のように置き換えます。

  • RESOURCE_FLAG: カスタム モジュールが作成される親リソースのスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: 親リソースのリソース ID(組織 ID、フォルダ ID、プロジェクト ID)。
  • DISPLAY_NAME: 新しいテンプレートの表示名。名前は 128 文字以下で、英数字とアンダースコアのみで構成される必要があります。
  • MODULE_TYPE: 作成するカスタム モジュールのタイプ(例: CONFIGURABLE_ALLOWED_COMPUTE_ENGINE_REGION)。
  • PATH_TO_JSON_FILE: モジュール テンプレートに基づくカスタム モジュールの JSON 定義を含む JSON ファイル。

カスタム モジュールが作成され、スキャンが開始されます。モジュールを削除するには、カスタム モジュールを削除するをご覧ください。

カスタム モジュールのカテゴリ名には、モジュール タイプの検出結果のカテゴリと、設定したモジュールの表示名が含まれます。たとえば、カスタム モジュールのカテゴリ名は Unexpected Compute Engine Region: example_custom_module にできます。Google Cloud コンソールでは、アンダースコアはスペースとして表示されます。ただし、クエリにはアンダースコアを含める必要があります。

割り当ては、Event Threat Detection 用カスタム モジュールの使用を制御します。

検出のレイテンシ

Event Threat Detection と他のすべての Security Command Center 組み込みサービスの検出レイテンシについては、スキャン レイテンシをご覧ください。

検出結果を確認する

カスタム モジュールによって生成された検出結果は、Google Cloud コンソールまたは gcloud CLI で確認できます。

Console

  1. Google Cloud コンソールで、Security Command Center の [検出結果] ページに移動します。

    [検出結果] に移動

  2. Google Cloud プロジェクトまたは組織を選択します。
  3. [クイック フィルタ] セクションの [ソースの表示名] サブセクションで、[Event Threat Detection カスタム モジュール] を選択します。検出結果クエリの結果は、このソースからの検出結果のみを表示するように更新されます。
  4. 特定の検出結果の詳細を表示するには、[カテゴリ] 列の検出結果の名前をクリックします。検出結果の詳細パネルが開き、[概要] タブが表示されます。
  5. [概要] タブで、検出された内容、影響を受けるリソース、検出結果の修正手順(ある場合)に関する情報など、検出結果の詳細を確認します。
  6. 省略可: 検出結果の完全な JSON 定義を表示するには、[JSON] タブをクリックします。

gcloud

gcloud CLI を使用して検出結果を表示する手順は次のとおりです。

  1. ターミナル ウィンドウを開きます。
  2. Event Threat Detection のカスタム モジュールのソース ID を取得します。コマンドは、Security Command Center を組織レベルまたはプロジェクト レベルで有効にしたかどうかによって異なります。

    gcloud scc sources describe RESOURCE_LEVEL/RESOURCE_ID \
        --source-display-name='Event Threat Detection Custom Modules'
    

    次のように置き換えます。

    • RESOURCE_LEVEL: Security Command Center インスタンスの有効化レベル。organizations または projects のいずれかです。
    • RESOURCE_ID: 組織またはプロジェクトのリソース ID。

    出力は次のようになります。 SOURCE_ID は、サーバーによって割り当てられたセキュリティ ソースの ID です。

    canonicalName: RESOURCE_LEVEL/RESOURCE_ID/sources/SOURCE_ID
    description: Provider used by Event Threat Detection Custom Modules
    displayName: Event Threat Detection Custom Modules
    name: RESOURCE_LEVEL/RESOURCE_ID/sources/SOURCE_ID
  3. Event Threat Detection のカスタム モジュールのすべての検出結果を一覧表示するには、前のステップのソース ID を付けて次のコマンドを実行します。

    gcloud scc findings list RESOURCE_LEVEL/RESOURCE_ID --source=SOURCE_ID
    

    次のように置き換えます。

    • RESOURCE_LEVEL: 検出結果を一覧表示するリソースレベル。organizationsfoldersprojects のいずれかです。
    • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。
    • SOURCE_ID: Event Threat Detection カスタム モジュールのソース ID。
  4. 特定のカスタム モジュールの検出結果を一覧表示するには、次のコマンドを実行します。

    MODULE="CUSTOM_MODULE_CATEGORY_NAME"
    FILTER="category=\"$MODULE\""
    gcloud scc findings list RESOURCE_LEVEL/RESOURCE_ID --source=SOURCE_ID --filter="$FILTER"
    

    次のように置き換えます。

    • CUSTOM_MODULE_CATEGORY_NAME: カスタム モジュールのカテゴリ名。この名前は、モジュール タイプの検出結果のカテゴリ(カスタム モジュールとテンプレートに記載されているもの)と、スペースではなくアンダースコアを使用したモジュールの表示名で構成されます。たとえば、カスタム モジュールのカテゴリ名は Unexpected Compute Engine region: example_custom_module にできます。
    • RESOURCE_LEVEL: 検出結果を一覧表示するリソースレベル。organizationsfoldersprojects のいずれかです。
    • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。
    • SOURCE_ID: Event Threat Detection カスタム モジュールのソース ID。

検出結果のフィルタリングについては、セキュリティに関する検出結果の一覧表示をご覧ください。

カスタム モジュールによって生成される検出結果は、Security Command Center 内のすべての検出結果と同様に管理できます。詳しくは以下をご覧ください。

Event Threat Detection のカスタム モジュールを管理する

このセクションでは、Event Threat Detection のカスタム モジュールを表示、一覧表示、更新、削除する方法について説明します。

カスタム モジュールを表示または一覧表示する

Console

  1. Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
  2. 省略可: カスタム モジュールのみを表示するには、[フィルタ] フィールドに「Type:Custom」と入力します。

結果には次のものが含まれます。

  • Event Threat Detection のすべての住宅カスタム モジュール。
  • Event Threat Detection のすべての継承カスタム モジュール。たとえば、プロジェクト ビューを表示している場合、そのプロジェクトの親フォルダと組織で作成されたカスタム モジュールが結果に含まれます。
  • 子リソースで作成された Event Threat Detection のすべての下位カスタム モジュール。たとえば、組織ビューを表示している場合、その組織のフォルダとプロジェクトで作成されたカスタム モジュールが結果に含まれます。

gcloud

gcloud alpha scc custom-modules etd list \
    --RESOURCE_FLAG=RESOURCE_ID

次のように置き換えます。

  • RESOURCE_FLAG: カスタム モジュールを一覧表示するスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。

結果には次のものが含まれます。

  • Event Threat Detection のすべての住宅カスタム モジュール。
  • Event Threat Detection のすべての継承カスタム モジュール。たとえば、プロジェクト レベルでカスタム モジュールを一覧表示すると、そのプロジェクトの親フォルダと組織で作成されたカスタム モジュールが結果に含まれます。

結果の各項目には、モジュール名、ステータス、プロパティが含まれます。プロパティはモジュールごとに異なります。

各モジュールの名前には、カスタム モジュールの ID が含まれます。このページの gcloud オペレーションの多くは、カスタム モジュール ID を必要とします。

name: RESOURCE_LEVEL/RESOURCE_ID/eventThreatDetectionSettings/customModules/CUSTOM_MODULE_ID

カスタム モジュールを無効にする

Console

モジュールを有効または無効にするをご覧ください。

継承カスタム モジュールを無効にすると、その変更は現在のリソースレベルにのみ適用されます。親レベルにある元のカスタム モジュールは影響を受けません。たとえば、プロジェクト レベルで、親フォルダから継承されたカスタム モジュールを無効にすると、カスタム モジュールはプロジェクト レベルでのみ無効になります。

下位カスタム モジュールは無効にできません。たとえば、組織ビューを表示している場合、プロジェクト レベルで作成されたカスタム モジュールを無効にすることはできません。

gcloud

gcloud alpha scc custom-modules etd update CUSTOM_MODULE_ID \
    --RESOURCE_FLAG=RESOURCE_ID \
    --enablement-state="DISABLED"

次のように置き換えます。

  • CUSTOM_MODULE_ID: Event Threat Detection のカスタム モジュールの数値 ID(例: 1234567890)。カスタム モジュールのリストを表示すると、関連するカスタム モジュールの name フィールドから数値 ID を取得できます。
  • RESOURCE_FLAG: カスタム モジュールが存在する親リソースのスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。

カスタム モジュールを有効にする

Console

モジュールを有効または無効にするをご覧ください。

継承カスタム モジュールを有効にすると、変更は現在のリソースレベルにのみ適用されます。親レベルにある元のカスタム モジュールは影響を受けません。たとえば、プロジェクト レベルで、親フォルダから継承されたカスタム モジュールを有効にすると、カスタム モジュールはプロジェクト レベルでのみ有効になります。

下位カスタム モジュールは有効にできません。たとえば、組織ビューを表示している場合、プロジェクト レベルで作成されたカスタム モジュールを有効にすることはできません。

gcloud

gcloud alpha scc custom-modules etd update CUSTOM_MODULE_ID \
    --RESOURCE_FLAG=RESOURCE_ID \
    --enablement-state="ENABLED"

以下を置き換えます。

  • CUSTOM_MODULE_ID: Event Threat Detection のカスタム モジュールの数値 ID(例: 1234567890)。カスタム モジュールのリストを表示すると、関連するカスタム モジュールの name フィールドから数値 ID を取得できます。
  • RESOURCE_FLAG: カスタム モジュールが存在する親リソースのスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。

カスタム モジュールの定義を更新する

このセクションでは、Google Cloud コンソールと gcloud CLI を使用してカスタム モジュールを更新する方法について説明します。Event Threat Detection の各カスタム モジュールのサイズ上限は 6 MB です。

カスタム モジュールのモジュールタイプを更新することはできません。

カスタム モジュールを更新するには、次の操作を行います。

Console

編集できるのは住宅カスタム モジュールのみです。たとえば、組織ビューを表示している場合、組織レベルで作成されたカスタム モジュールのみを編集できます。

  1. Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
  2. 編集するカスタム モジュールを見つけます。
  3. そのカスタム モジュールで、[ アクション] > [編集] をクリックします。
  4. 必要に応じて、カスタム モジュールを編集します。
  5. [保存] をクリックします。

gcloud

モジュールを更新するには、更新されたモジュール テンプレートの JSON を指定して、次のコマンドを実行します。

 gcloud alpha scc custom-modules etd update CUSTOM_MODULE_ID \
     --RESOURCE_FLAG=RESOURCE_ID \
     --enablement-state="ENABLED" \
     --custom-config-from-file=PATH_TO_JSON_FILE

以下を置き換えます。

  • CUSTOM_MODULE_ID: Event Threat Detection のカスタム モジュールの数値 ID(例: 1234567890)。カスタム モジュールのリストを表示すると、関連するカスタム モジュールの name フィールドから数値 ID を取得できます。
  • RESOURCE_FLAG: カスタム モジュールが存在する親リソースのスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。
  • PATH_TO_JSON_FILE: カスタム モジュールの JSON 定義を含む JSON ファイル。

1 つのカスタム モジュールのステータスを確認する

Console

  1. Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
  2. リストからカスタム モジュールを見つけます。

カスタム モジュールのステータスは [ステータス] 列に表示されます。

gcloud

 gcloud alpha scc custom-modules etd get CUSTOM_MODULE_ID \
     --RESOURCE_FLAG=RESOURCE_ID

次のように置き換えます。

  • CUSTOM_MODULE_ID: Event Threat Detection のカスタム モジュールの数値 ID(例: 1234567890)。カスタム モジュールのリストを表示すると、関連するカスタム モジュールの name フィールドから数値 ID を取得できます。
  • RESOURCE_FLAG: カスタム モジュールが存在する親リソースのスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。

出力には、次のようにモジュールのステータスとプロパティが含まれています。プロパティはモジュールごとに異なります。

config:
metadata:
  description: DESCRIPTION
  recommendation: RECOMMENDATION
  severity: SEVERITY
regions:
- region: REGION
displayName: USER_SPECIFIED_DISPLAY_NAME
enablementState: STATUS
lastEditor: LAST_EDITOR
name: RESOURCE_LEVEL/RESOURCE_ID/eventThreatDetectionSettings/customModules/CUSTOM_MODULE_ID
type: MODULE_TYPE
updateTime: 'UPDATE_TIME'

カスタム モジュールを削除する

Event Threat Detection のカスタム モジュールを削除しても、生成された検出結果は変更されず、Security Command Center で引き続き使用できます。一方、Security Health Analytics カスタム モジュールを削除すると、生成された検出結果は無効としてマークされます。

削除したカスタム モジュールは復元できません。

Console

継承カスタム モジュールは削除できません。たとえば、プロジェクト ビューを表示している場合、フォルダレベルまたは組織レベルで作成されたカスタム モジュールを削除することはできません。

Google Cloud コンソールからカスタム モジュールを削除する手順は次のとおりです。

  1. Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
  2. 削除するカスタム モジュールを見つけます。
  3. そのカスタム モジュールで、[ アクション] > [削除] の順にクリックします。削除の確認を求めるメッセージが表示されます。
  4. [削除] をクリックします。

gcloud

 gcloud alpha scc custom-modules etd delete CUSTOM_MODULE_ID \
     --RESOURCE_FLAG=RESOURCE_ID

次のように置き換えます。

  • CUSTOM_MODULE_ID: Event Threat Detection のカスタム モジュールの数値 ID(例: 1234567890)。カスタム モジュールのリストを表示すると、関連するカスタム モジュールの name フィールドから数値 ID を取得できます。
  • RESOURCE_FLAG: カスタム モジュールが存在する親リソースのスコープ。organizationfolderproject のいずれかです。
  • RESOURCE_ID: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。

カスタム モジュールのクローンを作成する

カスタム モジュールのクローンを作成すると、生成されたカスタム モジュールは表示されているリソースの常駐として作成されます。たとえば、プロジェクトが組織から継承したカスタム モジュールのクローンを作成する場合、新しいカスタム モジュールはプロジェクト内の住宅モジュールになります。

下位カスタム モジュールのクローンを作成することはできません。

Google Cloud コンソールでカスタム モジュールのクローンを作成する手順は次のとおりです。

  1. Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
  2. クローンを作成するカスタム モジュールを見つけます。
  3. そのカスタム モジュールで、[ アクション] > [クローン] をクリックします。
  4. 必要に応じて、カスタム モジュールを編集します。
  5. [作成] をクリックします。

次のステップ