GitHub の監査ログを収集する
概要
このパーサーは、JSON 形式の GitHub 監査ログを処理します。多数のフィールドを削除して入力をクリーンアップし、process_type フィールドに基づいて複数の grok オペレーションと Key-Value オペレーションを実行して関連情報を抽出し、抽出したフィールドを UDM にマッピングして、Google SecOps の取り込み用に構造化します。また、特定の例外的なケースを処理し、GitHub 監査ログ内のさまざまなログ サブタイプに対してデータ変換を実行します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス。
- GitHub リポジトリへの特権アクセス。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: GitHub Logs)。
- [Source type] として [Webhook] を選択します。
- [ログタイプ] として [GitHub] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\n
など)。
- Split delimiter: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[Submit] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- 秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、この操作により以前の秘密鍵は無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
- [完了] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\n
など)。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- アセットの名前空間: フィードに関連付けられた名前空間。
Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
[秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
秘密鍵をコピーして保存します。この秘密鍵を再び表示することはできません。必要に応じて、新しい秘密鍵を再生成できますが、この操作により以前の秘密鍵は無効になります。
[詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
Webhook フィード用の API キーを作成する
Google Cloud コンソール > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを Google Security Operations API に制限します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
推奨事項: API キーは URL 内ではなくヘッダーとして指定してください。Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
以下を置き換えます。
ENDPOINT_URL
: フィード エンドポイントの URL。API_KEY
: Google Security Operations に対する認証に使用する API キー。SECRET
: フィードの認証用に生成した秘密鍵。
GitHub で Webhook を作成する
このガイドでは、GitHub で Webhook を作成して Google SecOps にデータを送信する手順について説明します。
- GitHub リポジトリに移動します。
- [設定] に移動します。
- [Webhooks] をクリックします。
- [Add webhook] をクリックします。
- [ペイロード URL] フィールドに、Google SecOps API エンドポイントの URL を入力します。
[コンテンツタイプ] として [application/json] を選択します。
省略可: セキュリティを強化するには、シークレットを設定します。これにより、Webhook ペイロードの署名が生成され、Google SecOps 側で信頼性を検証できます。シークレットを使用する場合は、Google SecOps フィードでも構成します。
Webhook をトリガーするイベントを選択します。包括的なロギングを行うには、[個別のイベントを選択] を選択し、関連するイベント([プッシュ[、[pull リクエスト]、[発行] など)をオンにします。不明な場合は、[
push
イベントのみ] から始めます。[Active] チェックボックスがオンになっていることを確認します。
[Webhook を追加] をクリックして、構成を保存します。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
_document_id |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
未加工ログの _document_id は、UDM 内の additional.fields 配列の Key-Value ペアにマッピングされます。 |
action |
read_only_udm.metadata.product_event_type 、read_only_udm.security_result.summary |
action フィールドは、メタデータの product_event_type と security_result の summary にマッピングされます。 |
actor |
read_only_udm.principal.user.userid |
アクションを実行するユーザーを表す actor フィールドは principal.user.userid にマッピングされます。 |
actor_id |
read_only_udm.principal.user.attribute.labels.[].key 、read_only_udm.principal.user.attribute.labels.[].value |
actor_id は、principal.user.attribute.labels 配列内のラベルとしてマッピングされます。 |
actor_ip |
read_only_udm.principal.ip |
アクターの IP アドレスは principal.ip にマッピングされます。 |
actor_location.country_code |
read_only_udm.principal.location.country_or_region |
アクターの国コードは principal.location.country_or_region にマッピングされます。 |
application_name |
read_only_udm.target.application |
アプリケーション名は target.application にマッピングされます。 |
business |
read_only_udm.target.user.company_name 、read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
ビジネス名は target.user.company_name にマッピングされ、additional.fields の Key-Value ペアとしてマッピングされます。 |
business_id |
read_only_udm.target.resource.attribute.labels.[].key 、read_only_udm.target.resource.attribute.labels.[].value |
ビジネス ID は target.resource.attribute.labels 配列内のラベルとしてマッピングされます。 |
config.url |
read_only_udm.target.url |
構成 URL は target.url にマッピングされます。 |
created_at |
read_only_udm.metadata.event_timestamp |
created_at タイムスタンプは適切な形式に変換され、metadata.event_timestamp にマッピングされます。 |
data.cancelled_at |
read_only_udm.extensions.vulns.vulnerabilities.scan_end_time |
data.cancelled_at タイムスタンプが変換され、extensions.vulns.vulnerabilities.scan_end_time にマッピングされます。 |
data.email |
read_only_udm.target.email |
データ フィールドのメールアドレスは target.email にマッピングされます。 |
data.event |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
データ フィールドのイベントは、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
data.events |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
データ フィールドのイベントは、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
data.head_branch |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
データ フィールドのヘッドブランチは、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
data.head_sha |
read_only_udm.target.file.sha256 |
データ フィールドのヘッド SHA は target.file.sha256 にマッピングされます。 |
data.hook_id |
read_only_udm.target.resource.attribute.labels.[].key 、read_only_udm.target.resource.attribute.labels.[].value |
データ フィールドのフック ID は、target.resource.attribute.labels 配列内のラベルとしてマッピングされます。 |
data.started_at |
read_only_udm.extensions.vulns.vulnerabilities.scan_start_time |
data.started_at タイムスタンプが変換され、extensions.vulns.vulnerabilities.scan_start_time にマッピングされます。 |
data.team |
read_only_udm.target.user.group_identifiers |
データ フィールドのチームは target.user.group_identifiers にマッピングされます。 |
data.trigger_id |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
データ フィールドのトリガー ID は、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
data.workflow_id |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
データ フィールドのワークフロー ID は、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
data.workflow_run_id |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
データ フィールドのワークフロー実行 ID は、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
enterprise.name |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
企業名は、additional.fields の Key-Value ペアとしてマッピングされます。 |
external_identity_nameid |
read_only_udm.target.user.userid 、read_only_udm.target.user.email_addresses |
external_identity_nameid がメールアドレスの場合、ユーザー名部分が抽出されて target.user.userid にマッピングされ、完全なメールアドレスが target.user.email_addresses に追加されます。それ以外の場合、値全体が target.user.userid にマッピングされます。 |
external_identity_username |
read_only_udm.target.user.user_display_name |
外部 ID のユーザー名は target.user.user_display_name にマッピングされます。 |
hashed_token |
read_only_udm.network.session_id |
ハッシュ化されたトークンは network.session_id にマッピングされます。 |
org |
read_only_udm.target.administrative_domain |
組織は target.administrative_domain にマッピングされます。 |
org_id |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
組織 ID は、additional.fields の Key-Value ペアとしてマッピングされます。 |
programmatic_access_type |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
プログラムによるアクセスの種類は、additional.fields の Key-Value ペアとしてマッピングされます。 |
public_repo |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value 、read_only_udm.target.location.name |
public_repo の値によって、additional.fields と target.location.name の Key-Value ペアにマッピングされる値が決まります。「false」は「PRIVATE」にマッピングされ、その他の値は「PUBLIC」にマッピングされます。 |
query_string |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
クエリ文字列は、additional.fields の Key-Value ペアとしてマッピングされます。 |
rate_limit_remaining |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
残りのレート制限は、additional.fields の Key-Value ペアとしてマッピングされます。 |
repo |
read_only_udm.target.resource.name |
リポジトリは target.resource.name にマッピングされます。 |
repo_id |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
リポジトリ ID は、additional.fields の Key-Value ペアとしてマッピングされます。 |
repository_public |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
リポジトリの公開フラグは、additional.fields の Key-Value ペアとしてマッピングされます。 |
request_body |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
リクエスト本文は、additional.fields の Key-Value ペアとしてマッピングされます。 |
request_method |
read_only_udm.network.http.method |
リクエスト メソッドは大文字に変換され、network.http.method にマッピングされます。 |
route |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
ルートは、additional.fields の Key-Value ペアとしてマッピングされます。 |
status_code |
read_only_udm.network.http.response_code |
ステータス コードは整数に変換され、network.http.response_code にマッピングされます。 |
token_id |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
トークン ID は、additional.fields の Key-Value ペアとしてマッピングされます。 |
token_scopes |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
トークン スコープは、additional.fields の Key-Value ペアとしてマッピングされます。 |
transport_protocol_name |
read_only_udm.network.application_protocol |
トランスポート プロトコル名は大文字に変換され、network.application_protocol にマッピングされます。 |
url_path |
read_only_udm.target.url |
URL パスは target.url にマッピングされます。 |
user |
read_only_udm.target.user.user_display_name |
ユーザーは target.user.user_display_name にマッピングされます。 |
user_agent |
read_only_udm.network.http.user_agent 、read_only_udm.network.http.parsed_user_agent |
ユーザー エージェントは network.http.user_agent にマッピングされ、解析されたバージョンは network.http.parsed_user_agent にマッピングされます。 |
user_id |
read_only_udm.target.user.userid |
ユーザー ID は target.user.userid にマッピングされます。 |
workflow.name |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
ワークフロー名は、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
workflow_run.event |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
ワークフローの実行イベントは、additional.fields の Key-Value ペアとしてマッピングされます。 |
workflow_run.head_branch |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
ワークフローの実行ヘッド ブランチは、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
workflow_run.head_sha |
read_only_udm.target.file.sha256 |
ワークフローの実行ヘッド SHA は target.file.sha256 にマッピングされます。 |
workflow_run.id |
read_only_udm.target.resource.attribute.labels.[].key 、read_only_udm.target.resource.attribute.labels.[].value |
ワークフロー実行 ID は、target.resource.attribute.labels 配列内のラベルとしてマッピングされます。 |
workflow_run.workflow_id |
read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
ワークフロー実行ワークフロー ID は、security_result.about.labels 配列内のラベルとしてマッピングされます。 |
(パーサー ロジック) | read_only_udm.metadata.event_type |
イベントタイプは、data.team 、action 、actor などの他のフィールドの有無と値に基づいて、パーサーによって決定されます。他の特定の条件が満たされていない場合、デフォルトは USER_RESOURCE_ACCESS です。 |
(パーサー ロジック) | read_only_udm.metadata.log_type |
ログタイプは「GITHUB」にハードコードされています。 |
(パーサー ロジック) | read_only_udm.metadata.product_name |
商品名は「GITHUB」にハードコードされています。 |
(パーサー ロジック) | read_only_udm.metadata.vendor_name |
ベンダー名は「GITHUB」にハードコードされています。 |
(パーサー ロジック) | read_only_udm.target.resource.resource_type |
repo フィールドが存在する場合、リソースタイプは STORAGE_OBJECT に設定されます。 |
(パーサー ロジック) | read_only_udm.target.resource.type |
リソースタイプは action フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.security_result.action |
セキュリティ アクション(ALLOW/BLOCK)は、at フィールドまたは raw.at フィールドから、これらが存在し、「success」と等しいかどうかによって取得されます。 |
(パーサー ロジック) | read_only_udm.security_result.severity |
セキュリティの重大度は、存在する場合は level フィールドまたは SeverityText フィールドから取得されます。「INFO」は「INFORMATIONAL」に、「WARN」は「MEDIUM」にマッピングされ、その他の値は直接マッピングされます。git-daemon ログの場合、「fatal」は「CRITICAL」にマッピングされます。 |
(パーサー ロジック) | read_only_udm.network.application_protocol |
アプリケーション プロトコルは、protocol 、proto 、babeld_proto 、transport_protocol_name 、raw.protocol フィールドから取得され、大文字に変換され、「HTTP」、「HTTPS」、「SSH」に対してチェックされます。 |
(パーサー ロジック) | read_only_udm.network.application_protocol_version |
アプリケーション プロトコルのバージョンは、存在する場合は http_version フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.network.http.parsed_user_agent |
解析されたユーザー エージェントは、存在する場合は user_agent 、column5 、http_ua 、content フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.network.received_bytes |
受信バイトは、存在する場合は column3 、read_bytes 、fs_recv 、uploaded_bytes フィールドから取得され、符号なし整数に変換されます。 |
(パーサー ロジック) | read_only_udm.network.received_packets |
受信したパケットは、存在する場合は client_recv フィールドから取得され、整数に変換されます。 |
(パーサー ロジック) | read_only_udm.network.response_code |
レスポンス コードは、存在する場合は column2 、status 、status_code 、http_status フィールドから取得され、整数に変換されます。 |
(パーサー ロジック) | read_only_udm.network.sent_bytes |
送信バイトは、存在する場合は client_sent フィールドから取得され、符号なし整数に変換されます。 |
(パーサー ロジック) | read_only_udm.network.sent_packets |
送信されたパケットは、存在する場合は fs_sent フィールドから取得され、整数に変換されます。 |
(パーサー ロジック) | read_only_udm.network.session_duration.seconds |
セッションの継続時間(秒)は、存在する場合は time_duration フィールドから取得され、整数に変換されます。 |
(パーサー ロジック) | read_only_udm.target.file.full_path |
ターゲット ファイルのフルパスは、存在する場合は path 、git_dir 、dir フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.file.sha1 |
ターゲット ファイルの SHA1 は、存在する場合は sha フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.hostname |
ターゲット ホスト名は、存在する場合は client_hostname フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.ip |
ターゲット IP は、存在する場合は x_real_ip 、remote_address 、client_ip 、remote_addr フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.location.name |
ターゲット ロケーション名は、存在する場合は datacenter フィールドまたは public_repo フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.port |
宛先ポートは、存在する場合は client_port 、dstp 、remote_port フィールドから取得され、整数に変換されます。 |
(パーサー ロジック) | read_only_udm.target.process.command_line |
ターゲット プロセスのコマンドラインは、存在する場合は command 、ssh_cmd 、cmdline 、cmd フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.process.parent_process.pid |
ターゲット プロセスの親プロセス ID は、存在する場合は ppid フィールドから取得され、文字列に変換されます。 |
(パーサー ロジック) | read_only_udm.target.process.pid |
ターゲット プロセス ID は、存在する場合は pid フィールドから取得され、文字列に変換されます。 |
(パーサー ロジック) | read_only_udm.target.url |
ターゲット URL は、存在する場合は url 、http_url 、request_url 、http_request 、dest_url 、config.url 、url_path フィールドから取得されます。path_info と query_string から構築することもできます。 |
(パーサー ロジック) | read_only_udm.target.user.attribute.roles.[].name |
ターゲット ユーザーのロールは、存在する場合は actor_type フィールドまたは user_type フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.user.email_addresses |
ターゲット ユーザーのメールアドレスは、メールアドレスである場合は external_identity_nameid フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.user.group_identifiers |
ターゲット ユーザー グループの ID は、存在する場合は data.team フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.user.userid |
ターゲット ユーザー ID は、存在する場合は userid 、external_identity_nameid 、current_user 、member 、user_id 、actor_id 、raw.user_id フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.target.user.user_display_name |
ターゲット ユーザーの表示名は、存在する場合は login 、user 、external_identity_username 、user_login 、raw.login フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.principal.asset.asset_id |
プリンシパル アセット ID は guid フィールドから取得され、「GUID: 」という接頭辞が付いています。 |
(パーサー ロジック) | read_only_udm.principal.hostname |
プリンシパルのホスト名は、存在する場合は hostname 、request_host 、host 、principal_hostname フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.principal.ip |
プリンシパル IP は、存在する場合は column6 、ip 、x_real_ip 、remote_address 、raw.ip 、actor_ip 、log:source:ip フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.principal.location.country_or_region |
主なロケーションの国または地域は、存在する場合は actor_location.country_code フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.principal.port |
プリンシパル ポートは、存在する場合は srcp フィールドまたは log:source:port フィールドから取得され、整数に変換されます。 |
(パーサー ロジック) | read_only_udm.principal.resource.name |
プリンシパル リソース名は、存在する場合は service.name フィールドから派生します。 |
(パーサー ロジック) | read_only_udm.principal.resource.product_object_id |
プリンシパル リソース プロダクト オブジェクト ID は、存在する場合は service.instance.id フィールドまたは subject_id フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.principal.url |
プリンシパルの URL は、存在する場合は repo フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.principal.user.userid |
プリンシパル ユーザー ID は、存在する場合は repository_owner_id フィールドから取得され、文字列に変換されます。 |
(パーサー ロジック) | read_only_udm.principal.user.user_display_name |
プリンシパル ユーザーの表示名は、存在する場合は repo_name フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.intermediary.hostname |
中間ホスト名は、存在する場合は hostname フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.intermediary.ip |
中間 IP は、存在する場合は x_forwarded_for フィールドまたは xff_ip フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.metadata.description |
メタデータの説明は、存在する場合は content 、at 、raw.message フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.metadata.product_event_type |
プロダクト イベントのタイプは、存在する場合は process_type フィールドまたは action フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.metadata.product_log_id |
商品ログ ID は、存在する場合は github_request_id 、id 、request_id 、raw.request_id フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.metadata.product_version |
商品のバージョンは、存在する場合は version フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.security_result.about.labels.[].key 、read_only_udm.security_result.about.labels.[].value |
data.events 、data.workflow_id 、workflow.name 、data.head_branch 、data.trigger_id 、data.workflow_run_id 、data.event などのフィールドの有無と値に基づいて、さまざまなラベルが security_result.about.labels 配列に追加されます。 |
(パーサー ロジック) | read_only_udm.security_result.description |
セキュリティ結果の説明は、存在する場合は auth_status 、data_msg 、msg 、Body 、desc 、content フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.security_result.severity_details |
セキュリティ結果の重大度の詳細は、存在する場合は userid フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.security_result.summary |
セキュリティ結果の概要は、存在する場合は creason 、action 、reason フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.network.http.referral_url |
HTTP 参照 URL は、存在する場合は column4 フィールドまたは referer フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.network.http.user_agent |
HTTP ユーザー エージェントは、存在する場合は column5 、http_ua 、user_agent フィールドから取得されます。 |
(パーサー ロジック) | read_only_udm.network.sent_bytes |
ネットワークで送信されたバイト数は、存在する場合は client_sent フィールドまたは fs_sent フィールドから取得され、符号なし整数に変換されます。 |
(パーサー ロジック) | read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
多くのフィールドは、auth_fingerprint 、controller 、oauth_access_id 、oauth_application_id 、oauth_scopes 、route 、worker_request_count 、repo 、repo_visibility 、auth 、content_length 、elapsed 、catalog_service 、action 、method 、failure_type 、failure_reason 、hashed_token 、token_type 、gitauth_version 、enterprise.name 、programmatic_access_type 、token_id 、token_scopes 、integration 、query_string 、rate_limit_remaining 、request_body 、org_id 、repo_id 、repository_public 、raw.method 、raw.failure_type 、raw.failure_reason 、raw.from 、raw.raw_login 、device_cookie 、operation 、operation_type 、category_type 、business 、note 、read 、pre_perform_allocation_count 、backend 、queue 、class 、success 、env 、job_id 、job など、additional.fields 配列内の Key-Value ペアとして条件付きでマッピングされます。各フィールドの具体的なロジックは、パーサーコードで詳しく説明します。 |
(パーサー ロジック) | read_only_udm.security_result.detection_fields.[].key 、read_only_udm.security_result.detection_fields.[].value |
フィールド controller_action 、two_factor 、delay_time 、queued_time 、delivery_build 、delivery_send 、stages は、条件付きで security_result.detection_fields 配列にマッピングされます。 |
(パーサー ロジック) | read_only_udm.target.resource.attribute.labels.[].key 、read_only_udm.target.resource.attribute.labels.[].value |
フィールド hook_id 、job_name 、job_workflow_ref 、runner_group_id 、runner_group_name 、runner_name 、runner_id 、workflow_run_id 、business_id は、target.resource.attribute.labels 配列内のラベルとして条件付きでマッピングされます。 |
(パーサー ロジック) | read_only_udm.metadata.event_timestamp |
タイムスタンプがサポートされている形式で直接使用できない場合、パーサーは ts 、now 、created_at 、Timestamp 、time 、raw.now などのさまざまなフィールドからタイムスタンプを抽出して変換しようとします。 |
(パーサー ロジック) | read_only_udm.network.http.method |
HTTP メソッドは、method 、column1 、request_method 、http_method 、raw.method フィールドから取得され、大文字に変換されます。 |
(パーサー ロジック) | read_only_udm.target.application |
ターゲット アプリケーションは、存在する場合は process 、program 、app フィールドから取得されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。