收集 Azure AD 登入記錄
支援的國家/地區:
Google SecOps
SIEM
本文說明如何使用 Azure 儲存空間帳戶,將 Azure AD 登入記錄匯出至 Google Security Operations。剖析器會採用 JSON 格式的原始記錄,並轉換為符合統一資料模型 (UDM) 的結構化格式。這項服務會擷取相關欄位、正規化值、處理不同時間戳記,並使用使用者資訊、IP 位址和條件式存取政策等安全性相關內容,擴充資料。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- 有效的 Azure 租用戶
- Azure 特殊存取權
設定 Azure 儲存體帳戶
- 在 Azure 控制台中,搜尋「Storage accounts」(儲存體帳戶)。
- 點選「+ 建立」。
- 指定下列輸入參數的值:
- 訂閱:選取訂閱方案。
- 資源群組:選取資源群組。
- 區域:選取區域。
- 成效:選取成效 (建議使用「標準」)。
- 備援:選取備援 (建議使用 GRS 或 LRS)。
- 「儲存體帳戶名稱」:輸入新儲存體帳戶的名稱。
- 按一下「Review + create」。
- 查看帳戶總覽,然後按一下「建立」。
- 在「儲存空間帳戶總覽」頁面中,選取「安全性 + 網路」中的「存取金鑰」子選單。
- 按一下「key1」或「key2」旁邊的「顯示」。
- 按一下「複製到剪貼簿」即可複製金鑰。
- 將金鑰儲存於安全的位置,以供日後使用。
- 在「儲存空間帳戶總覽」頁面中,選取「設定」中的「端點」子選單。
- 按一下「複製到剪貼簿」,複製「Blob 服務」端點網址,例如
https://<storageaccountname>.blob.core.windows.net
。 - 請將端點網址儲存於安全位置,以供日後使用。
如何為 Azure AD 登入記錄設定記錄匯出功能
- 使用具備權限的帳戶登入 Azure 入口網站。
- 依序前往「Microsoft Entra ID」>「監控」>「診斷設定」。
- 按一下「新增診斷設定」。
- 輸入診斷設定的描述性名稱。
- 選取「登入記錄」。
- 選取「封存至儲存空間帳戶」核取方塊做為目的地。
- 指定「訂閱項目」和「儲存空間帳戶」。
設定動態饋給
在 Google SecOps 平台中,有兩種不同的進入點可設定動態饋給:
- 「SIEM 設定」>「動態消息」
- 內容中心 > 內容包
依序前往「SIEM 設定」>「動態消息」,設定動態消息
如要為這個產品系列中的不同記錄類型設定多個動態饋給,請參閱「依產品設定動態饋給」。
如要設定單一動態饋給,請按照下列步驟操作:
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中,輸入動態饋給的名稱,例如「Azure 登入記錄」。
- 選取「Microsoft Azure Blob Storage」做為「來源類型」。
- 選取「Azure 登入」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
- Azure URI:Blob 端點 URL。
ENDPOINT_URL/BLOB_NAME
- 取代下列項目:
ENDPOINT_URL
:Blob 端點網址 (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
:Blob 的名稱 (例如insights-logs-<logname>
)
- 取代下列項目:
- URI 為:根據記錄串流設定選取 URI 類型 (「單一檔案」|「目錄」|「包含子目錄的目錄」)。
來源刪除選項:根據擷取偏好設定選取刪除選項。
共用金鑰:Azure Blob 儲存體的存取金鑰。
資產命名空間:資產命名空間。
擷取標籤:要套用至這個動態饋給事件的標籤。
- Azure URI:Blob 端點 URL。
點選「下一步」。
在「Finalize」畫面上檢查新的動態饋給設定,然後按一下「Submit」。
從內容中心設定動態饋給
為下列欄位指定值:
- Azure URI:Blob 端點 URL。
ENDPOINT_URL/BLOB_NAME
- 取代下列項目:
ENDPOINT_URL
:Blob 端點網址 (https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
:Blob 的名稱 (例如insights-logs-<logname>
)
- 取代下列項目:
- URI 為:根據記錄串流設定選取 URI 類型 (「單一檔案」|「目錄」|「包含子目錄的目錄」)。
- 來源刪除選項:根據擷取偏好設定選取刪除選項。
- 共用金鑰:Azure Blob 儲存體的存取金鑰。
進階選項
- 動態饋給名稱:系統預先填入的值,用於識別動態饋給。
- 來源類型:將記錄收集到 Google SecOps 的方法。
- 資產命名空間:與動態饋給相關聯的命名空間。
- 擷取標籤:套用至這個動態饋給所有事件的標籤。
UDM 對應表
記錄欄位 | UDM 對應 | 邏輯 |
---|---|---|
AppDisplayName | read_only_udm.target.application | 直接從原始記錄中的 AppDisplayName 欄位對應。 |
AppId | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 AppId 欄位對應。這個按鈕已設為「appId 」。 |
類別 | read_only_udm.security_result.category_details | 直接從原始記錄中的 Category 欄位對應。 |
ConditionalAccessPolicies[].displayName | read_only_udm.security_result.rule_name | 直接從原始記錄中 ConditionalAccessPolicies 陣列內的 displayName 欄位對應。 |
ConditionalAccessPolicies[].enforcedGrantControls[] | read_only_udm.security_result.rule_labels.value | 直接從原始記錄中的 ConditionalAccessPolicies 陣列內對應的 enforcedGrantControls 陣列。這個按鈕已設為「applied_conditional_access_policies_enforced_grant_controls 」。 |
ConditionalAccessPolicies[].enforcedSessionControls[] | read_only_udm.security_result.rule_labels.value | 直接從原始記錄中的 ConditionalAccessPolicies 陣列內對應的 enforcedSessionControls 陣列。這個按鈕已設為「applied_conditional_access_policies_enforced_session_controls 」。 |
ConditionalAccessPolicies[].id | read_only_udm.security_result.rule_id | 直接從原始記錄中 ConditionalAccessPolicies 陣列內的 id 欄位對應。 |
ConditionalAccessPolicies[].Result | read_only_udm.security_result.rule_labels.value | 直接從原始記錄中 ConditionalAccessPolicies 陣列內的 Result 欄位對應。這個按鈕已設為「applied_conditional_access_policies_result 」。 |
ConditionalAccessStatus | read_only_udm.additional.fields.value.string_value | 直接從原始記錄中的 ConditionalAccessStatus 欄位對應。這個按鈕已設為「conditionalAccessStatus 」。 |
CorrelationId | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 CorrelationId 欄位對應。這個按鈕已設為「correlationId 」。 |
DurationMs | read_only_udm.additional.fields.value.string_value | 直接從原始記錄中的 DurationMs 欄位對應。這個按鈕已設為「durationMs 」。 |
HomeTenantId | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 HomeTenantId 欄位對應。這個按鈕已設為「HomeTenantId 」。 |
IPAddress | read_only_udm.principal.asset.ip、read_only_udm.principal.ip | 直接從原始記錄中的 IPAddress 欄位對應。 |
ID | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 Id 欄位對應。這個按鈕已設為「id 」。 |
身分識別 | read_only_udm.target.resource.attribute.labels.value | 直接從原始記錄中的 Identity 欄位對應。這個按鈕已設為「identity 」。 |
等級 | read_only_udm.security_result.severity、read_only_udm.security_result.severity_details | 直接從原始記錄中的 Level 欄位對應。嚴重程度取決於 Level 的值:Information 、Informational 、0 或 4 對應至 INFORMATIONAL ;Warning 、1 或 3 對應至 MEDIUM ;Error 或 2 對應至 ERROR ;Critical 對應至 CRITICAL 。 |
OperationName | read_only_udm.metadata.product_event_type | 直接從原始記錄中的 OperationName 欄位對應。 |
ResourceGroup | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 ResourceGroup 欄位對應。這個按鈕已設為「ResourceGroup 」。 |
ResultSignature | read_only_udm.additional.fields.value.string_value | 直接從原始記錄中的 ResultSignature 欄位對應。這個按鈕已設為「resultSignature 」。 |
ResultType | read_only_udm.additional.fields.value.string_value | 直接從原始記錄中的 ResultType 欄位對應。這個按鈕已設為「resultType 」。 |
TenantId | read_only_udm.metadata.product_deployment_id | 直接從原始記錄中的 TenantId 欄位對應。 |
TimeGenerated | read_only_udm.metadata.event_timestamp.seconds、read_only_udm.metadata.event_timestamp.nanos | 直接從原始記錄中的 TimeGenerated 欄位對應。系統會將該欄位剖析為時間戳記,並用來填入 seconds 和 nanos 欄位。 |
TokenIssuerType | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 TokenIssuerType 欄位對應。這個按鈕已設為「TokenIssuerType 」。 |
UniqueTokenIdentifier | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 UniqueTokenIdentifier 欄位對應。這個按鈕已設為「UniqueTokenIdentifier 」。 |
UserAgent | read_only_udm.network.http.user_agent、read_only_udm.network.http.parsed_user_agent | 直接從原始記錄中的 UserAgent 欄位對應。這個欄位會剖析為使用者代理程式字串,並用於填入 parsed_user_agent 物件。 |
UserDisplayName | read_only_udm.target.user.user_display_name | 直接從原始記錄中的 UserDisplayName 欄位對應。 |
UserId | read_only_udm.target.user.userid | 直接從原始記錄中的 UserId 欄位對應。 |
UserPrincipalName | read_only_udm.target.user.email_addresses | 直接從原始記錄的 UserPrincipalName 欄位對應,但前提是必須符合電子郵件地址模式。 |
UserType | read_only_udm.target.user.attribute.roles.name | 直接從原始記錄中的 UserType 欄位對應。 |
_Internal_WorkspaceResourceId | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 _Internal_WorkspaceResourceId 欄位對應。這個按鈕已設為「Internal_WorkspaceResourceId 」。 |
__ItemId | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中的 _ItemId 欄位對應。這個按鈕已設為「ItemId 」。 |
properties.appId | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 properties 物件內的 appId 欄位對應。這個按鈕已設為「appId 」。 |
properties.authenticationDetails[].authenticationMethod | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 authenticationDetails 陣列內的 authenticationMethod 欄位對應。這個按鈕已設為「authenticationMethod 」。 |
properties.authenticationDetails[].authenticationMethodDetail | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 authenticationDetails 陣列內的 authenticationMethodDetail 欄位對應。這個按鈕已設為「authenticationMethodDetail 」。 |
properties.authenticationDetails[].authenticationStepDateTime | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 authenticationDetails 陣列內的 authenticationStepDateTime 欄位對應。這個按鈕已設為「authenticationStepDateTime 」。 |
properties.authenticationDetails[].authenticationStepRequirement | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 authenticationDetails 陣列內的 authenticationStepRequirement 欄位對應。這個按鈕已設為「authenticationStepRequirement 」。 |
properties.authenticationDetails[].authenticationStepResultDetail | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 authenticationDetails 陣列內的 authenticationStepResultDetail 欄位對應。這個按鈕已設為「authenticationStepResultDetail 」。 |
properties.authenticationDetails[].succeeded | read_only_udm.security_result.action、read_only_udm.security_result.action_details | 直接從原始記錄中 authenticationDetails 陣列內的 succeeded 欄位對應。如果值為 true ,動作會設為 ALLOW ;否則會設為 BLOCK 。 |
properties.conditionalAccessStatus | read_only_udm.additional.fields.value.string_value | 直接從原始記錄中 properties 物件內的 conditionalAccessStatus 欄位對應。這個按鈕已設為「conditionalAccessStatus 」。 |
properties.id | read_only_udm.security_result.detection_fields.value | 直接從原始記錄中 properties 物件內的 id 欄位對應。這個按鈕已設為「id 」。 |
properties.status.errorCode | read_only_udm.security_result.action | 如果值為 0,動作會設為 ALLOW ;否則會設為 BLOCK 。 |
properties.userId | read_only_udm.target.user.userid | 直接從原始記錄中 properties 物件內的 userId 欄位對應。 |
properties.userPrincipalName | read_only_udm.target.user.email_addresses | 直接從原始記錄中的 properties 物件內 userPrincipalName 欄位對應,但前提是必須符合電子郵件地址模式。 |
resourceId | read_only_udm.target.resource.name | 直接從原始記錄中的 resourceId 欄位對應。 |
時間 | read_only_udm.metadata.event_timestamp.seconds、read_only_udm.metadata.event_timestamp.nanos | 直接從原始記錄中的 time 欄位對應。系統會將該欄位剖析為時間戳記,並用來填入 seconds 和 nanos 欄位。 |
read_only_udm.extensions.auth.type | 值會設為 AUTHTYPE_UNSPECIFIED 。 |
|
read_only_udm.metadata.event_type | 系統會根據 principal.ip 和 target.user.userid 欄位是否出現來判斷值:如果兩者都存在,類型會設為 USER_LOGIN ;如果只有 principal.ip 存在,類型會設為 STATUS_UPDATE ;否則會設為 GENERIC_EVENT 。 |
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。