アラートと IOC マッチを管理する

以下でサポートされています。

[アラートと IOC] ページには、企業に影響を与えているすべてのアラートとセキュリティ侵害インジケーター(IOC)が表示されます。

  • [アラートと IOC] ページを開くには、[検出] [>] [アラートと IOC] をクリックします。

このページには、[アラート] タブと [IOC Matches] タブがあります。

  • [アラート] タブを使用して、企業内の現在のアラートを表示します。

    アラートは、セキュリティ インフラストラクチャ、セキュリティ担当者、または Google Security Operations ルールによって生成できます。

    データ RBAC が有効になっているシステムでは、割り当てられたスコープに関連付けられたルールから発生したアラートと検出結果のみを表示できます。検出結果に対するデータ RBAC の影響について詳しくは、検出結果をご覧ください。

  • [IOC Matches] タブを使用して、不審であると報告され、企業内で確認された IOC を表示します。

    Google Security Operations は、インフラストラクチャやその他のセキュリティ データソースからデータを継続的に取り込み、不審なセキュリティ インジケーターとセキュリティ データを自動的に関連付けます。一致するものが見つかった場合(たとえば企業内で不審なドメインが見つかった場合)、Google SecOps はイベントを IOC としてラベル付けし、[IOC Matches] タブに表示します。詳細については、Google SecOps が IOC を自動的に照合する方法をご覧ください。

    データ RBAC が有効になっているシステムでは、アクセス権のあるアセットの IOC マッチのみを表示できます。詳細については、Google SecOps の機能に対するデータ RBAC の影響をご覧ください。

    [IoC matches] ダッシュボードでは、信頼スコア、重大度、フィード名、カテゴリなどの IOC の詳細を表示できます。

[アラートと IOC] ページで共通の表示オプションを構成する

このセクションでは、[アラートと IOC] ページの [アラート] タブと [IOC Matches] タブで構成できる共通の表示オプションについて説明します。

表示する列を指定する

[列マネージャー] を使用して、タブに表示する列を指定します。

日時の範囲を構成する

[アラート] タブと [IOC Matches] タブに表示するアラートと IOC マッチの日時の範囲を指定するには、次の操作を行います。

  1. [カレンダー] アイコンをクリックします。[日時の範囲の設定] ダイアログが開きます。日時の範囲は、[範囲] タブのプリセットの期間を使用するか、[イベント時間] タブでイベント発生の特定の時間を選択して指定できます。
  2. プリセット オプションを使用して日時の範囲を指定するには、[範囲] タブをクリックして、次のいずれかのオプションを選択します。

    • 今日
    • 過去 1 時間
    • 過去 12 時間
    • 過去 1 日間
    • 過去 1 週間
    • 過去 2 週間
    • 先月
    • 過去 2 か月間
    • カスタム: カレンダーで開始日と終了日を選択し、[開始時刻] フィールドと [終了時刻] フィールドをクリックして時刻を選択します。
  3. イベントに基づいて日時の範囲を指定するには、[イベント時間] タブをクリックしてカレンダーで日付を選択し、次のいずれかのオプションを選択します。

    • 正確な時間: [イベント時間] フィールドをクリックして、イベントが発生した特定の時間を選択します。
    • +/- 1 分
    • +/- 3 分
    • +/- 5 分
    • +/- 10 分
    • +/- 15 分
    • +/- 1 時間
    • +/- 2 時間
    • +/- 6 時間
    • +/- 12 時間
    • +/- 1 日
    • +/- 3 日
    • +/- 1 週間

アラートと IOC マッチを並べ替える

表示されるアラートと IOC マッチは、昇順または降順に並べ替えることができます。列見出しをクリックすると、リストが並べ替えられます。

アラートを表示する

[アラート] タブには、指定した日時の範囲内に企業内で検出されたアラートの一覧が表示されます。このタブでは、重大度、優先度、リスクスコア、判断などのアラートに関する情報を一目で確認できます。色分けされたアイコンや記号で、注意が必要なアラートをすばやく確認できます。

