收集 GitHub 稽核記錄
總覽
這個剖析器會處理 JSON 格式的 GitHub 稽核記錄。這個管道會移除多個欄位來清除輸入內容,根據 process_type 欄位執行多項 grok 和鍵/值作業來擷取相關資訊,將擷取的欄位對應至 UDM,並建構輸出內容以供 Google SecOps 擷取。此外,也會處理特定極端情況,並針對 GitHub 稽核記錄中的不同記錄子類型執行資料轉換。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體。
- GitHub 存放區的特殊存取權。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態饋給」,設定動態饋給
如要設定動態消息,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態消息」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態消息名稱」欄位中,輸入動態消息的名稱 (例如「GitHub Logs」)。
- 選取「Webhook」做為「來源類型」。
- 選取「GitHub」做為「記錄類型」。
- 點選「下一步」。
- 選用:指定下列輸入參數的值:
- 分割分隔符號:用於分隔記錄行的分隔符號,例如
\n
。
- 分割分隔符號:用於分隔記錄行的分隔符號,例如
- 點選「下一步」。
- 在「Finalize」畫面中檢查動態饋給設定,然後按一下「Submit」。
- 按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
- 複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。
- 在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。
- 按一下 [完成]。
從內容中心設定動態饋給
為下列欄位指定值:
- 分割分隔符號:用於分隔記錄行的分隔符號,例如
\n
。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 來源類型:將記錄收集到 Google SecOps 的方法。
- 資產命名空間:與動態饋給相關聯的命名空間。
擷取標籤:套用至這個動態饋給所有事件的標籤。
按一下「產生密鑰」,產生驗證這個動態消息的密鑰。
複製並儲存密鑰。您無法再次查看這個密鑰。如有需要,您可以重新產生新的密鑰,但這項操作會使先前的密鑰失效。
在「詳細資料」分頁中,從「端點資訊」欄位複製動態消息端點網址。您需要在用戶端應用程式中指定這個端點網址。
為 Webhook 資訊提供建立 API 金鑰
前往 Google Cloud 控制台 > 憑證。
按一下 [Create credentials] (建立憑證),然後選取 [API key] (API 金鑰)。
將 API 金鑰存取權限制在 Google Security Operations API。
指定端點網址
- 在用戶端應用程式中,指定 webhook 動態饋給中提供的 HTTPS 端點網址。
如要啟用驗證,請在自訂標頭中指定 API 金鑰和私密金鑰,格式如下:
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
建議:請將 API 金鑰指定為標頭,而非在網址中指定。如果 Webhook 用戶端不支援自訂標頭,您可以使用查詢參數指定 API 金鑰和密鑰,格式如下:
ENDPOINT_URL?key=API_KEY&secret=SECRET
更改下列內容:
ENDPOINT_URL
:動態消息端點網址。API_KEY
:用於向 Google Security Operations 進行驗證的 API 金鑰。SECRET
:您產生的密鑰,用於驗證動態饋給。
在 GitHub 建立 Webhook
本指南提供逐步操作說明,協助您在 GitHub 建立 Webhook,將資料傳送至 Google SecOps。
- 前往 GitHub 存放區。
- 前往 [設定]。
- 按一下「Webhook」。
- 按一下 [Add Webhook]。
- 在「Payload URL」欄位中,輸入 Google SecOps API 端點網址。
選取「application/json」做為「Content type」。
選用:如要提高安全性,請設定 Secret。這會為 Webhook 酬載產生簽章,方便您在 Google SecOps 端驗證酬載的真實性。如果您使用密鑰,請在 Google SecOps 動態饋給中一併設定。
選擇會觸發 Webhook 的事件。如要進行全面記錄,請選取「讓我選取個別事件」,然後勾選相關事件 (例如「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 陣列中的鍵/值組合。 |
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 |
代表執行動作的使用者,會對應至 principal.user.userid 。actor |
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 中。 |
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 |
設定網址會對應至 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 。 |
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 |
外部身分使用者名稱會對應至 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 中對應為鍵/值組合。 |
programmatic_access_type |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
程式輔助存取類型會以鍵/值組合的形式對應至 additional.fields 。 |
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 中對應至鍵/值組合的值。「false」會對應至「PRIVATE」,其他值則會對應至「PUBLIC」。 |
query_string |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
查詢字串會以鍵/值組合的形式對應至 additional.fields 。 |
rate_limit_remaining |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
剩餘的速率限制會以鍵/值組合的形式對應至 additional.fields 。 |
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 。 |
repository_public |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
存放區公開旗標會以鍵/值組合形式對應至 additional.fields 。 |
request_body |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
要求主體會以鍵/值組合的形式對應至 additional.fields 。 |
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 。 |
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 。 |
token_scopes |
read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
權杖範圍會以鍵/值組合的形式對應至 additional.fields 。 |
transport_protocol_name |
read_only_udm.network.application_protocol |
傳輸通訊協定名稱會轉換為大寫,並對應至 network.application_protocol 。 |
url_path |
read_only_udm.target.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 。 |
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 |
如果 at 或 raw.at 欄位存在且等於「success」,或不等於「success」,則安全性動作 (ALLOW/BLOCK) 會衍生自這些欄位。 |
(剖析器邏輯) | read_only_udm.security_result.severity |
如果存在 level 或 SeverityText 欄位,安全性嚴重程度會從這些欄位衍生而來。「INFO」會對應至「INFORMATIONAL」,「WARN」會對應至「MEDIUM」,其他值則會直接對應。對於 git-daemon 記錄,「嚴重」會對應至「重大」。 |
(剖析器邏輯) | 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 |
如果存在 ppid 欄位,目標程序的父項程序 ID 會從該欄位衍生,並轉換為字串。 |
(剖析器邏輯) | read_only_udm.target.process.pid |
如果存在,目標程序 ID 會衍生自 pid 欄位,並轉換為字串。 |
(剖析器邏輯) | read_only_udm.target.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 |
如果存在 data.team 欄位,目標使用者群組 ID 會從該欄位衍生。 |
(剖析器邏輯) | 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 |
如果存在 column6 、ip 、x_real_ip 、remote_address 、raw.ip 、actor_ip 或 log:source:ip 欄位,主要 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 |
如果存在 service.instance.id 或 subject_id 欄位,主要資源產品物件 ID 會從這些欄位衍生而來。 |
(剖析器邏輯) | read_only_udm.principal.url |
如果有的話,主要網址會從 repo 欄位衍生。 |
(剖析器邏輯) | read_only_udm.principal.user.userid |
如果存在 repository_owner_id 欄位,系統會從該欄位衍生主要使用者 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 |
如果存在 github_request_id 、id 、request_id 或 raw.request_id 欄位,產品記錄 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 |
如果存在 column4 或 referer 欄位,系統會從這些欄位衍生 HTTP 參照網址。 |
(剖析器邏輯) | read_only_udm.network.http.user_agent |
如果存在 column5 、http_ua 或 user_agent 欄位,系統會從這些欄位衍生 HTTP 使用者代理程式。 |
(剖析器邏輯) | read_only_udm.network.sent_bytes |
如果存在 client_sent 或 fs_sent 欄位,系統會從這些欄位衍生出網路傳送的位元組,並轉換為無正負號整數。 |
(剖析器邏輯) | read_only_udm.additional.fields.[].key 、read_only_udm.additional.fields.[].value.string_value |
許多欄位會以鍵/值配對的形式,有條件地對應至 additional.fields 陣列,包括 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 。各個欄位的具體邏輯詳見剖析器程式碼。 |
(剖析器邏輯) | 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 專業人員尋求答案。