統合データモデルの使用ガイド
このドキュメントでは、統合データモデル(UDM)スキーマのフィールドの詳細およびイベントタイプに応じた必須フィールドと省略可能フィールドについて説明します。ルールエンジンの評価では、接頭辞は udm. で始まり、構成ベースの正規化(CBN)接頭辞は event.idm.read_only_udm. で始まります。
イベントのメタデータの入力
UDM イベントのイベント メタデータ セクションには、各イベントに関する一般情報が格納されます。
Metadata.event_type
- 目的: イベントのタイプを指定します。イベントに複数のタイプがある場合、この値で最も特異性の高いタイプを指定する必要があります。
- 必須: 必須
- エンコード: 事前に定義された UDM の event_type の列挙型のいずれかである必要があります。
- 有効な値: UDM 内の event_type に使用可能なすべての値は次のとおりです。
メールのイベント:
- EMAIL_TRANSACTION
- EMAIL_UNCATEGORIZED
エンドポイント上で実行されるファイルのイベント:
- FILE_UNCATEGORIZED
- FILE_CREATION
- FILE_DELETION
- FILE_MODIFICATION
- FILE_READ(例: パスワード ファイルの読み取り)
- FILE_COPY(例: USB メモリへのファイルのコピー)
- FILE_OPEN(例: ファイルを開くと、セキュリティ侵害が示される場合があります)
他のカテゴリに分類されないイベント(例: 未分類の Windows イベント)。
- GENERIC_EVENT
ミューテックス(相互除外オブジェクト)イベント:
- MUTEX_UNCATEGORIZED
- MUTEX_CREATION
ネットワーク テレメトリー(DHCP や DNS などの未加工のプロトコル ペイロード、HTTP、SMTP、FTP などのプロトコルのプロトコル サマリー、Netflow やファイアウォールからのフローイベントや接続イベントなど)。
- NETWORK_UNCATEGORIZED
- NETWORK_FLOW(例: Netflow からのフローを集計した統計情報)
- NETWORK_CONNECTION(例: ファイアウォールのネットワーク接続の詳細)
- NETWORK_FTP
- NETWORK_DHCP
- NETWORK_DNS
- NETWORK_HTTP
- NETWORK_SMTP
プロセスの起動、悪意のあるプロセスの作成、別のプロセスへの挿入、レジストリキーの変更、ディスクでの悪意のあるファイルの作成など、プロセスに関連するイベント。
- PROCESS_INJECTION
- PROCESS_LAUNCH
- PROCESS_MODULE_LOAD
- PROCESS_OPEN
- PROCESS_PRIVILEGE_ESCALATION
- PROCESS_TERMINATION
- PROCESS_UNCATEGORIZED
Microsoft Windows 固有のレジストリ イベントを扱う場合は、SETTING イベントではなく REGISTRY イベントを使用します。
- REGISTRY_UNCATEGORIZED
- REGISTRY_CREATION
- REGISTRY_MODIFICATION
- REGISTRY_DELETION
スキャン関連イベント。エンドポイントのセキュリティ プロダクト(EDR、AV、DLP)が実行するオンデマンドのスキャンと振る舞い検知が含まれます。SecurityResult を別のイベントタイプ(PROCESS_LAUNCH など)に追加する場合にのみ使用されます。
- SCAN_UNCATEGORIZED
- SCAN_FILE
- SCAN_HOST
- SCAN_PROCESS
- SCAN_VULN_HOST
- SCAN_VULN_NETWORK
スケジュールされたタスク イベント(例: Windows タスク スケジューラ、cron):
- SCHEDULED_TASK_UNCATEGORIZED
- SCHEDULED_TASK_CREATION
- SCHEDULED_TASK_DELETION
- SCHEDULED_TASK_ENABLE
- SCHEDULED_TASK_DISABLE
- SCHEDULED_TASK_MODIFICATION
サービスのイベント:
- SERVICE_UNSPECIFIED
- SERVICE_CREATION
- SERVICE_DELETION
- SERVICE_START
- SERVICE_STOP
設定のイベント(エンドポイントでシステム設定が変更される場合を含む)。 イベントの要件の設定については、こちらをご覧ください。
- SETTING_UNCATEGORIZED
- SETTING_CREATION
- SETTING_MODIFICATION
- SETTING_DELETION
セキュリティ プロダクトからのステータス メッセージ。エージェントが稼働中であることを示し、バージョン、フィンガープリント、その他のタイプのデータを送信します。
- STATUS_UNCATEGORIZED
- STATUS_HEARTBEAT(プロダクトが有効であることを示します)
- STATUS_STARTUP
- STATUS_SHUTDOWN
- STATUS_UPDATE(ソフトウェアまたはフィンガープリントの更新)
システム監査ログのイベント:
- SYSTEM_AUDIT_LOG_UNCATEGORIZED
- SYSTEM_AUDIT_LOG_WIPE
ユーザー認証アクティビティのイベント:
- USER_UNCATEGORIZED
- USER_BADGE_IN(例: ユーザーがサイトに物理的にバッジを表示するとき)
- USER_CHANGE_PASSWORD
- USER_CHANGE_PERMISSIONS
- USER_COMMUNICATION
- USER_CREATION
- USER_DELETION
- USER_LOGIN
- USER_LOGOUT
- USER_RESOURCE_ACCESS
- USER_RESOURCE_CREATION
- USER_RESOURCE_DELETION
- USER_RESOURCE_UPDATE_CONTENT
- USER_RESOURCE_UPDATE_PERMISSIONS
Metadata.collected_timestamp
- 目的: ベンダーのローカルの収集用インフラストラクチャによってイベントが収集された場合に、GMT のタイムスタンプをエンコードします。
- エンコード: RFC 3339。JSON または Proto3 のタイムスタンプ形式に適しています。
- 例:
- RFC 3339: 2019-09-10T20:32:31-08:00
- Proto3 形式: 2012-04-23T18:25:43.511Z
Metadata.event_timestamp
- 目的: イベントが生成された場合に GMT のタイムスタンプをエンコードします。
- 必須: 必須
- エンコード: RFC 3339。JSON または Proto3 のタイムスタンプ形式に適しています。
- 例:
- RFC 3339: 2019-09-10T20:32:31-08:00
- Proto3 形式: 2012-04-23T18:25:43.511Z
Metadata.description
- 目的: イベントについての、人が読める形式の説明。
- エンコード: 英数字の文字列、句読点、最大 1,024 バイト
- 例: ファイル c:\bar\foo.exe から機密ドキュメント c:\documents\earnings.docx へのアクセスがブロックされました。
Metadata.product_event_type
- 目的: 短くわかりやすい、人が読める形式のプロダクト固有のイベント名またはイベントタイプ。
- エンコード: 英数字の文字列、句読点、最大 64 バイト
- 例:
- レジストリ作成イベント
- ProcessRollUp
- 権限昇格が検出されました
- 不正なソフトウェアがブロックされました
Metadata.product_log_id
- 目的: ベンダー固有のイベント識別子をエンコードして、イベントを一意に識別します(GUID)。ユーザーはこの識別子を使用して、対象イベントのベンダーの専用コンソールを探す場合があります。
- エンコード: 大文字と小文字が区別され、英数字の文字列、句読点、最大 256 バイト。
- 例: ABcd1234-98766
Metadata.product_name
- 目的: プロダクトの名前を指定します。
- エンコード: 大文字と小文字が区別され、英数字の文字列、句読点、最大 256 バイト。
- 例:
- Falcon
- Symantec Endpoint Protection
Metadata.product_version
- 目的: プロダクトの名前を指定します。
- エンコード: 英数字の文字列、ピリオドおよびダッシュ、最大 32 バイト。
- 例:
- 1.2.3b
- 10.3:rev1
Metadata.url_back_to_product
- 目的: 特定のイベント(または一般的なイベント カテゴリ)に関する詳細情報を確認できる、関連ウェブサイトへの URL リンク。
- エンコード: ポート情報などのオプションのパラメータを含む有効な RFC 3986 URL。URL の前にプロトコル プレフィックスを含める必要があります(例: https://、http://)。
- 例: https://newco.altostrat.com:8080/event_info?event_id=12345
Metadata.vendor_name
- 目的: プロダクトのベンダーの名前を指定します。
- エンコード: 大文字と小文字が区別され、英数字の文字列、句読点、最大 256 バイト。
- 例:
- CrowdStrike
- Symantec
名詞のメタデータの入力
このセクションでは、名詞とは、プリンシパル、送信元、ターゲット、仲介者、観察者、概要の各エンティティを表す包括的な用語です。これらのエンティティには共通の属性がありますが、イベント内の異なるオブジェクトを表すものです。エンティティとイベントで各エンティティが表す内容の詳細については、ログデータを UDM としてフォーマットをご覧ください。
Noun.asset_id
- 目的: ベンダー固有の一意のデバイス ID(例: 新しいデバイスにエンドポイント セキュリティ ソフトウェアをインストールする際に生成される GUID。この ID を使用することで、該当の固有のデバイスを時系列で追跡できます)。
- Encoding: VendorName.ProductName:ID ここでの VendorName.ProductName:ID では、「Carbon Black」などのベンダー名について大文字と小文字は区別されません。また、VendorName.ProductName:ID では「Response」や「Endpoint Protection」などのプロダクト名も大文字と小文字は区別されません。ID は、お客様の環境内でグローバルに一意のベンダー固有のお客様識別子(GUID、デバイスを一意に識別する一意の値など)です。VendorName と VendorName は、32 文字以下の英数字です。ID は、最大 128 文字で、英数字、ダッシュ、ピリオドを使用できます。
- 例: CrowdStrike.Falcon:0bce4259-4ada-48f3-a904-9a526b01311f
Noun.email
- 目的: メールアドレス
- エンコード: 標準のメールアドレス形式。
- 例: johns@test.altostrat.com
Noun.file
- 目的: 詳細なファイル メタデータ。
- タイプ: オブジェクト
- ファイルのメタデータの入力をご覧ください。
Noun.hostname
- 目的: クライアントのホスト名またはドメイン名のフィールド。URL が存在する場合は含めないでください。
- エンコード: 有効な RFC 1123 ホスト名。
- 例:
- userwin10
- www.altostrat.com
Noun.platform
- 目的: プラットフォームのオペレーティング システム。
- Encoding: 列挙型
- 有効な値:
- LINUX
- MAC
- Windows
- UNKNOWN_PLATFORM
Noun.platform_patch_level
- 目的: プラットフォームのオペレーティング システムのパッチレベル。
- エンコード: 句読点を含む英数字の文字列、最大 64 文字。
- 例: ビルド 17134.48
Noun.platform_version
- 目的: プラットフォームのオペレーティング システムのバージョン。
- エンコード: 句読点を含む英数字の文字列、最大 64 文字。
- 例: Microsoft Windows 10 バージョン 1803
Noun.process
- 目的: 詳細なプロセスのメタデータ。
- タイプ: オブジェクト
- プロセスのメタデータの入力をご覧ください。
Noun.ip
- 目的:
- ネットワーク接続に関連付けられた単一の IP アドレス。
- イベント発生時に参加者のデバイスに関連付けられた 1 つ以上の IP アドレス(たとえば、EDR 製品がデバイスに関連付けられたすべての IP アドレスを認識している場合、IP フィールド内のすべての IP アドレスをエンコードできます)。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
- 反復性:
- イベントで特定のネットワーク接続が示されている場合(srcip:srcport > dstip:dstport など)、ベンダーは 1 つの IP アドレスのみを提供する必要があります。
- 特定のネットワーク接続ではなく、参加者のデバイスで発生する一般的なアクティビティがイベントで示されている場合、ベンダーはイベント発生時にデバイスに対してすべての関連する IP アドレスを提供することがあります。
- 例:
- 192.168.1.2
- 2001:db8:1:3::1
Noun.port
- 目的: イベント内で特定のネットワーク接続を記述するときの送信元または送信先のネットワークのポート番号。
- エンコード: 1~65,535 の有効な TCP/IP ポート番号。
例:
- 80
- 443
Noun.mac
- 目的: デバイスに関連付けられた 1 つ以上の MAC アドレス。
- エンコード: ASCII で表した有効な MAC アドレス(EUI-48)。
- 反復性: ベンダーは、イベント発生時にデバイスに関連付けられているすべての MAC アドレスを提供できます。
- 例:
- fedc:ba98:7654:3210:fedc:ba98:7654:3210
- 1080:0:0:0:8:800:200c:417a
- 00:a0:0:0:c9:14:c8:29
Noun.administrative_domain
- 目的: デバイスが属しているドメイン(Windows ドメインなど)。
- エンコード: 有効なドメイン名の文字列(最大 128 文字)。
- 例: corp.altostrat.com
Noun.registry
- 目的: 詳細なレジストリのメタデータ。
- タイプ: オブジェクト
- レジストリのメタデータの入力をご覧ください。
Noun.url
- 目的: 標準の URL
- エンコード: URL(RFC 3986)。有効なプロトコルのプレフィックス(https://、ftp:// など)が含まれる必要があります。ドメインの完全なパスが含まれる必要があります。 URL のパラメータが含まれる場合があります。
- 例: https://foo.altostrat.com/bletch?a=b;c=d
Noun.user
- 目的: 詳細なユーザーのメタデータ。
- タイプ: オブジェクト
- ユーザーのメタデータの入力をご覧ください。
認証のメタデータの入力
Authentication.AuthType
- 目的: 認証イベントが関連付けられているシステムの種類(Google Security Operations UDM)。
- エンコード: 列挙型。
- 有効な値:
- AUTHTYPE_UNSPECIFIED
- MACHINE - マシン認証
- PHYSICAL - 物理的な認証(バッジリーダーなど)
- SSO
- TACACS - ネットワーク接続システムの認証に使用される TACACS ファミリー プロトコル(TACACS、TACACS+ など)
- VPN
Authentication.Authentication_Status
- 目的: ユーザーまたは特定の認証情報の認証ステータスを記述します。
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_AUTHENTICATION_STATUS - デフォルトの認証ステータス
- ACTIVE - 認証メソッドがアクティブな状態です
- SUSPENDED - 認証メソッドが停止状態または無効状態です
- DELETED - 認証メソッドが削除されました
- NO_ACTIVE_CREDENTIALS - 認証メソッドに有効な認証情報がありません。
Authentication.auth_details
- 目的: ベンダー定義の認証の詳細
- エンコード: 文字列。
Authentication.Mechanism
- 目的: 認証に使用されるメカニズム。
- エンコード: 列挙型。
- 有効な値:
- MECHANISM_UNSPECIFIED - デフォルトの認証メカニズム。
- BADGE_READER
- BATCH - 一括認証。
- CACHED_INTERACTIVE - キャッシュされた認証情報を使用するインタラクティブ認証。
- HARDWARE_KEY
- LOCAL
- MECHANISM_OTHER - ここで定義されていない他のメカニズム。
- NETWORK - ネットワーク認証。
- NETWORK_CLEAR_TEXT - ネットワーク平文認証。
- NEW_CREDENTIALS - 新しい認証情報を使用する認証。
- OTP
- REMOTE -リモート認証
- REMOTE_INTERACTIVE - RDP、ターミナル サービス、Virtual Network Computing(VNC)など。
- SERVICE - サービス認証。
- UNLOCK - 人間による直接インタラクティブ ロック解除認証。
- USERNAME_PASSWORD
DHCP のメタデータの入力
Dynamic Host Control Protocol(DHCP)のメタデータ フィールドは、DHCP のネットワーク管理プロトコルのログ情報を記録します。
Dhcp.client_hostname
- 目的: クライアントのホスト名。詳しくは、RFC 2132、DHCP のオプション、BOOTP のベンダー拡張についてご確認ください。
- エンコード: 文字列。
Dhcp.client_identifier
- 目的: クライアント ID。詳しくは、RFC 2132、DHCP のオプション、BOOTP のベンダー拡張についてご確認ください。
- エンコード: バイト。
Dhcp.file
- 目的: ブートイメージのファイル名。
- エンコード: 文字列。
Dhcp.flags
- 目的: DHCP フラグのフィールドの値。
- エンコード: 32 ビットの符号なし整数。
Dhcp.hlen
- 目的: ハードウェア アドレスの長さ。
- エンコード: 32 ビットの符号なし整数。
Dhcp.hops
- 目的: DHCP のホップ数。
- エンコード: 32 ビットの符号なし整数。
Dhcp.htype
- 目的: ハードウェアのアドレスタイプ。
- エンコード: 32 ビットの符号なし整数。
Dhcp.lease_time_seconds
- 目的: クライアントがリクエストした、IP アドレスのリース期間(秒単位)。詳しくは、RFC 2132、DHCP のオプション、BOOTP のベンダー拡張についてご確認ください。
- エンコード: 32 ビットの符号なし整数。
Dhcp.opcode
- 目的: BOOTP オペレーション コード(RFC 951 のセクション 3 を参照)
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_OPCODE
- BOOTREQUEST
- BOOTREPLY
Dhcp.requested_address
- 目的: クライアント ID。詳しくは、RFC 2132、DHCP のオプション、BOOTP のベンダー拡張についてご確認ください。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
Dhcp.seconds
- 目的: アドレスの取得/更新プロセスが開始されてからの経過時間。
- エンコード: 32 ビットの符号なし整数。
Dhcp.sname
- 目的: クライアントによる起動リクエスト発信元サーバーの名前。
- エンコード: 文字列。
Dhcp.transaction_id
- 目的: クライアントのトランザクション ID。
- エンコード: 32 ビットの符号なし整数。
Dhcp.type
- 目的: DHCP メッセージ タイプ。詳しくは、RFC 1533 についてご確認ください。
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_MESSAGE_TYPE
- DISCOVER
- 割引
- リクエスト
- DECLINE
- ACK
- NAK
- RELEASE
- INFORM
- WIN_DELECTED
- WIN_EXPIRED
Dhcp.chaddr
- 目的: クライアント ハードウェアの IP アドレス。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
Dhcp.ciaddr
- 目的: クライアントの IP アドレス。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
Dhcp.giaddr
- 目的: リレー エージェントの IP アドレス。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
Dhcp.siaddr
- 目的: 次のブートストラップ サーバーの IP アドレス。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
Dhcp.yiaddr
- 目的: IP アドレス。
- エンコード: ASCII でエンコードされた有効な IPv4 アドレスまたは IPv6 アドレス(RFC 5942)。
DHCP オプションのメタデータの入力
DHCP オプション メタデータ フィールドには、DHCP オプションログの情報が記録されます。
Option.code
- 目的: DHCP オプション コードの保存詳しくは、RFC 1533 のDHCP のオプションとBOOTP のベンダー拡張をご確認ください。
- エンコード: 32 ビットの符号なし整数。
Option.data
- 目的: DHCP オプション データの保存。詳しくは、RFC 1533 のDHCP のオプションとBOOTP のベンダー拡張をご確認ください。
- エンコード: バイト。
DNS メタデータの入力
DNS メタデータ フィールドには、DNS リクエストおよびレスポンス パケットに関連する情報が取得されます。DNS リクエストとレスポンスのデータグラムにあるデータとは 1 対 1 で対応しています。
Dns.authoritative
- 目的: 信頼できる DNS サーバーに true を設定します。
- エンコード: ブール値。
Dns.id
- 目的: DNS クエリ ID の保存。
- エンコード: 32 ビット整数。
Dns.response
- 目的: イベントが DNS レスポンスの場合は true に設定します。
- Encoding: ブール値。
Dns.opcode
- 目的: DNS クエリのタイプ(標準、逆順、サーバーのステータスなど)の指定に使用する DNS OpCode を保存します。
- エンコード: 32 ビット整数。
Dns.recursion_available
- 目的: 再帰 DNS ルックアップを使用できる場合は、true に設定します。
- エンコード: ブール値。
Dns.recursion_desired
- 目的: 再帰 DNS ルックアップを使用できる場合は、true に設定します。
- Encoding: ブール値。
Dns.response_code
- 目的: RFC 1035(Domain Names - Implementation and Specification)で定義されている DNS レスポンス コードを保存します。
- エンコード: 32 ビット整数。
Dns.truncated
- 目的: DNS レスポンスが切り捨てられる場合に true に設定します。
- エンコード: ブール値。
Dns.questions
- 目的: ドメイン プロトコル メッセージの質問を保存します。DNS Question メタデータの入力をご覧ください。
Dns.answers
- 目的: ドメイン名のクエリに対する回答を保存します。DNS リソース レコードのメタデータの入力をご覧ください。
Dns.authority
- 目的: ドメイン名の照会に対する回答の検証を行ったドメイン ネームサーバーを保存します。DNS リソース レコードのメタデータの入力をご覧ください。
Dns.additional
- 目的: ドメインに対する答えを検証するために使用できる追加のドメイン名サーバーを保存します。DNS リソース レコードのメタデータの入力をご覧ください。
DNS Question メタデータの入力
DNS Question メタデータ フィールドには、ドメイン プロトコル メッセージの question セクションに含まれている情報が入力されています。
Question.name
- 目的: ドメイン名を保存します。
- エンコード: 文字列。
Question.class
- 目的: クエリのタイプを指定するコードを保存します。
- エンコード: 32 ビット整数。
Question.type
- 目的: クエリのタイプを指定するコードを保存します。
- エンコード: 32 ビット整数。
DNS リソース レコードのメタデータの入力
DNS リソース レコード メタデータ フィールドには、ドメイン プロトコル メッセージのリソース レコードに含まれる情報が入力されます。
ResourceRecord.binary_data
- 目的: DNS レスポンスの一部として含まれている UTF8 以外の文字列の未加工バイトを保存します。DNS サーバーが返すレスポンス データに UTF8 以外のデータが含まれている場合にのみ、このフィールドを使用する必要があります。それ以外の場合は、以下のデータ フィールドに DNS レスポンスを配置します。このタイプの情報は、ResourceRecord.data ではなく、ここに保存する必要があります。
エンコード: バイト。
ResourceRecord.class
- 目的: リソース レコードのクラスを指定するコードを保存します。
- エンコード: 32 ビット整数。
ResourceRecord.data
- 目的: DNS 質問に対するペイロードまたはレスポンスを UTF-8 形式でエンコードして、すべてのレスポンスに保存します。たとえば、データ フィールドは、ドメイン名が参照するマシンの IP アドレスを返すことができます。リソース レコードが別のタイプまたはクラスの場合、別のドメイン名が含まれている可能性があります(1 つのドメイン名が別のドメイン名にリダイレクトされた場合)。データは DNS レスポンスと同じように保存する必要があります。
- エンコード: 文字列。
ResourceRecord.name
- 目的: リソース レコードのオーナーの名前を保存します。
- エンコード: 文字列。
ResourceRecord.ttl
- 目的: 情報ソースを再照会する前にリソース レコードをキャッシュに保存できる時間間隔を保存します。
- エンコード: 32 ビット整数。
ResourceRecord.type
- 目的: リソース レコードのタイプを指定するコードを保存します。
- エンコード: 32 ビット整数。
メールのメタデータの入力
メールのメタデータ フィールドのほとんどには、メッセージ ヘッダーに含まれるメールアドレスを記録します。また、RFC 5322 で定義されている標準的なメールアドレスの形式(local-mailbox@domain)に従う必要があります。例: frank@email.example.com。
Email.from
- 目的: from のメールアドレスを保存します。
- エンコード: 文字列。
Email.reply_to
- 目的: reply_to のメールアドレスを保存します。
- エンコード: 文字列。
Email.to
- 目的: to メールアドレスを保存します。
- エンコード: 文字列。
Email.cc
- 目的: cc メールアドレスを保存します。
- エンコード: 文字列。
Email.bcc
- 目的: bcc メールアドレスを保存します。
- エンコード: 文字列。
Email.mail_id
- 目的: メール(またはメッセージ)の ID を保存します。
- エンコード: 文字列。
- 例: 192544.132632@email.example.com
Email.subject
- 目的: メールの件名を保存します。
- エンコード: 文字列。
- 例: 「このメッセージをお読みください」
拡張機能のメタデータの入力
Google Security Operations UDM によってまだ分類されていないファースト クラス メタデータのイベントタイプ。Extensions.auth
- 目的: 認証メタデータの拡張機能。
- エンコード: 文字列。
- 例:
- サンドボックス メタデータ(ファイルによって示されたすべての行動。FireEye など)。
- ネットワーク アクセス制御(NAC)のデータ
- ユーザーに関する LDAP の詳細(ロール、組織など)
Extensions.auth.auth_details
- 目的: 認証タイプやメカニズムに関するベンダー固有の詳細を指定します。認証プロバイダは多くの場合、認証タイプに関する有用な情報を提供する via_mfa や via_ad などのタイプを定義します。これらのタイプは、ユーザビリティとデータセット間のルールの互換性のために、引き続き auth.type または auth.type として一般化できます。
- エンコード: 文字列。
- 例: via_mfa、via_ad。
Extensions.vulns
- 目的: 脆弱性メタデータの拡張機能。
- エンコード: 文字列。
- 例:
- 脆弱性のスキャンデータをホストする
ファイルのメタデータの入力
File.file_metadata
- 目的: ファイルに関連付けられたメタデータ。
- エンコード: 文字列。
- 例:
- 作成者
- リビジョン番号
- バージョン番号
- 最終保存日
File.full_path
- 目的: システム上のファイルの場所を特定するフルパス。
- エンコード: 文字列。
- 例: \Program Files\Custom Utilities\Test.exe
File.md5
- 目的: ファイルの MD5 ハッシュの値。
- エンコード: 文字列。小文字の 16 進数です。
- 例: 35bf623e7db9bf0d68d0dda764fd9e8c
File.mime_type
- 目的: ファイルの Multipurpose Internet Mail Extensions(MIME)タイプを指定します。
- エンコード: 文字列。
- 例:
- PE
- PowerShell スクリプト
File.sha1
- 目的: ファイルの SHA-1 ハッシュの値。
- エンコード: 文字列。小文字の 16 進数です。
- 例: eb3520d53b45815912f2391b713011453ed8abcf
File.sha256
- 目的: ファイルの SHA-256 ハッシュの値。
- エンコード: 文字列。小文字の 16 進数です。
- 例:
- d7173c568b8985e61b4050f81b3fd8e75bc922d2a0843d7079c81ca4b6e36417
File.size
- 目的: ファイルのサイズ。
- エンコード: 64 ビットの符号なし整数。
- 例: 342135。
FTP のメタデータの入力
Ftp.command
- 目的: FTP コマンドを保存します。
- エンコード: 文字列。
- 例:
- binary
- 削除
- get
- put
グループのメタデータの入力
組織のグループに関する情報。
Group.creation_time
- 目的: グループの作成日時。
- エンコード: RFC 3339。JSON または Proto3 のタイムスタンプ形式に適しています。
Group.email_addresses
- 目的: グループの連絡先情報。
- エンコード: メール。
Group.group_display_name
- 目的: グループの表示名。
- エンコード: 文字列。
- 例:
- 金融
- HR
- マーケティング
Group.product_object_id
- 目的: LDAP のオブジェクト ID など、グローバルに一意なユーザー オブジェクト ID です。
- エンコード: 文字列。
Group.windows_sid
- 目的: Microsoft Windows Security Identifier(SID)のグループ属性フィールド。
- エンコード: 文字列。
HTTP のメタデータの入力
Http.method
- 目的: HTTP リクエストのメソッドを保存します。
- エンコード: 文字列。
- 例:
- GET
- HEAD
- POST
Http.referral_url
- 目的: HTTP リファラーの URL を保存します。
- エンコード: 有効な RFC 3986 URL。
- 例: https://www.altostrat.com
Http.response_code
- 目的: HTTP レスポンスのステータス コードを保存します。このコードは、特定の HTTP リクエストが正常に完了したかどうかを示します。
- エンコード: 32 ビット整数。
- 例:
- 400
- 404
Http.useragent
- 目的: ユーザー エージェントのリクエスト ヘッダーを保存します。このヘッダーには、リクエスト側のソフトウェア ユーザー エージェントのアプリケーション タイプ、オペレーティング システム、ソフトウェア ベンダー、ソフトウェア バージョンが含まれます。
- エンコード: 文字列。
- 例:
- Mozilla / 5.0(X11。Linux x86_64)
- AppleWebKit/534.26(Gecko などの KHTML)
- Chrome/41.0.2217.0
- Safari/527.33
位置情報メタデータの入力
Location.city
- 目的: 都市の名前を保存します。
- エンコード: 文字列。
- 例:
- Sunnyvale
- シカゴ
- マラガ
Location.country_or_region
- 目的: 国や地域の名前を保存します。
- エンコード: 文字列。
- 例:
- 米国
- 英国
- スペイン
Location.name
- 目的: 企業に固有の名前(建物、キャンパスなど)を保存します。
- エンコード: 文字列。
- 例:
- Campus 7B
- 建物 A2
Location.state
- 目的: 都道府県の名前。
- エンコード: 文字列。
- 例:
- カリフォルニア
- イリノイ
- オンタリオ
ネットワークのメタデータの入力
Network.application_protocol
- 目的: ネットワーク アプリケーション プロトコルを指定します。
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_APPLICATION_PROTOCOL
- QUIC
- HTTP
- HTTPS
- DNS
- DHCP
Network.direction
- 目的: ネットワーク トラフィックの方向を指定します。
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_DIRECTION
- INBOUND
- OUTBOUND
- BROADCAST
Network.email
- 目的: 送信者 / 受信者のメールアドレスを指定します。
- エンコード: 文字列。
- 例: jcheng@company.example.com
Network.ip_protocol
- 目的: IP プロトコルを指定します。
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_IP_PROTOCOL
- EIRP - Enhanced Interior Gateway Routing Protocol
- ESP - カプセル化セキュリティ ペイロード
- ETHERIP - Ethernet-within-IP Encapsulation
- GRE - Generic Routing Encapsulation
- ICMP - Internet Control Message Protocol
- IGMP - Internet Group Management Protocol
- IP6IN4 - IPv6 Encapsulation
- PIM - Protocol Independent Multicast
- TCP - Transmission Control Protocol
- UDP - User Datagram Protocol
- VRRP - Virtual Router Redundancy Protocol
Network.received_bytes
- 目的: 受信するバイト数を指定します。
- エンコード: 64 ビットの符号なし整数。
- 例: 12,453,654,768
Network.sent_bytes
- 目的: 送信するバイト数を指定します。
- エンコード: 64 ビットの符号なし整数。
- 例: 7,654,876
Network.session_duration
- 目的: ネットワーク セッション継続期間を保存します。通常はセッションのドロップ イベントで返されます。期間を設定するには、network.session_duration.seconds = 1(int64 型)または network.session_duration.nanos = 1(int32 型)のいずれかに設定します。
- エンコード:
- 32 ビットの整数 - 秒(network.session_duration.seconds)。
- 64 ビット整数 - ナノ秒(network.session_duration.nanos)。
Network.session_id
- 目的: ネットワーク セッション ID の保存。
- エンコード: 文字列。
- 例: SID:ANON:www.w3.org:j6oAOxCWZh/CD723LGeXlf-01:34
プロセスのメタデータの入力
Process.command_line
- 目的: プロセスのコマンドライン文字列を保存します。
- エンコード: 文字列。
- 例: c:\windows\system32\net.exe グループ
Process.product_specific_process_id
- 目的: プロダクトに固有のプロセス ID を保存します。
- エンコード: 文字列。
- 例:
MySQL:78778
またはCS:90512
Process.parent_process.product_specific_process_id
- 目的: 親プロセスのプロダクトに固有のプロセス ID を保存します。
- エンコード: 文字列。
- 例:
MySQL:78778
またはCS:90512
Process.file
- 目的: プロセスで使用されるファイルのファイル名を保存します。
- エンコード: 文字列。
- 例: report.xls
Process.parent_process
- 目的: 親プロセスの詳細を保存します。
- エンコード: 名詞(プロセス)
Process.pid
- 目的: プロセス ID を保存します。
- エンコード: 文字列。
- 例:
- 308
- 2002
レジストリのメタデータの入力
Registry.registry_key
- 目的: アプリケーションまたはシステム コンポーネントに関連付けられたレジストリ キーを保存します。
- エンコード: 文字列。
- 例: HKEY_LOCAL_MACHINE/SYSTEM/DriverDatabase
Registry.registry_value_name
- 目的: アプリケーションまたはシステム コンポーネントに関連付けられたレジストリ値の名前を保存します。
- エンコード: 文字列。
- 例: TEMP
Registry.registry_value_data
- 目的: レジストリ値に関連付けられたデータを保存します。
- エンコード: 文字列。
- 例: %USERPROFILE%\Local Settings\Temp
セキュリティ結果のメタデータの入力
セキュリティ結果のメタデータには、セキュリティ システムによって検出された、またはセキュリティ上のリスクや脅威を低減するために行ったアクションによって検出されたセキュリティ上のリスクや脅威の詳細を含めます。
SecurityResult.about
- 目的: セキュリティの結果の説明を入力します。
- エンコード: 名詞。
SecurityResult.action
- 目的: セキュリティ アクションを指定します。
- エンコード: 列挙型。
- 有効な値: Google Security Operations UDM では次のセキュリティ アクションが定義されています。
- 許可
- ALLOW_WITH_MODIFICATION - ファイルやメールがウイルス駆除または書き換えられて、転送されました。
- ブロック
- QUARANTINE - 後で分析するために保存します(ブロックを意味するわけではありません)。
- UNKNOWN_ACTION
SecurityResult.action_details
- 目的: セキュリティ インシデントの結果として行われたアクションについて、ベンダーが詳しく説明します。一般的に、セキュリティ アクションはより一般的な Security_Result.action UDM フィールドに変換されます。ただし、場合によっては、ベンダー提供のアクションの説明のために正確なルールを記述する必要があります。
- エンコード: 文字列。
- 例: ドロップ、ブロック、復号、暗号化。
SecurityResult.category
- 目的: セキュリティ カテゴリを指定します。
- Encoding: 列挙型。
- 有効な値: Google Security Operations UDM では次のセキュリティ カテゴリが定義されています。
- ACL_VIOLATION - ファイル、ウェブサービス、プロセス、ウェブ オブジェクトへのアクセスなどの不正なアクセスが試行されました。
- AUTH_VIOLATION - パスワードが正しくないか、2 要素認証などの認証に失敗しました。
- DATA_AT_REST - DLP: スキャン中に保存されたセンサーデータ。
- DATA_DESTRUCTION - データを破棄または削除する試み。
- DATA_EXFILTRATION - DLP: センサーデータの送信、USB メモリへのコピー。
- EXPLOIT - オーバーフロー、プロトコル エンコードの誤り、ROP、SQL インジェクションなど、ネットワークとホストベースの試行。
- mail_PHISHING - フィッシング メール、チャット メッセージなど。
- MAIL_SPAM - 迷惑メール、メッセージなど。
- MAIL_SPOOFING - なりすまし送信元のメールアドレス。
- NETWORK_CATEGORIZED_CONTENT
- NETWORK_COMMAND_AND_CONTROL - コマンドと制御チャネルがわかっている場合。
- NETWORK_DENIAL_OF_SERVICE
- NETWORK_MALICIOUS - コマンドと制御、ネットワーク悪用、不審なアクティビティ、潜在的なリバース トンネルなど。
- NETWORK_SUSPICIOUS - セキュリティに関連しないもの(URL がギャンブルにリンクされている場合など)。
- NETWORK_RECON - IDS によって検出されたポートスキャン、ウェブ アプリケーションによるプローブ。
- POLICY_VIOLATION - ファイアウォール、プロキシ、HIPS ルールの違反、NAC ブロック アクションなどのセキュリティ ポリシー違反。
- SOFTWARE_MALICIOUS - マルウェア、スパイウェア、ルートキットなど。
- SOFTWARE_PUA - アドウェアなど、望ましくないアプリ。
- SOFTWARE_SUSPICIOUS
- UNKNOWN_CATEGORY
SecurityResult.confidence
- 目的: プロダクトによって見積もられたセキュリティ イベントに関する信頼度を指定します。
- Encoding: 列挙型。
- 有効な値: Google Security Operations UDM では、次のプロダクトの信頼カテゴリが定義されています。
- UNKNOWN_CONFIDENCE
- LOW_CONFIDENCE
- MEDIUM_CONFIDENCE
- HIGH_CONFIDENCE
SecurityResult.confidence_details
- 目的: プロダクト ベンダーが見積もったセキュリティ イベントの信頼性に関する追加の詳細。
- エンコード: 文字列。
SecurityResult.priority
- 目的: プロダクト ベンダーが見積もったセキュリティ イベントの優先度を指定します。
- Encoding: 列挙型。
- 有効な値: Google Security Operations UDM では、次のプロダクト優先度のカテゴリを定義しています。
- UNKNOWN_PRIORITY
- LOW_PRIORITY
- MEDIUM_PRIORITY
- HIGH_PRIORITY
SecurityResult.priority_details
- 目的: セキュリティ結果の優先度に関するベンダー固有の情報。
- エンコード: 文字列。
SecurityResult.rule_id
- 目的: セキュリティ ルールの識別子。
- エンコード: 文字列。
- 例:
- 08123
- 5d2b44d0-5ef6-40f5-a704-47d61d3babbe
SecurityResult.rule_name
- 目的: セキュリティ ルールの名前。
- エンコード: 文字列。
- 例: BlockInboundToOracle。
SecurityResult.severity
- 目的: Google Security Operations UDM で定義された値を使用してプロダクト ベンダーが推定するセキュリティ イベントの重大度。
- Encoding: 列挙型。
- 有効な値: Google Security Operations UDM では、次のプロダクト重大度が定義されています。
- UNKNOWN_SEVERITY - 悪意がない
- INFORMATIONAL—悪意がない
- ERROR—悪意がない
- LOW—悪意がある
- MEDIUM—悪意がある
- HIGH—悪意がある
SecurityResult.severity_details
- 目的:プロダクト ベンダーが見積もったセキュリティ イベントの重大度。
- エンコード: 文字列。
SecurityResult.threat_name
- 目的: セキュリティ脅威の名前。
- エンコード: 文字列。
- 例:
- W32/File-A
- Slammer
SecurityResult.url_back_to_product
- 目的: このセキュリティ イベントのソース プロダクト コンソールにダイレクトする URL。
- エンコード: 文字列。
ユーザーのメタデータの入力
User.email_addresses
- 目的: ユーザーのメールアドレスを保存します。
- エンコード: 繰り返しの文字列。
- 例: johnlocke@company.example.com
User.employee_id
- 目的: ユーザーの人事従業員 ID を保存します。
- エンコード: 文字列。
- 例: 11223344。
User.first_name
- 目的: ユーザーの名前を保存します。
- エンコード: 文字列。
- 例: John。
User.middle_name
- 目的: ユーザーの名前を保存します。
- エンコード: 文字列。
- 例: Anthony。
User.last_name
- 目的: ユーザーの名前を保存します。
- エンコード: 文字列。
- 例: Locke。
User.group_identifiers
- 目的: ユーザーに関連付けられたグループ ID(GUID、LDAP OID など)を保存します。
- エンコード: 繰り返しの文字列。
- 例: admin-users。
User.phone_numbers
- 目的: ユーザーの電話番号を保存します。
- エンコード: 繰り返しの文字列。
- 例: 800-555-0101
User.title
- 目的: ユーザーの役職を保存します。
- エンコード: 文字列。
- 例: 顧客関係マネージャー。
User.user_display_name
- 目的: ユーザーの名前を保存します。
- エンコード: 文字列。
- 例: John Locke。
User.userid
- 目的: ユーザー ID を保存します。
- エンコード: 文字列。
- 例: jlocke。
User.windows_sid
- 目的: ユーザーに関連付けられた Microsoft Windows セキュリティ識別子(SID)を保存します。
- エンコード: 文字列。
- 例: S-1-5-21-1180649209-123456789-3582944384-1064
脆弱性のメタデータの入力
Vulnerability.about
- 目的: 脆弱性が特定の名詞に関するものである場合(executable など)、ここに追加します。
- エンコード: 名詞。名詞のメタデータの入力をご覧ください。
- 例: executable。
Vulnerability.cvss_base_score
- 目的: Common Vulnerability Scoring System(CVSS)の基本スコア。
- エンコード: 浮動小数点。
- 範囲: 0.0~10.0
- 例: 8.5
Vulnerability.cvss_vector
目的: 脆弱性の CVSS プロパティのベクトル。CVSS のスコアは次の指標で構成されます。
- 攻撃ベクトル(AV)
- アクセスの複雑さ(AC)
- 認証(Au)
- 機密性保持の影響(C)
- 整合性の影響(I)
- 可用性への影響(A)
詳細については、https://nvd.nist.gov/vuln-metrics/cvss/v2-calculator をご覧ください。
エンコード: 文字列。
目的: AV:L/AC:H/Au:N/C:N/I:P/A:C
Vulnerability.cvss_version
- 目的: 脆弱性のスコアまたはベクトルの CVSS バージョン。
- エンコード: 文字列。
- 例: 3.1
Vulnerability.description
- 目的: 脆弱性の説明。
- エンコード: 文字列。
Vulnerability.first_found
- 目的: 脆弱性スキャンの履歴を維持するプロダクトでは、このアセットの脆弱性が最初に検出された時刻を first_found に入力する必要があります。
- エンコード: 文字列。
Vulnerability.last_found
- 目的: 脆弱性スキャンの履歴を保持するプロダクトでは、このアセットの脆弱性が最後に検出された時刻を last_found に入力する必要があります。
- エンコード: 文字列。
Vulnerability.name
- 目的: 脆弱性の名前。
- エンコード: 文字列。
- 例: サポートされていない OS バージョンが検出されました。
Vulnerability.scan_end_time
- 目的: アセット スキャン中に脆弱性が検出された場合は、スキャンの終了時間をこのフィールドに入力します。終了時間が利用できない場合や適用できない場合は、このフィールドを空のままにします。
- エンコード: 文字列。
Vulnerability.scan_start_time
- 目的: アセット スキャン中に脆弱性が検出された場合は、スキャンの開始時間をこのフィールドに入力します。開始時間が利用できない場合や適用できない場合は、このフィールドを空のままにします。
- エンコード: 文字列。
Vulnerability.severity
- 目的: 脆弱性の重大度。
- エンコード: 列挙型。
- 有効な値:
- UNKNOWN_SEVERITY
- 低
- MEDIUM
- 高
Vulnerability.severity_details
- 目的: ベンダー固有の重大度の詳細。
- エンコード: 文字列。
アラート メタデータの入力
idm.is_significant
- 目的: Enterprise Insights にアラートを表示するかどうかを指定します。
- エンコード: ブール値
idm.is_alert
- 目的: イベントがアラートかどうかを識別します。
- エンコード: ブール値
イベントタイプに基づく必須フィールドと省略可能フィールド
このセクションでは、UDM イベントタイプに応じて入力する必要がある必須フィールドとオプション フィールドについて説明します。これらのフィールドの詳細については、統合データモデルのフィールド リストをご覧ください。
EMAIL_TRANSACTION
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal: メールのメッセージ送信元のマシンに関する情報を入力します。たとえば、送信者の IP アドレスなどです。
オプション フィールド:
- about: メール本文に埋め込まれている URL、IP、ドメイン、添付ファイル。
- securityResult.about: メール本文に埋め込まれている不正な URL、IP、ファイル。
- network.email: メールの送信者または受信者の情報。
- principal: メールの送信元であるクライアント マシンデータがある場合は、principal にサーバーの詳細(クライアント プロセス、ポート番号、ユーザー名など)を入力します。
- target: 宛先メールサーバーのデータがある場合は、target にサーバーの詳細(IP アドレスなど)を入力します。
- intermediary: メールサーバーのデータまたはメールプロキシのデータがある場合は、intermediary にサーバーの詳細を入力します。
注:
- principal.email または principal.email には入力しないでください。
- security_result.about または security_result.about のメール フィールドにのみ入力してください。
- 通常、最上位のセキュリティ結果には名詞セットが含まれます(迷惑メールの場合は省略可)。
FILE_CREATION、FILE_DELETION、FILE_MODIFICATION、FILE_READ、FILE_OPEN
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- (省略可)principal.process に、ファイルにアクセスするプロセスに関する情報を入力します。
- target:
- ファイルがリモートの場合(SMB 共有など)、target にはマシンのマシン ID が少なくとも 1 つ含まれている必要があります。それ以外の場合、すべてのマシン ID は空白である必要があります。
- target.file に、ファイルに関する情報を入力します。
オプション:
- security_result: 検出された悪意のあるアクティビティを記述します。
- principal.user: プロセスに関するユーザー情報が利用可能かどうかを入力します。
FILE_COPY
必須フィールド:
- metadata: 説明されている必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- (省略可)principal.process に、ファイルコピー オペレーションを実行するプロセスに関する情報を入力します。
- src:
- src.file に、ソースファイルに関する情報を入力します。
- ファイルがリモートの場合(SMB 共有など)、src にはソースファイルを保存するソースマシンのマシン識別子が少なくとも 1 つ含まれている必要があります。
- target:
- target.file に、ターゲット ファイルに関する情報を入力します。
- ファイルがリモートの場合(SMB 共有など)、target フィールドには、ターゲット ファイルを保持するターゲット マシンのマシン識別子を 1 つ以上含める必要があります。
オプション フィールド:
- security_result: 検出された悪意のあるアクティビティを記述します。
- principal.user: プロセスに関するユーザー情報が利用可能かどうかを入力します。
MUTEX_CREATION
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- principal.process に、ミューテックスを作成するプロセスに関する情報を入力します。
- target:
- target.resource に入力します。
- target.resource.type に MUTEX を入力します。
- target.resource.name に、作成したミューテックスの名前を入力します。
オプション:
- security_result: 検出された悪意のあるアクティビティを記述します。
- principal.user: プロセスに関するユーザー情報が利用可能かどうかを入力します。
MUTEX_CREATION の UDM の例
次の例は、Google Security Operations UDM の MUTEX_CREATION タイプのイベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: MUTEX_CREATION
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "test.altostrat.com"
process {
pid: "0xc45"
file {
full_path: "C:\\Windows\\regedit.exe"
}
}
}
target {
resource {
type: "MUTEX"
name: "test-mutex"
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: デバイスとプロセスの詳細。
- target: ミューテックスの情報。
NETWORK_CONNECTION
必須フィールド:
- metadata: event_timestamp
- principal: ネットワーク接続を開始したマシンの詳細(ソースなど)を含めます。
- target: プリンシパル マシンと異なる場合はターゲット マシンの詳細を含めます。
- network: ネットワーク接続(ポート、プロトコルなど)の詳細を含めます。
オプション フィールド:
- principal.process と principal.process: ネットワーク接続のプリンシパルとターゲットに関連付けられたプロセス情報を含めます(該当する場合)。
- principal.user と principal.user: ネットワーク接続のプリンシパルとターゲットに関連付けられたユーザー情報を含めます(該当する場合)。
NETWORK_HTTP
NETWORK_HTTP イベントタイプは、プリンシパルからターゲットのウェブサーバーへの HTTP ネットワーク接続を表します。
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal: ウェブ リクエストを開始したクライアントを表し、少なくとも 1 つのマシン識別子(ホスト名、IP、MAC、独自のアセット識別子など)またはユーザー識別子(ユーザー名など)を含めます。特定のネットワーク接続が記述され、クライアント ポート番号が利用可能な場合、そのネットワーク接続に関連付けられたポート番号とともに 1 つの IP アドレスのみを指定する必要があります(ただし、参加者のデバイスをより適切に示すために他のマシン識別子を指定することもできます)。送信元ポートを使用できない場合は、プリンシパル デバイスを示すすべての IP アドレス、MAC アドレス、アセット ID、ホスト名の値を指定できます。
- target: ウェブサーバーを表し、デバイス情報と必要に応じてポート番号を含めます。ターゲット ポート番号が使用可能な場合、そのネットワーク接続に関連付けられたポート番号に加え、1 つの IP アドレスのみを指定します(ただし、ターゲットに複数の他のマシン識別子を指定することもできます)。target.url には、アクセス対象の URL を入力します。
- network と network.http: HTTP ネットワーク接続の詳細を含めます。次のフィールドを入力する必要があります。
- network.ip_protocol
- network.application_protocol
- network.http.method
オプション フィールド:
- about: HTTP トランザクションで見つかった他のエンティティ(アップロードしたファイルまたはダウンロードしたファイルなど)を表します。
- intermediatery: プロキシ サーバーを表します(プリンシパルまたはターゲットと異なる場合)。
- metadata: 他のメタデータ フィールドに入力します。
- network: 他のネットワーク フィールドに入力します。
- network.email: HTTP ネットワーク接続元がメール メッセージに表示された URL である場合は、network.email に詳細を入力します。
- observer: パッシブ スニファーを表します(存在する場合)。
- security_result: 1 つ以上の項目を security_result フィールドに追加して、検出される悪意のあるアクティビティを表します。
NETWORK_HTTP の UDM の例
次の例は、NETWORK_HTTP タイプの Sophos ウイルス対策イベントを Google Security Operations UDM 形式に変換する方法を示しています。
元の Sophos ウイルス対策イベントは次のとおりです。
date=2013-08-07 time=13:27:41 timezone="GMT" device_name="CC500ia" device_id= C070123456-ABCDE log_id=030906208001 log_type="Anti-Virus" log_component="HTTP" log_subtype="Virus" status="" priority=Critical fw_rule_id=0 user_name="john.smith" iap=7 av_policy_name="" virus="TR/ElderadoB.A.78" url="altostrat.fr/img/logo.gif" domainname="altostrat.fr" src_ip=10.10.2.10 src_port=60671 src_country_code= dst_ip=203.0.113.31 dst_port=80 dst_country_code=FRA
Google Security Operations UDM 構文を使用して Proto3 で同じ情報をフォーマットする方法は次のとおりです。
metadata {
event_timestamp: "2013-08-07T13:27:41+00:00"
event_type: NETWORK_HTTP
product_name: "Sophos Antivirus"
product_log_id: "030906208001"
}
principal {
hostname: "CC500ia"
asset_id: "Sophos.AV:C070123456-ABCDE"
ip: "10.10.2.10"
port: 60671
user { userid: "john.smith" }
}
target {
hostname: "altostrat.fr"
ip: "203.0.113.31"
port: 80
url: "altostrat.fr/img/logo.gif"
}
network {
ip_protocol: TCP
}
security_result {
about {
url: "altostrat.fr/img/logo.gif"
category: SOFTWARE_MALICIOUS
category_details: "Virus"
threat_name: "TR/ElderadoB.A.78"
severity: HIGH # Google Security Operations-normalized severity
severity_details: "Critical" # Vendor-specific severity string
}
}
additional { "dst_country_code" : "FRA", "iap" : "7" "fw_rule_id" : "0" }
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: イベントを検出したセキュリティ デバイス。
- target: 悪意のあるソフトウェアを受け取ったデバイス。
- network: 悪意のあるホストに関するネットワーク情報。
- security_result: 悪意のあるソフトウェアのセキュリティの詳細。
- additional: UDM 範囲外の現在のベンダー情報。
PROCESS_INJECTION、PROCESS_LAUNCH、PROCESS_OPEN、PROCESS_TERMINATION、PROCESS_UNCATEGORIZED
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- プロセス挿入イベントとプロセス終了イベントについては(取得できる場合)、アクションを開始するプロセスに関する情報を principal.process に含める必要があります(たとえば、プロセス起動イベントの場合、principal.process に親プロセスの詳細を含める必要があります(取得できる場合))。
- target:
- target.process: 挿入、オープン、起動、終了の状態のプロセスに関する情報が含まれます。
- ターゲット プロセスがリモートの場合、ターゲットには、ターゲット マシンの少なくとも 1 つのマシン ID(IP アドレス、MAC、ホスト名、サードパーティのアセット ID など)が含まれている必要があります。
オプション フィールド:
- security_result: 検出された悪意のあるアクティビティを記述します。
- principal.user と principal.user: ユーザー情報を取得できる場合は、開始プロセス(プリンシパル)とターゲット プロセスを入力します。
PROCESS_LAUNCH の UDM の例
次の例は、Google Security Operations UDM 構文を使用して PROCESS_LAUNCH イベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: PROCESS_LAUNCH
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "altostrat.com"
}
target {
process {
pid: "0xc45"
file {
full_path: "C:\\Windows\\regedit.exe"
}
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: デバイスの詳細。
- target: プロセスの詳細。
PROCESS_MODULE_LOAD
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- principal.process: モジュールの読み込みプロセス。
- target:
- target.process: プロセスに関する情報を含めます。
- target.process.file: 読み込まれるモジュール(DLL や共有オブジェクトなど)。
オプション フィールド:
- security_result: 検出された悪意のあるアクティビティを記述します。
- principal.user: プロセスに関するユーザー情報が利用可能かどうかを入力します。
PROCESS_MODULE_LOAD の UDM の例
次の例は、Google Security Operations UDM 構文を使用して PROCESS_MODULE_LOAD イベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: PROCESS_MODULE_LOAD
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "example.com"
process {
pid: "0x123"
}
}
target {
process {
pid: "0xc45"
file {
full_path: "C:\\Windows\\regedit.exe"
}
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: モジュールを読み込むデバイスとプロセスの詳細。
- target: プロセスとモジュールの詳細。
PROCESS_PRIVILEGE_ESCALATION
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- principal.process: モジュールの読み込みプロセス。
- principal.user: モジュールを読み込むユーザー。
オプション フィールド:
- security_result: 検出された悪意のあるアクティビティを記述します。
PROCESS_PRIVILEGE_ESCALATION の UDM の例
次の例は、Google Security Operations UDM 構文を使用して PROCESS_PRIVILEGE_ESCALATION イベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: PROCESS_PRIVILEGE_ESCALATION
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "example.com"
process {
pid: "0x123"
}
user {
userid: "test"
windows_sid: "ABCDEFGH-123456789-1111111-1000"
}
}
target {
process {
pid: "0xc45"
file {
full_path: "C:\\Windows\\regedit.exe"
}
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: モジュールを読み込むデバイス、ユーザー、プロセスに関する詳細。
- target: プロセスとモジュールの詳細。
REGISTRY_CREATION、REGISTRY_MODIFICATION、REGISTRY_DELETION
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal:
- 少なくとも 1 つのマシン ID。
- ユーザーモードのプロセスでレジストリの変更を行う場合、principal.process にレジストリを変更するプロセスに関する情報を含める必要があります。
- カーネル プロセスでレジストリの変更を行う場合、principal にプロセス情報を含めないでください。
- target:
- target.registry: ターゲット レジストリがリモートの場合は、ターゲットに少なくとも 1 つの識別子(IP アドレス、MAC、ホスト名、サードパーティのアセット識別子など)を含める必要があります。
- target.registry.registry_key: すべてのレジストリ イベントに、影響を受けるレジストリキーが含まれている必要があります。
オプション:
- security_result:: 検出された悪意のあるアクティビティに関する説明を記述しますたとえば、不正なレジストリキーが該当します。
- principal.user:: プロセスに関するユーザー情報が利用可能かどうかを入力します。
REGISTRY_MODIFICATION の UDM の例
次の例は、Google Security Operations UDM 構文を使用して Proto3 で REGISTRY_MODIFICATION イベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: REGISTRY_MODIFICATION
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "test-win"
user {
userid: "test"
windows_sid: "ABCDEFGH-123456789-1111111-1000"
}
process {
pid: "0xc45"
file {
full_path: "C:\\Windows\\regedit.exe"
}
}
}
target {
registry {
registry_key: "\\REGISTRY\\USER\\TEST_USER\\Control Panel\\PowerCfg\\PowerPolicy"
registry_value_name: "Description"
registry_value_data: "For extending battery life."
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: デバイス、ユーザー、プロセスの詳細。
- target: 変更の影響を受けるレジストリ エントリ。
SCAN_FILE、SCAN_HOST、SCAN_PROCESS、SCAN_VULN_HOST、SCAN_VULN_NETWORK
必須フィールド:
- extensions: SCAN_VULN_HOST と SCAN_VULN_NETWORK の場合は、extensions.vuln フィールドを使用して脆弱性を定義します。
- metadata: event_timestamp
- observer: スキャナ自体の情報を記録します。スキャナがリモートの場合は、マシンの詳細をオブザーバー フィールドで記録する必要があります。ローカル スキャナの場合は空白のままにします。
- target: スキャンされるオブジェクトを保持するマシンの情報を記録しますスキャン中のファイルの場合、target.file はスキャンされたファイルに関する情報を記録します。プロセスがスキャン中の場合は、target.process はスキャンされたプロセスに関する情報を記録します。
オプション フィールド:
- target: ターゲット オブジェクトに関する詳細(ファイル作成者やプロセス所有者など)は、target.user で取得する必要があります。
- security_result: 検出された悪意のあるアクティビティを記述します。
SCAN_HOST の UDM の例
次の例は、Google Security Operations UDM の SCAN_HOST タイプのイベントをフォーマットする方法を示しています。
metadata: {
event_timestamp: {
seconds: 1571386978
}
event_type: SCAN_HOST
vendor_name: "vendor"
product_name: "product"
product_version: "1.0"
}
target: {
hostname: "testHost"
asset_id: "asset"
ip: "192.168.200.200"
}
observer: {
hostname: "testObserver"
ip: "192.168.100.100"
}
security_result: {
severity: LOW
confidence: HIGH_CONFIDENCE
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- target: 悪意のあるソフトウェアを受け取ったデバイス。
- observer: 該当のイベントを監視してレポートするデバイス。
- security_result: 悪意のあるソフトウェアのセキュリティの詳細。
SCHEDULED_TASK_CREATION、SCHEDULED_TASK_DELETION、SCHEDULED_TASK_DISABLE、SCHEDULED_TASK_ENABLE、SCHEDULED_TASK_MODIFICATION、SCHEDULED_TASK_UNCATEGORIZED
必須フィールド:
- principal: すべての SCHEDULED_TASK イベントについて、principal にマシン識別子とユーザー識別子が含まれている必要があります。
- target: 有効なリソースと「TASK」として定義されたリソースタイプを含める必要があります。
オプション フィールド:
- security_result: 検出された悪意のあるアクティビティを記述します。
SCHEDULED_TASK_CREATION の UDM 例
次の例は、Google Security Operations UDM の SCHEDULED_TASK_CREATION タイプのイベントをフォーマットする方法を示しています。
metadata: {
event_timestamp: {
seconds: 1577577998
}
event_type: SCHEDULED_TASK_CREATION
vendor_name: "Microsoft"
product_name: "Windows"
}
principal: {
hostname: "fake-host.altostrat.com"
user: {
userid: "TestUser"
windows_sid: "AB123CDE"
}
process {
pid: "1234"
}
}
target: {
resource: {
type: "TASK"
name: "\\Adobe Acrobat Update Task"
}
}
intermediary: {
hostname: "fake-intermediary.altostrat.com"
}
security_result: {
rule_name: "EventID: 6789"
summary: "A scheduled task was created."
severity: INFORMATIONAL
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: 不審なタスクをスケジュールしたデバイス。
- target: 不審なタスクのターゲットとなるソフトウェア。
- intermediary: 不審なタスクに関与した仲介者。
- security_result: 不審なタスクに関するセキュリティの詳細。
SETTING_UNCATEGORIZED、SETTING_CREATION、SETTING_MODIFICATION、SETTING_DELETION
必須フィールド:
- principal: 存在し、空ではなく、マシン識別子を含める必要があります。
- target: 存在し、空ではなく、そのタイプが SETTING として指定されたリソースを含める必要があります。
SETTING_MODIFICATION イベントタイプの UDM の例
次の例は、Google SecOps UDM の SETTING_MODIFICATION タイプのイベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: SETTING_MODIFICATION
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "test.win.com"
}
target {
resource {
type: "SETTING"
name: "test-setting"
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: 設定の変更が行われたデバイスに関する情報。
- target: リソースの詳細。
SERVICE_UNSPECIFIED、SERVICE_CREATION、SERVICE_DELETION、SERVICE_START、SERVICE_STOP
必須フィールド:
- target: ユーザー ID を含め、プロセスまたはアプリケーションを指定します。
- principal: 1 つ以上のマシン識別子(IP または MAC アドレス、ホスト名、またはアセット識別子)を含めます。
SERVICE_UNSPECIFIED の UDM の例
次の例は、SERVICE_UNSPECIFIED タイプのイベントを Google Security Operations UDM にフォーマットする方法を示しています。
metadata: {
event_timestamp: {
seconds: 1595656745
nanos: 832000000
}
event_type: SERVICE_UNSPECIFIED
vendor_name: "Preempt"
product_name: "PREEMPT_AUTH"
product_event_type: "SERVICE_ACCESS"
description: "Remote Procedures (RPC)"
}
principal: {
hostname: "XXX-YYY-ZZZ"
ip: "10.10.10.10"
}
target: {
hostname: "TestHost"
user: {
userid: "ORG\\User"
user_display_name: "user name"
}
application: "application.name"
resource: {
type: "Service Type"
name: "RPC"
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: デバイスとロケーションの詳細。
- target: ホスト名とユーザー ID。
- application: アプリケーション名とリソースタイプ。
STATUS_HEARTBEAT、STATUS_STARTUP、STATUS_SHUTDOWN、STATUS_UPDATE
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal: 1 つ以上のマシン識別子(IP または MAC アドレス、ホスト名、またはアセット識別子)。
STATUS_HEARTBEAT の UDM の例
次の例は、Google Security Operations UDM の STATUS_HEARTBEAT タイプのイベントをフォーマットする方法を示しています。
metadata: {
event_timestamp: {
seconds: 1588180305
}
event_type: STATUS_HEARTBEAT
vendor_name: "DMP"
product_name: "ENTRE"
}
principal: {
hostname: "testHost"
location: {
name: "Building 1"
}
}
intermediary: {
ip: "8.8.8.8"
}
security_result: {
summary: "Event - Locked"
description: "description"
severity: LOW
severity_details: "INFO"
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: デバイスとロケーションの詳細。
- intermediary: デバイスの IP アドレス。
- security_result: セキュリティの結果の詳細。
SYSTEM_AUDIT_LOG_UNCATEGORIZED、SYSTEM_AUDIT_LOG_WIPE
必須フィールド:
- principal: ログに対するオペレーションを行ったユーザーのユーザー ID と、ログが保存されているマシンまたはマシンが保存されているか、保存されていた(ワイプの場合)マシンの IDを含めます。
SYSTEM_AUDIT_LOG_WIPE の UDM の例
次の例は、Google Security Operations UDM のタイプ SYSTEM_AUDIT_LOG_WIPE のイベントをフォーマットする方法を示しています。
metadata {
event_timestamp: "2020-01-01T13:27:41+00:00"
event_type: SYSTEM_AUDIT_LOG_WIPE
vendor_name: "Microsoft"
product_name: "Windows"
}
principal {
hostname: "altostrat.com"
user {
userid: "test"
windows_sid: "ABCDEFGH-123456789-1111111-1000"
}
}
この例に示すように、イベントは次の UDM カテゴリに分かれています。
- metadata: イベントの背景情報。
- principal: デバイスとユーザーの詳細。
USER_CHANGE_PASSWORD、USER_CHANGE_PERMISSIONS
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal: ユーザー アカウントが遠隔地から変更された場合、ユーザー変更を行ったマシンに関する情報をプリンシパルに入力します。
- target: 変更されたユーザーに関する情報を target.user に入力します。
- intermediary: SSO ログインの場合、SSO サーバー用のマシン ID が 1 つ以上含まれている必要があります(利用可能な場合)。
USER_COMMUNICATION
必須フィールド:
- principal: principal.user フィールドに、Google Chat や Slack のチャット メッセージ、Zoom や Google Meet の動画やビデオ会議、VoIP 接続など、ユーザー(送信者)が開始した通信に関連する詳細を入力します。
オプション フィールド:
- target: (推奨) target.user フィールドに、クラウド通信リソースのターゲット ユーザー(受信者)に関する情報を入力します。(推奨)target.application フィールドに、ターゲット クラウド通信アプリケーションに関する情報を入力します。
USER_CREATION、USER_DELETION
必須フィールド:
- metadata: event_timestamp
- principal: ユーザーの作成または削除をリクエストを行うマシンに関する情報を含めます。ローカル ユーザーの作成や削除の場合、principal には、送信元のマシンのマシン ID が 1 つ以上含まれている必要があります。
- target: ユーザーが作成される場所。ユーザー情報(target.user など)も含める必要があります。
オプション フィールド:
- principal: ユーザーの作成または削除リクエストが開始されたマシンのユーザーとプロセスの詳細。
- target: ターゲット マシンに関する情報(プリンシパル マシンとは異なる場合)。
USER_LOGIN、USER_LOGOUT
必須フィールド:
- metadata: 必須フィールドを含めます。
- principal: リモート ユーザーのアクション(リモート ログインなど)の場合は、ユーザー アクションを行ったマシンに関する情報をプリンシパルに入力します。ローカル ユーザーのアクション(ローカル ログインなど)の場合は、プリンシパルを設定しないでください。
- target: ログインまたはログオフしたユーザーに関する情報を target.user に入力します。プリンシパルが設定されていない場合(ローカル ログインなど)、ターゲット マシンを識別するマシン識別子を 1 つ以上含める必要があります。マシン間のユーザー アクション(リモート ログイン、SSO、クラウド サービス、VPN など)の場合、ターゲットに、ターゲット アプリケーション、ターゲット マシン、ターゲット VPN サーバーのいずれかの情報を含める必要があります。
- intermediary: SSO ログインの場合、SSO サーバー用のマシン ID が 1 つ以上含まれている必要があります(利用可能な場合)。
- network と network.http: ログインが HTTP 経由で発生する場合は、network.ip_protocol、network.application_protocol、network にすべての詳細情報を含める必要があります。
- authentication extension: イベントに関連する認証システムの種類(マシン、SSO、VPN など)と、使用するメカニズム(ユーザー名とパスワード、OTP)を指定する必要があります。
- security_result: ログインに失敗した場合、security_result フィールドを追加してログイン ステータスを示します。認証に失敗した場合は、AUTH_VIOLATION の値で security_result.category を指定します。
USER_RESOURCE_ACCESS
必須フィールド:
- principal: principal.user フィールドに、クラウド リソース(Salesforce のケース、Office365 のカレンダー、Google ドキュメント、ServiceNow のチケットなど)に対するアクセスの試行の詳細を入力します。
- target: target.resource フィールドに、ターゲット クラウド リソースに関する情報を入力します。
オプション フィールド:
- target.application:(推奨) target.application: フィールドに、ターゲット クラウド アプリケーションに関する情報を入力します。
USER_RESOURCE_CREATION、USER_RESOURCE_DELETION
必須フィールド:
- principal: principal.user フィールドに、クラウド リソース(Salesforce のケース、Office 365 のカレンダー、Google ドキュメント、ServiceNow チケットなど)内で作成されたユーザーの詳細情報を入力します。
- target: target.resource フィールドに、ターゲット クラウド リソースに関する情報を入力します。
オプション フィールド:
- target.application:(推奨) target.application: フィールドに、ターゲット クラウド アプリケーションに関する情報を入力します。
USER_RESOURCE_UPDATE_CONTENT
必須フィールド:
- principal: principal.user フィールドに、クラウド リソース(Salesforce のケース、Office365 のカレンダー、Google ドキュメント、ServiceNow のチケットなど)内でコンテンツが更新されたユーザーの詳細を入力します。
- target: target.resource フィールドに、ターゲット クラウド リソースに関する情報を入力します。
オプション フィールド:
- target.application:(推奨) target.application: フィールドに、ターゲット クラウド アプリケーションに関する情報を入力します。
USER_RESOURCE_UPDATE_PERMISSIONS
必須フィールド:
- principal: principal.user フィールドに、クラウド リソース(Salesforce のケース、Office 365 のカレンダー、Google ドキュメント、ServiceNow のチケットなど)内で権限が更新されたユーザーの詳細を入力します。
- target: target.resource フィールドに、ターゲット クラウド リソースに関する情報を入力します。
オプション フィールド:
- target.application:(推奨) target.application: フィールドに、ターゲット クラウド アプリケーションに関する情報を入力します。
USER_UNCATEGORIZED
必須フィールド:
- metadata: event_timestamp
- principal: ユーザーの作成または削除をリクエストを行うマシンに関する情報を含めます。ローカル ユーザーの作成や削除の場合、principal には、送信元のマシンのマシン ID が 1 つ以上含まれている必要があります。
- target: ユーザーが作成される場所。ユーザー情報(target.user など)も含める必要があります。
オプション フィールド:
- principal: ユーザーの作成または削除リクエストが開始されたマシンのユーザーとプロセスの詳細。
- target: ターゲット マシンに関する情報(プリンシパル マシンとは異なる場合)。