その他の情報を表示する

アラートに関する追加情報を表示するには:

  • アラートの行を開いて、イベントのタイムスタンプ、タイプ、概要を表示します。
  • リスト内のアラートの名前をクリックして、アラートビューにピボットし、アラートとそのステータスに関する追加情報を表示します。

アラートの表を更新する

[アラート] 表のヘッダーにある 更新間隔メニューを使用して、[アラート] 表を更新する頻度を選択します。次のオプションが用意されています。

  • 今すぐ確認
  • 自動更新しない(デフォルト)
  • 5 分ごとに更新
  • 15 分ごとに更新
  • 1 時間ごとに更新

複合検出によって生成されたアラート

アラートは、他のルールからの出力(検出結果)をイベント、指標、エンティティ リスクシグナルと組み合わせて使用する複合ルールを使用する複合検出によって生成できます。これらのルールは、個々のルールでは見逃す可能性のある複雑な多段階の脅威を検出します。

複合検出は、定義されたルールのインタラクションとトリガーを通じてイベントを分析するのに役立ちます。これにより、さまざまなソースと攻撃段階のデータを関連付けることで、精度が向上し、誤検出が減り、セキュリティの脅威を包括的に把握できます。

[アラート] タブの [入力] 列にアラートのソースが表示されます。アラートが複合検出からのものである場合、列には Detection が表示されます。

アラートをトリガーした複合検出を表示するには、[アラート] タブで次のいずれかを行います。

  • アラートの行を開き、[検出結果] 表で複合検出を表示します。
  • [ルール名] をクリックして、[検出結果] ページを開きます。
  • アラートの名前 をクリックして、[アラートの詳細] タブを開きます。

アラートのフィルタ

フィルタを使用して、表示されるアラートのリストを絞り込むことができます。

アラートのリストにフィルタを追加する手順は次のとおりです。

  1. タブの左上にある [フィルタ] アイコンまたは [フィルタを追加] をクリックして、[フィルタを追加] ダイアログを開きます。
  2. 以下の情報を指定します。

    • フィールド: フィルタするオブジェクトを入力するか、フィールドに入力を開始してリストから選択します。
    • 演算子: 値の処理方法を示すために、= (表示のみ)または != (除外)を入力します。
    • : 一致させるフィールドまたは除外するフィールドのチェックボックスをオンにします。表示されるリストは、[フィールド] の値に基づいています。
  3. [適用] をクリックします。フィルタは、[アラート] 表の上のフィルタバーにチップとして表示されます。必要に応じて、複数のフィルタを追加できます。

フィルタをクリアするには、フィルタラベルの [x] をクリックして削除します。

IOC Matches を表示する

[IOC Matches] タブには、ネットワーク内で検出され、インテリジェントな脅威フィード内の既知の不審な IOC のリストと照合された IOC が表示されます。タイプ、優先度、ステータス、カテゴリ、アセット、キャンペーン、ソース、IOC 取り込み時間、初回検知、最終検知など、IOC に関する情報を表示できます。色分けされたアイコンや記号で、IOC で注意が必要なアラートをすばやく確認できます。

Google SecOps が IOC を自動的に照合する方法

Google SecOps は、取り込まれたセキュリティ データを、さまざまな脅威インテリジェンス フィードの既知の脅威インジケーターと自動的に関連付けます。セキュリティ データが取り込まれると、まず統合データモデル(UDM)に正規化されます。IOC マッチング エンジンは、正規化された UDM イベントを、構成されたすべてのフィードの脅威インジケーターと継続的に比較します。一致するものが見つかると、Google SecOps は IOC マッチ アラートを生成します。この自動マッチング プロセスは、ドメインと IPv4 アドレスに特に有効です。

次の図は、エンドツーエンドのプロセスを示しています。

IOC マッチング プロセス

データの取り込みについて詳しくは、Google SecOps のデータ取り込みをご覧ください。

