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] をクリックします。
- [Payload URL] フィールドに、Google SecOps API エンドポイントの URL を入力します。
[Content type] に [application/json] を選択します。
省略可: セキュリティを強化するには、シークレットを設定します。これにより、Webhook ペイロードの署名が生成され、Google SecOps 側でその信頼性を検証できます。シークレットを使用する場合は、Google SecOps フィードでも構成します。
Webhook をトリガーするイベントを選択します。包括的なロギングを行うには、[Let me select individual events] を選択し、関連するイベント(Push、Pull Request、Issue など)をオンにします。不明な場合は、
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 ログの場合、「致命的」は「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 配列内のキー値ペアとして条件付きでマッピングされます。各フィールドの具体的なロジックは、パーサー コードで詳しく説明されています。 |
(パーサー ロジック) | 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.attribute.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」の syslog ログ形式のサポートを追加しました。
2023-06-09
- Enhancement-
- メール形式の場合、「external_identity_nameid」を「target.user.email_addresses」にマッピングしました。
- 「external_identity_nameid」からユーザー名を取得し、「target.user.userid」にマッピングします。
2023-01-13
- Enhancement-
- 「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.attribute.labels」にマッピングしました。
- 「job_workflow_ref」を「target.resource.attribute.labels」にマッピングしました。
- 「runner_group_id」を「target.resource.attribute.labels」にマッピングしました。
- 「runner_group_name」を「target.resource.attribute.labels」にマッピングしました。
- 「runner_name」を「target.resource.attribute.labels」にマッピングしました。
- 「runner_id」を「target.resource.attribute.labels」にマッピングしました。
- 「workflow_run_id」を「target.resource.attribute.labels」にマッピングしました。
- 「actor_location.country_code」を「principal.location.country_or_region」にマッピングしました。