このページでは、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
: このタイプの検出結果に割り当てる重大度またはリスクレベル(LOW
、MEDIUM
、HIGH
、またはCRITICAL
)。description
: カスタム モジュールの説明。recommendation
: カスタム モジュールが生成する検出結果への対処に推奨される対応。- 検出パラメータ: ログの評価と検出結果のトリガーに使用される変数。検出パラメータはモジュールごとに異なりますが、次のうち 1 つ以上が含まれます。
domains
: 監視対象のウェブドメインips
: 監視対象の IP アドレスpermissions
: 監視対象の権限regions
: 新しい Compute Engine インスタンスが許可されているリージョンroles
: 監視対象のロールaccounts
: 監視対象のアカウント- 使用できる Compute Engine インスタンス タイプを定義するパラメータ(
series
、cpus
、ram_mb
など)。 - プロパティを照合する正規表現(
caller_pattern
やresource_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 コンソールを使用してカスタム モジュールを作成する場合は、このタスクをスキップしてください。画面に表示されたオプションを使用して、テンプレートのパラメータを変更します。
- [Custom modules and templates] からテンプレートを選択します。
- コードをローカル ファイルにコピーします。
- ログの評価に使用するパラメータを更新します。
- ファイルを JSON ファイルとして保存します。
- JSON ファイルを使用して、gcloud CLI でカスタム モジュールを作成します。
カスタム モジュールを作成する
このセクションでは、Google Cloud コンソールと gcloud CLI を使用してカスタム モジュールを作成する方法について説明します。Event Threat Detection の各カスタム モジュールのサイズ上限は 6 MB です。
カスタム モジュールを作成するには、次の操作を行います。
Console
- Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
- [モジュールを作成] をクリックします。
- 使用するモジュール テンプレートをクリックします。
- [選択] をクリックします。
- [モジュール名] に新しいテンプレートの表示名を入力します。名前は 128 文字以下で、英数字とアンダースコアのみで構成される必要があります(例:
example_custom_module
)。 - リクエストされたパラメータ値を選択または追加します。パラメータはモジュールごとに異なります。たとえば、
Configurable allowed Compute Engine region
モジュール テンプレートを選択した場合は、1 つ以上のリージョンを選択します。あるいは、JSON 形式でリストを指定します。 - [次へ] をクリックします。
- [重大度] に、新しいカスタム モジュールによって生成される検出結果に割り当てる重大度レベルを入力します。
- [説明] には、新しいカスタム モジュールの説明を入力します。
- [次のステップ] には、推奨されるアクションを書式なしテキスト形式で入力します。段落を追加しても無視されます。
- [作成] をクリックします。
gcloud
カスタム モジュールの定義を含む JSON ファイルを作成します。カスタム モジュールとテンプレートのテンプレートをガイドとして使用します。
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: カスタム モジュールが作成される親リソースのスコープ。
organization
、folder
、project
のいずれかです。 - 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
Google Cloud コンソールで検出結果を表示するには、次の手順を行います。
Google Cloud コンソールで Security Command Center の [検出] ページに移動します。
組織、フォルダ、またはプロジェクトを選択します。
[クイック フィルタ] パネルで、[ソースの表示名] までスクロールし、「Event Threat Detection カスタム モジュール」を選択します。
選択したソースタイプの検出結果が [検出結果クエリの結果] パネルに表示されます。
テーブル内の特定の検出結果の詳細を表示するには、[カテゴリ] の下にある検出結果の名前をクリックします。
gcloud
gcloud CLI を使用して検出結果を表示する手順は次のとおりです。
- ターミナル ウィンドウを開きます。
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
Event Threat Detection のカスタム モジュールのすべての検出結果を一覧表示するには、前のステップのソース ID を付けて次のコマンドを実行します。
gcloud scc findings list RESOURCE_LEVEL/RESOURCE_ID --source=SOURCE_ID
次のように置き換えます。
RESOURCE_LEVEL
: 検出結果を一覧表示するリソースレベル。organizations
、folders
、projects
のいずれかです。RESOURCE_ID
: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。SOURCE_ID
: Event Threat Detection カスタム モジュールのソース ID。
特定のカスタム モジュールの検出結果を一覧表示するには、次のコマンドを実行します。
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
: 検出結果を一覧表示するリソースレベル。organizations
、folders
、projects
のいずれかです。RESOURCE_ID
: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。SOURCE_ID
: Event Threat Detection のカスタム モジュールのソース ID。
検出結果のフィルタリングについては、セキュリティに関する検出結果の一覧表示をご覧ください。
カスタム モジュールによって生成される検出結果は、Security Command Center 内のすべての検出結果と同様に管理できます。詳しくは以下をご覧ください。
Event Threat Detection のカスタム モジュールを管理する
このセクションでは、Event Threat Detection のカスタム モジュールを表示、一覧表示、更新、削除する方法について説明します。
カスタム モジュールを表示または一覧表示する
Console
- Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
- 省略可: カスタム モジュールのみを表示するには、[フィルタ] フィールドに「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
: カスタム モジュールを一覧表示するスコープ。organization
、folder
、project
のいずれかです。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
: カスタム モジュールが存在する親リソースのスコープ。organization
、folder
、project
のいずれかです。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
: カスタム モジュールが存在する親リソースのスコープ。organization
、folder
、project
のいずれかです。RESOURCE_ID
: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。
カスタム モジュールの定義を更新する
このセクションでは、Google Cloud コンソールと gcloud CLI を使用してカスタム モジュールを更新する方法について説明します。Event Threat Detection の各カスタム モジュールのサイズ上限は 6 MB です。
カスタム モジュールのモジュール タイプは変更できません。
カスタム モジュールを更新するには、次の操作を行います。
Console
編集できるのは住宅カスタム モジュールのみです。たとえば、組織ビューを表示している場合、組織レベルで作成されたカスタム モジュールのみを編集できます。
- Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
- 編集するカスタム モジュールを見つけます。
- そのカスタム モジュールで、[> [編集] をクリックします。 アクション]
- 必要に応じて、カスタム モジュールを編集します。
- [保存] をクリックします。
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
: カスタム モジュールが存在する親リソースのスコープ。organization
、folder
、project
のいずれかです。RESOURCE_ID
: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。PATH_TO_JSON_FILE
: カスタム モジュールの JSON 定義を含む JSON ファイル。
1 つのカスタム モジュールのステータスを確認する
Console
- Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
- リストからカスタム モジュールを見つけます。
カスタム モジュールのステータスは [ステータス] 列に表示されます。
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
: カスタム モジュールが存在する親リソースのスコープ。organization
、folder
、project
のいずれかです。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 コンソールからカスタム モジュールを削除する手順は次のとおりです。
- Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
- 削除するカスタム モジュールを見つけます。
- そのカスタム モジュールで、[> [削除] の順にクリックします。削除の確認を求めるメッセージが表示されます。 アクション]
- [削除] をクリックします。
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
: カスタム モジュールが存在する親リソースのスコープ。organization
、folder
、project
のいずれかです。RESOURCE_ID
: リソースの ID(組織 ID、フォルダ ID、プロジェクト ID)。
カスタム モジュールのクローンを作成する
カスタム モジュールのクローンを作成すると、生成されたカスタム モジュールは表示されているリソースの常駐として作成されます。たとえば、プロジェクトが組織から継承したカスタム モジュールのクローンを作成する場合、新しいカスタム モジュールはプロジェクト内の住宅モジュールになります。
下位カスタム モジュールのクローンを作成することはできません。
Google Cloud コンソールでカスタム モジュールのクローンを作成する手順は次のとおりです。
- Event Threat Detection サービスのモジュールを表示します。事前定義モジュールとカスタム モジュールがリストに表示されます。
- クローンを作成するカスタム モジュールを見つけます。
- そのカスタム モジュールで、[> [クローン] をクリックします。 アクション]
- 必要に応じて、カスタム モジュールを編集します。
- [作成] をクリックします。
次のステップ
- Event Threat Detection のカスタム モジュールについて学習する。