IOC バージョン

Google SecOps は、取り込まれたすべての IOC バージョンを保持し、指定された終了日までアクティブな最新の取り込みバージョンを使用します。終了日のない IOC を取り込むと、無期限にアクティブなままになります。後で、特定の期間(開始日と終了日)で同じ IOC を取り込むと、アクティブ期間中(開始日の 5 日前を含む)に無期限バージョンがオーバーライドされます。

この期間制限付き IOC の有効期限が切れると、Google SecOps は、以前の IOC バージョンがまだアクティブな場合(無期限のアクティブ バージョンなど)、自動的に以前の IOC バージョンを使用します。 期間制限付き IOC を取り込んでも、以前に取り込んだ無期限の IOC が削除されたり、完全に期限切れになったりすることはありません。

データが取り込まれると、UDM イベントデータが継続的に分析され、既知の悪意のあるドメイン名、IP アドレス、ファイル ハッシュ(MD5、SHA-256、SHA-1)に一致する IOC が検出されます。一致するものが見つかると、IOC が [IOC Matches] タブに表示されます。

脅威インテリジェンス ソース

Google SecOps は、IOC マッチングに複数のソースを使用します。

  • Google 提供のインテリジェンス: Google SecOps には、Google の Mandiant、VirusTotal、Google Threat Intelligence の統合脅威インテリジェンスが含まれています。これらのフィードは自動的に利用可能になり、グローバルな脅威分析から幅広いインジケーターを提供します。Enterprise Plus パッケージをご利用のお客様は、Mandiant Breach Analytics などの高度なフィードにもアクセスできます。
  • お客様提供のフィード: 独自のプロプライエタリまたはサードパーティの脅威インテリジェンス フィードを Google SecOps に取り込むことができます。MISP_IOC などのフィードは正規化され、同じ IOC マッチング プロセスに含まれるため、組織に関連するインジケーターとセキュリティ データを関連付けることができます。

Google SecOps では、次の脅威インテリジェンス ソースをすぐに利用できます。

Google SecOps Enterprise パッケージ Google SecOps Enterprise Plus パッケージ
強化されたオープンソース インテリジェンス(OSINT) 強化されたオープンソース インテリジェンス(OSINT)
Mandiant Fusion
VirusTotal

リアルタイム マッチングと遡及的マッチング

Google SecOps は、次の 2 つの方法で IOC マッチングを実行します。

  • リアルタイム マッチング: 新しいセキュリティ テレメトリーが取り込まれて正規化されると、利用可能なすべての IOC フィードと照合されます。一致するものが見つかると、ほぼリアルタイムでアラートがトリガーされます。
  • 遡及的マッチング: 新しい IOC が統合された脅威インテリジェンス フィード(Google 提供またはお客様提供)に追加されると、Google SecOps は過去のデータ(最長でデータ保持期間全体、通常は 1 年)を自動的にスキャンして、これらの新しいインジケーターの過去の発生状況を確認します。これにより、取り込み時にインジケーターが不明だった場合でも、過去のアクティビティが侵害の可能性について分析されます。

マッチングに使用される UDM フィールド

自動 IOC マッチング エンジンは、主に UDM イベントで見つかったドメイン名と IP アドレスとの照合に重点を置いています。次の表に、パッケージに基づいて自動 IOC マッチングに使用される特定の UDM フィールドの詳細を示します。

Enterprise パッケージ Enterprise Plus パッケージ
about.file
network.dns.answers
network.dns.questions network.dns.questions
principal.administrative_domain
principal.asset
principal.ip
principal.process.file principal.process.file
principal.process.parent_process.file principal.process.parent_process.file
security_result.about.file security_result.about.file
src.file src.file
src.ip
target.asset.ip
target.domain.name
target.file target.file
target.hostname target.hostname
target.ip target.ip
target.process.file target.process.file
target.process.parent_process.file

