GitHub 監査ログを収集する
概要
このパーサーは、JSON 形式の GitHub 監査ログを処理します。多くのフィールドを削除して入力をクリーンアップし、process_type フィールドに基づいて複数の grok と Key-Value オペレーションを実行して関連情報を抽出し、抽出されたフィールドを UDM にマッピングし、Google SecOps に取り込むための出力を構造化します。また、特定のエッジケースを処理し、GitHub 監査ログ内のさまざまなログサブタイプに対してデータ変換を実行します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- GitHub リポジトリへの特権アクセス権があることを確認します。
GitHub ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: GitHub ログ)。
- [ソースタイプ] として [Webhook] を選択します。
- [ログタイプ] として [GitHub] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
\n
など)。 - アセットの名前空間: アセットの名前空間。
- 取り込みラベル: このフィードのイベントに適用されるラベル。
- 分割区切り文字: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面でフィードの設定を確認し、[送信] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- シークレット キーをコピーして保存します。このシークレット キーを再び表示することはできません。必要に応じて、新しいシークレット キーを再生成できますが、この操作により以前のシークレット キーは無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント 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
イベントのみ] から始めます。[有効] チェックボックスがオンになっていることを確認します。
[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 フィールドから取得されます。 |
変更
2023-12-18
- バグの修正:
- 「process_type」が「github_production」の場合に、「kv_data」を抽出する Grok パターンを追加しました。
- 「process_type」が「github_production」の場合、「user」を「target.user.user_display_name」にマッピングしました。
- 「process_type」が「github_production」の場合、「user_id」を「target.user.userid」にマッピングしました。
- 「referrer」を「network.http.referral_url」にマッピングしました。
- 「user_session_id」を「network.session_id」にマッピングしました。
- 「ip」を「principal.ip」にマッピングしました。
- 「from」を「additional.fields」にマッピングしました。
- 「request_category」を「additional.fields」にマッピングしました。
- 「device_cookie」を「additional.fields」にマッピングしました。
- 「operation_type」を「additional.fields」にマッピングしました。
- 「category_type」を「additional.fields」にマッピングしました。
- 「note」を「additional.fields」にマッピングしました。
- 「read」を「additional.fields」にマッピングしました。
- 「pre_perform_allocation_count」を「additional.fields」にマッピングしました。
- 「backend」を「additional.fields」にマッピングしました。
- 「queue」を「additional.fields」にマッピングしました。
- 「class」を「additional.fields」にマッピングしました。
- 「success」を「additional.fields」にマッピングしました。
- 「controller_action」を「security_result.detection_fields」にマッピングしました。
- 「two_factor」を「security_result.detection_fields」にマッピングしました。
2023-10-25
- 「public_repo」が「false」の場合は「target.location.name」を「PRIVATE」に設定し、それ以外の場合は「PUBLIC」に設定しました。
2023-10-11
- 「user_agent」を「network.http.user_agent」と「network.http.parsed_user_agent」にマッピングしました。
- 「request_method」を「network.http.method」にマッピングしました。
- 「application_name」を「target.application」にマッピングしました。
- 「status_code」を「network.http.response_code」にマッピングしました。
- 「url_path」を「target.url」にマッピングしました。
- 「user_id」を「target.userid」にマッピングしました。
- 「transport_protocol_name」を「network.application_protocol」にマッピングしました。
- 「raw.now」を「metadata.event_timestamp」にマッピングしました。
- 「raw.ip」を「principal.ip」にマッピングしました。
- 「raw.request_id」を「metadata.product_log_id」にマッピングしました。
- 「raw.repo」を「target.url」にマッピングしました。
- 「raw.action」を「security_result.summary」にマッピングしました。
- 「raw.protocol」を「network.application_protocol」にマッピングしました。
- 「raw.message」を「metadata.description」にマッピングしました。
- 「raw.at」を「security_result.action」にマッピングしました。
- 「raw.login」を「target.user_display_name」にマッピングしました。
- 「raw.user_id」を「target.userid」にマッピングしました。
- 「raw.failure_reason」、「raw.failure_type」、「raw.raw_login」、「raw.from」を「additional.fields」にマッピングしました。
- 「programmatic_access_type」、「actor_id」、「token_id」、「token_scopes」、「integration」、「query_string」、「rate_limit_remaining」、「request_body」、「route」、「business」、「org_id」、「repo_id」、「public_repo」、「_document_id」、「operation_type」、「repository_public」を「additional.fields」にマッピングしました。
2023-07-31
- バグの修正:
- Grok パターンに「on_error」を追加しました。
- 「workflow_run.id」を「target.resource.attributes.labels」にマッピングしました。
- 「workflow_run.event」を「additional.fields」にマッピングしました。
- 「workflow_run.actor.login」を「principal.user.userid」にマッピングしました。
- 「workflow_run.head_branch」を「security_result.about.labels」にマッピングしました。
- 「workflow_run.head_sha」を「target.file.sha256」にマッピングしました。
- 「enterprise.name」を「additional.fields」にマッピングしました。
- 「workflow.name」を「security_result.about.labels」にマッピングしました。
- 「workflow_run.workflow_id」を「security_result.about.labels」にマッピングしました。
2023-06-22
- 「github_auth」、「haproxy」、「github_access」、「github_unicorn」、「github_production」、「hookshot-go」、「babeld」、「github_gitauth」、「babeld2hydro」「authzd」、「gitrpcd」、「agent」、「git-daemon」、「github_resqued」、「sudo」、「systemd」、「github_audit」システムログの形式のサポートを追加しました。
2023-06-09
- 機能拡張 -
- メール形式の場合、「external_identity_nameid」を「target.user.email_addresses」にマッピングしました。
- 「external_identity_nameid」からユーザー名を取得し、「target.user.userid」にマッピングします。
2023-01-13
- 機能拡張 -
- 「actor_ip」を「principal.ip」にマッピングしました。
- 「hashed_token」を「network.session_id」にマッピングしました。
- 「external_identity_nameid」を「target.user.userid」にマッピングしました。
- 「external_identity_username」を「target.user.user_display_name」にマッピングしました。
2022-11-28
- 機能拡張 -「config.url」を「target.url」にマッピングしました。
2022-07-07
- 機能拡張 - アクション「git.clone」、「git.push」、「workflows.prepared_workflow_job」を持つ新しく取り込まれた JSON 形式のログが処理され、解析されました。
- 「job_name」を「target.resource.attributes.labels」にマッピングしました。
- 「job_workflow_ref」を「target.resource.attributes.labels」にマッピングしました。
- 「runner_group_id」を「target.resource.attributes.labels」にマッピングしました。
- 「runner_group_name」を「target.resource.attributes.labels」にマッピングしました。
- 「runner_name」を「target.resource.attributes.labels」にマッピングしました。
- 「runner_id」を「target.resource.attributes.labels」にマッピングしました。
- 「workflow_run_id」を「target.resource.attributes.labels」にマッピングしました。
- 「actor_location.country_code」を「principal.location.country_or_region」にマッピングしました。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps の専門家から回答を得る。