使用される UDM フィールドを理解することで、データ パーサーが未加工ログフィールドを適切な UDM フィールドに正しくマッピングし、効果的な IOC マッチングを実現できます。

Google SecOps Enterprise Plus パッケージを使用し、Applied Threat Intelligence(ATI)機能が有効になっている場合、IOC は GTI スコアに基づいて分析され、優先順位が付けられます。詳細については、Applied Threat Intelligence の優先度の概要をご覧ください。

高度な IOC マッチング手法

[IOC Matches] タブに表示される自動 IOC マッチングに加えて、Google SecOps には、より詳細なカスタム IOC 相関関係を実現するための強力な方法がいくつか用意されています。

エンティティ グラフと YARA-L ルールを使用する

エンティティ グラフを使用すると、IOC を表すものなど、さまざまなタイプのコンテキスト エンティティを取り込み、YARA-L 検出ルールを使用してイベントデータと結合できます。これにより、多次元 IOC マッチングが可能になります。

エンティティ グラフで IOC マッチングに使用される一般的なエンティティ タイプには、IP_ADDRESSDOMAIN_NAMEFILE(ハッシュ用)、URL などがあります。

エンティティ グラフでは、次の 2 つのコンテキストを使用できます。

  • Google 提供のコンテキスト(GLOBAL_CONTEXT: Google SecOps は、エンティティ グラフに GCTI、セーフ ブラウジング、VirusTotal などのフィードを事前入力します。これらのフィードには source_type = "GLOBAL_CONTEXT" というラベルが付けられます。
  • お客様提供のコンテキスト(ENTITY_CONTEXT: 独自の IOC フィード(Anomali、Recorded Future、STIX など)を取り込むか、Ingestion API を使用してカスタム IOC を追加できます。これらには通常、source_type = "ENTITY_CONTEXT" というラベルが付けられます。

エンティティ グラフの有効性に関する重要な考慮事項: デフォルトでは、エンティティ グラフ エントリは、取り込みタイムスタンプから +/- 5 日間のみ有効です。つまり、継続的なマッチングを行うには、コンテキスト データを少なくとも 5 日ごとに再取り込みする必要があります。ただし、エンティティに metadata.threat フィールドが含まれている場合、この +/- 5 日間の有効期限は適用されなくなり、過去の IOC マッチングに適しています。

GLOBAL_CONTEXT を使用した YARA-L ルールの例:

rule google_safebrowsing_process_launch {
  meta:
    author      = "noam@"
    description = "Detects Process Launch events against Critical or High severity Google's SafeBrowsing database."

  events:
    $e.metadata.event_type = "PROCESS_LAUNCH"
    $e.target.process.file.sha256 = $hash

    $g.graph.metadata.entity_type = "FILE"
    $g.graph.entity.file.sha256 = $hash
    $g.graph.metadata.source_type = "GLOBAL_CONTEXT"
    $g.graph.metadata.threat.severity = "CRITICAL" or
    $g.graph.metadata.threat.severity = "HIGH"

  match:
    $hash over 10m

  condition:
    $e and $g
}

YARA-L を使用したコンテキスト認識分析と IOC マッチングの詳細な例については、セキュリティ侵害インジケーターに対する IP アドレスのマッチングをご覧ください。

データテーブルと YARA-L ルールを使用した IOC マッチング

データテーブルYARA-L ルール内で使用して、IOC のリストと照合できます。データテーブルは、非推奨の参照リストに代わるものです。データテーブルは、文字列、正規表現、CIDR などの複数の列とデータ型をサポートしているため、1 つのルールで複数の IOC を照合できます。

列ベースの比較行ベースの比較は、YARA-L ルール内でデータテーブルを使用する 2 つの方法です。

  • 列ベースの比較では、in キーワードを使用して、特定のデータテーブル列の任意の行にフィールドの値が存在するかどうかを確認します。これは、単一の列の値のリストと照合する場合に便利です。
  • 行ベースの比較では、等価演算子または比較演算子を使用して、UDM イベント フィールドをデータテーブル列に結合します。複数の比較を行う場合は、すべての条件がデータテーブルの同じ行で一致する必要があります。このプロセスでは、複数列の IOC マッチングを行うことができます。行ベースの比較を使用するルールには、match セクションが必要です。

例: データテーブル列の IP に一致する YARA-L ルール

rule ioc_ip4_matches {
  meta:
    description = "IOC IPv4 matching using data tables"
  events:
    $ioc.metadata.event_type = "NETWORK_CONNECTION"
    $ioc.target.ip = $dip
    // checks if the IP address is in the ip_address column of data table "string_demo_list"
    $dip in %string_demo_list.ip_address

  condition:
    $ioc
}

多次元マッチング(IP アドレス + ポートなど)の場合は、複数の列を含むデータテーブルに対して行ベースの比較を使用できます。次の例では、connections_watchlist というデータテーブルを使用します。このテーブルには、ip 列と port 列があります。

rule ioc_ip4_and_port_matches {
  meta:
    description = "Matches on IP address and port using a data table"
  events:
    $ioc.metadata.event_type = "NETWORK_CONNECTION"
    $ioc.target.ip = $dip
    $ioc.target.port = $dport

    // row-based join: both ip and port must match same row in data table "connections_watchlist"
    %connections_watchlist.ip = $dip
    %connections_watchlist.port = $dport

  match:
    $dip, $dport over 5m

  condition:
    $ioc
}

過去の IOC 分析に BigQuery を使用する

Google SecOps のデータレイク(BigQuery)の datalake.ioc_matches テーブルを使用すると、過去の IOC マッチデータを強力にクエリできます。Google SecOps の [IOC Matches] タブはドメインに重点を置いていますが、BigQuery を使用すると、IP アドレスのマッチなどを分析できます。

特定の IP アドレスの IOC マッチをクエリする SQL の例:

-- Add your IP IOC Matches here
DECLARE __IP_IOCS__ ARRAY <STRING>;
SET __IP_IOCS__ = ['40.79.150.120'];
------
SELECT
  MIN(DATE(TIMESTAMP_SECONDS(CAST(day_bucket_seconds AS INT64)), 'UTC')) AS first_observed,
  MAX(DATE(TIMESTAMP_SECONDS(CAST(day_bucket_seconds AS INT64)), 'UTC')) AS last_observed,
  COUNT(4) AS hits,
  ioc_value,
  feed_log_type,
  is_global,
  CONCAT(COALESCE(asset.namespace, "untagged"),":",COALESCE(asset.hostname, asset.asset_ip_address, asset.mac, "-")) AS asset
FROM
  `datalake.ioc_matches`
WHERE
  ioc_value IN UNNEST(__IP_IOCS__)
  AND ioc_type = "IOC_TYPE_IP"
GROUP BY
  4,
  5,
  6,
  7

結果は次のとおりです。

first_observed last_observed hits ioc_value feed_log_type is_global アセット
1 2025-02-23 2025-03-05 64 40.79.150.120 CATCH_ALL false untagged:192.168.12.16
2 2025-02-27 2025-03-05 29 40.79.150.120 CATCH_ALL false untagged:192.168.12.129

連結された文字列を作成して、datalake.events テーブルに対して多次元 IOC マッチングのクエリを実行することもできます。例:

DECLARE
  __IOC_MULTIPLE_ATTRIBUTES__ ARRAY <STRING>;
SET
  __IOC_MULTIPLE_ATTRIBUTES__ = ['1.2.3.4,80', '1.2.3.4,443'];
SELECT
  MIN(TIMESTAMP_SECONDS(metadata.event_timestamp.seconds)) AS first_seen,
  MAX(TIMESTAMP_SECONDS(metadata.event_timestamp.seconds)) AS last_seen,
  target_ip,
  target.port
FROM
  `datalake.events`,
  UNNEST(target.ip) target_ip
WHERE
  DATE(hour_time_bucket) BETWEEN DATE_SUB(CURRENT_DATE, INTERVAL 60 DAY)
  AND DATE_SUB(CURRENT_DATE, INTERVAL 1 DAY)
  AND target_ip != ""
  AND target.port > 0
  AND CONCAT(target_ip,",",CAST(target.port AS STRING)) IN UNNEST(__IOC_MULTIPLE_ATTRIBUTES__)
GROUP BY 3,4

UDM 検索と Search API

  • UDM 検索: データテーブル(以前は参照リストと呼ばれていました)を使用して、単次元検索(ハッシュのリストなど)を行うことができます。ただし、複数の異なるグループにまたがる複雑な OR ロジック((IP1 AND Port1) OR (IP2 AND Port2) など)はサポートしていません。
  • Search API: 古い Search API は、ハッシュ、IP アドレス、ドメイン名の IOC マッチングに有効で、一致するアセットを返します。

IOC マッチをフィルタする

フィルタを使用して、[IOC] 表に表示される IOC のリストを絞り込むことができます。

IOC のリストにフィルタを追加する手順は次のとおりです。

  1. [IOC] 表の左上にある [フィルタ] アイコンをクリックして、[フィルタ] ダイアログを開きます。
  2. 以下の構成を行います。

    • 論理演算子: 結合された条件(分離)のいずれかに一致させる場合は [OR]、結合されたすべての条件(結合)に一致させる場合は [AND] を選択します。
    • : フィルタする列を選択します。
    • [表示の絞り込み] または [除外]: 中央の列で、値の処理方法を指定するために [表示の絞り込み] または [除外] を選択します。
    • : [****] の値に基づいて表示または除外する値のチェックボックスをオンにします。
  3. [適用] をクリックします。フィルタは、[IOC] 表の上のフィルタバーにチップとして表示されます。必要に応じて、複数のフィルタを追加できます。

フィルタをクリアするには、フィルタラベルの [x] をクリックして削除するか、[すべてクリア] をクリックします。

重大な IOC をフィルタする例

重大であると特定された IOC を検索する場合は、左側の列で [重大度]、中央の列で [表示の絞り込み]、右側の列で [重大] を選択します。

Applied Threat Intelligence IOC をフィルタする例

Applied Threat Intelligence IOC のみを表示する場合は、左側の列で [ソース]、中央の列で [表示の絞り込み]、右側の列で [Mandiant] を選択します。

タブの左側にある [フィルタ] フライアウト パネルを使用して IOC をフィルタすることもできます。列名を開き、値を見つけて、[その他] アイコンをクリックして [表示の絞り込み] または [除外] を選択します。

IOC マッチの詳細を表示して管理する

優先度、タイプ、ソース、IC スコア、カテゴリなど、インシデントの詳細を表示するには、IOC をクリックして [IOC の詳細] ページを開きます。このページでは、次のことができます。

  • イベントの優先順位付けを表示する
  • 関連付けを表示する

イベントの優先順位付けを表示する

[イベント] タブを使用して、IOC が検出されたイベントの優先順位付け方法を表示します。

イベントをクリックして [イベント ビューア] を開きます。優先度、根拠、イベントの詳細が表示されます。

関連付けを表示する

[関連付け] タブを使用して、アクターまたはマルウェアの関連付けを表示し、侵害の調査とアラートの優先順位付けに役立てます。

SOAR アラート

Google SecOps 統合のお客様の場合、このページに SOAR アラートが表示され、ケース ID が含まれます。ケース ID をクリックして [ケース] ページを開きます。[ケース] ページでは、アラートとその関連ケースの両方に関する情報を取得し、対応措置を講じることができます。詳細については、ケースの概要をご覧ください。

アラートのステータスを管理またはアラートを閉じる手順は次のとおりです。

  1. [ケース] ページに移動します。
  2. [ケースの詳細] セクション > アラートの概要で、[ケースに移動する] をクリックしてケースにアクセスします。

さらにサポートが必要な場合コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。