收集 Azure MDM Intune 記錄
本文說明如何將 Microsoft Intune 記錄收集至 Google Security Operations。您可以透過三種方法設定擷取作業:Azure 事件中樞 (建議使用)、第三方 API 或 Microsoft Azure Blob 儲存體 V2。
Microsoft Intune 是一項雲端式端點管理解決方案,可管理使用者對機構資源的存取權,並簡化行動裝置、桌上型電腦和虛擬端點等裝置的應用程式和裝置管理作業。
事前準備
請確認您已完成下列事前準備事項:
- Google SecOps 執行個體
- Microsoft Azure 入口網站的特殊權限
- 使用者具備 Intune 租戶的 Intune 管理員或全域管理員 Microsoft Entra 角色
- 租戶的有效 Intune 授權
方法 1:Azure 事件中樞 (建議)
這個方法會透過已啟用擷取的 Azure 事件中樞串流 Intune 記錄,並將資料寫入 Azure Blob 儲存體。接著,Google SecOps 會使用 Azure Blob 儲存體 V2 來源類型,從 Blob 儲存體擷取記錄。
設定 Azure 儲存體帳戶
建立儲存空間帳戶
- 在 Azure 入口網站中,搜尋「儲存體帳戶」。
- 點選「+ 建立」。
請提供下列設定詳細資料:
設定 值 訂閱項目 選取 Azure 訂閱項目 資源群組 選取現有資料庫或建立新資料庫 儲存體帳戶名稱 輸入不重複的名稱 (例如 secopsintuneeh)區域 選取最接近 Event Hub 命名空間的區域 效能 標準 (建議) 備援功能 LRS (本地備援儲存體) 或 GRS (異地備援儲存體) 按一下「Review + create」。
查看總覽,然後按一下「建立」。
等待部署作業完成。
取得儲存空間帳戶憑證
- 前往您建立的「儲存空間帳戶」。
- 在左側導覽中,選取「Security + networking」(安全性 + 網路) 下方的「Access keys」(存取金鑰)。
- 按一下「顯示金鑰」。
- 複製並儲存下列項目:
- 儲存體帳戶名稱
- 按鍵 1或按鍵 2:共用存取金鑰。
建立 Event Hub 命名空間和 Event Hub
建立 Event Hubs 命名空間
- 在 Azure 入口網站中,搜尋 Event Hubs。
- 點選「+ 建立」。
請提供下列設定詳細資料:
設定 值 訂閱項目 選取 Azure 訂閱項目 資源群組 選取與儲存空間帳戶相同的資源群組 命名空間名稱 輸入不重複的名稱 (例如 secops-intune-logs)位置 選取與儲存空間帳戶相同的區域 定價方案 標準 (Event Hub Capture 必填) 按一下「檢查並建立」,然後按一下「建立」。
等待部署作業完成。
建立事件中樞
- 前往您建立的 Event Hub 命名空間。
- 按一下頂端的「+ Event Hub」。
- 請提供下列設定詳細資料:
- 「Name」(名稱):輸入名稱 (例如
intune-logs)。 - 分區數量:2 (預設值,如要提高總處理量,請增加分區數量)。
- 清除政策:刪除。
- 保留時間 (小時):24 (最低,如需彈性可增加)。
- 「Name」(名稱):輸入名稱 (例如
- 按一下「檢查並建立」,然後按一下「建立」。
啟用 Event Hub Capture
- 前往您建立的 Event Hub (位於命名空間內)。
- 選取左側導覽列中的「擷取」。
- 將「擷取」設為「開啟」。
請提供下列設定詳細資料:
設定 值 時間範圍 (分鐘) 5 (或更低,以達到近乎即時的延遲) 大小視窗 (MB) 300 擷取供應商 Azure Blob 儲存體 Azure 訂閱項目 選取訂閱方案 儲存空間帳戶 選取您建立的儲存空間帳戶 Blob 容器 建立或選取容器 (例如 intune-capture)按一下 [儲存]。
設定 Intune 診斷設定
- 登入 Microsoft Intune 系統管理中心。
- 選取「報表」>「診斷設定」。
- 按一下「新增診斷設定」。
- 請提供下列設定詳細資料:
- 診斷設定名稱:輸入描述性名稱 (例如
intune-to-eventhub)。 - 在「記錄」部分中,選取下列類別:
- OperationalLogs
- DeviceComplianceOrg
- 裝置
- 在「目的地詳細資料」部分,選取「將資料串流至事件中樞」。
- 「Subscription」(訂閱項目):選取包含 Event Hub 命名空間的訂閱項目。
- 事件中樞命名空間:選取您建立的命名空間 (例如
secops-intune-logs)。 - 事件中樞名稱:選取您建立的事件中樞 (例如
intune-logs)。 - 事件中樞政策名稱:選取「RootManageSharedAccessKey」。
- 診斷設定名稱:輸入描述性名稱 (例如
按一下 [儲存]。
在 Google SecOps 中設定動態饋給,擷取 Intune 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Microsoft Intune - Event Hub)。 - 選取「Microsoft Azure Blob Storage V2」做為「來源類型」。
- 選取「Microsoft Intune」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
Azure URI:輸入 Blob 服務端點網址和擷取容器路徑:
https://<storage-account>.blob.core.windows.net/intune-capture/將
<storage-account>替換為 Azure 儲存空間帳戶名稱。
- 來源刪除選項:根據偏好選取刪除選項:
- 永不:轉移後一律不刪除任何檔案。
- 刪除已轉移的檔案:成功轉移檔案後刪除檔案。
- 刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄。
- 檔案存在時間上限:納入在過去天數內修改的檔案。預設值為 180 天。
- 共用金鑰:輸入儲存空間帳戶的共用存取金鑰值。
- 資產命名空間:資產命名空間。
- 擷取標籤:要套用至這個動態饋給事件的標籤。
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
設定 Azure 儲存空間防火牆 (如已啟用)
如果 Azure 儲存體帳戶使用防火牆,您必須新增 Google SecOps IP 範圍。
- 在 Azure 入口網站中,前往「儲存體帳戶」。
- 選取「Security + networking」(安全性 + 網路) 下方的「Networking」(網路)。
- 在「防火牆和虛擬網路」下方,選取「從所選虛擬網路和 IP 位址啟用」。
- 在「防火牆」部分的「位址範圍」下方,按一下「+ 新增 IP 範圍」。
- 以 CIDR 標記法新增每個 Google SecOps IP 範圍。
- 請參閱 IP 位址許可清單說明文件。
- 或者使用 Feed Management API,以程式輔助方式擷取這些 ID。
- 按一下 [儲存]。
方法 2:第三方 API
這個方法會使用 Microsoft Graph API,直接從 Microsoft 租戶擷取 Intune 稽核和作業記錄。
設定 Microsoft Entra 應用程式註冊
建立應用程式註冊
- 登入 Microsoft Entra 系統管理中心或 Azure 入口網站。
- 依序前往「身分識別」>「應用程式」>「應用程式註冊」。
- 按一下 [新增註冊]。
- 請提供下列設定詳細資料:
- 名稱:輸入描述性名稱 (例如
Google SecOps Intune Integration)。 - 支援的帳戶類型:選取「Accounts in this organizational directory only (Single tenant)」。
- 重新導向 URI:留空 (服務主體驗證不需要)。
- 名稱:輸入描述性名稱 (例如
- 按一下「註冊」。
- 完成註冊後,請從「總覽」頁面複製並儲存下列值:
- 應用程式 (用戶端) ID
- 目錄 (租戶) ID
設定 API 權限
- 在應用程式註冊中,前往「API permissions」。
- 按一下「新增權限」。
- 依序選取「Microsoft Graph」>「應用程式權限」。
- 搜尋並選取下列權限:
- DeviceManagementApps.Read.All
- DeviceManagementConfiguration.Read.All
- DeviceManagementManagedDevices.Read.All
- DeviceManagementServiceConfig.Read.All
- DeviceManagementRBAC.Read.All
- 按一下「Add permissions」。
- 按一下「Grant admin consent for [Your Organization]」。
確認「狀態」欄顯示所有權限的「已授予 [貴機構]」。
必要的 API 權限
| 權限 | 類型 | 目的 |
|---|---|---|
| DeviceManagementApps.Read.All | 應用程式 | 讀取應用程式管理資料和稽核事件 |
| DeviceManagementConfiguration.Read.All | 應用程式 | 讀取裝置設定和法規遵循政策 |
| DeviceManagementManagedDevices.Read.All | 應用程式 | 讀取受管理裝置資訊 |
| DeviceManagementServiceConfig.Read.All | 應用程式 | 讀取 Intune 服務設定 |
| DeviceManagementRBAC.Read.All | 應用程式 | 讀取角色型存取權控管設定 |
建立用戶端密鑰
- 在應用程式註冊中,前往「Certificates & secrets」。
- 按一下 [新增用戶端密碼]。
請提供下列設定詳細資料:
- 說明:輸入描述性名稱 (例如
Google SecOps Feed)。 - 到期:選取到期時間。
- 說明:輸入描述性名稱 (例如
按一下「新增」。
立即複製用戶端密鑰的「值」。
重要事項:密鑰值只會顯示一次,離開這個頁面後就無法擷取。如果遺失該值,就必須建立新的用戶端密鑰。
在 Google SecOps 中設定動態饋給,擷取 Microsoft Intune 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Microsoft Intune Logs)。 - 選取「第三方 API」做為「來源類型」。
- 選取「Microsoft Intune」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
- OAuth 用戶端 ID:輸入應用程式註冊時取得的「應用程式 (用戶端) ID」 (例如
1234abcd-1234-abcd-1234-abcd1234abcd)。 - OAuth 用戶端密鑰:輸入您先前複製的用戶端密鑰值。
- 租戶 ID:以 UUID 格式輸入應用程式註冊中的目錄 (租戶) ID (例如
0fc279f9-fe30-41be-97d3-abe1d7681418)。 API 完整路徑:輸入 Microsoft Graph REST API 端點網址。預設值:
graph.microsoft.com/beta/deviceManagement/auditEventsAPI 驗證端點:輸入 Microsoft Active Directory 驗證端點。預設值:
login.microsoftonline.com資產命名空間:資產命名空間。
擷取標籤:要套用至這個動態饋給事件的標籤。
- OAuth 用戶端 ID:輸入應用程式註冊時取得的「應用程式 (用戶端) ID」 (例如
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
設定完成後,動態饋給就會開始從 Microsoft Graph API 擷取 Intune 稽核和作業記錄。
地區端點
如要在主權雲端中部署 Microsoft Intune,請使用適當的區域端點:
| 雲端環境 | API 完整路徑 | API 驗證端點 |
|---|---|---|
| 全球 | graph.microsoft.com/beta/deviceManagement/auditEvents |
login.microsoftonline.com |
| 美國政府 L4 | graph.microsoft.us/beta/deviceManagement/auditEvents |
login.microsoftonline.us |
| 美國政府 L5 (國防部) | dod-graph.microsoft.us/beta/deviceManagement/auditEvents |
login.microsoftonline.us |
| 中國 (21Vianet) | microsoftgraph.chinacloudapi.cn/beta/deviceManagement/auditEvents |
login.chinacloudapi.cn |
方法 3:Microsoft Azure Blob 儲存體 V2
這個方法會將診斷資料匯出至 Azure 儲存體帳戶,並設定 Google SecOps 資訊提供,從 Azure Blob 儲存體擷取資料,藉此收集 Microsoft Intune 記錄。
設定 Azure 儲存體帳戶
建立儲存空間帳戶
- 在 Azure 入口網站中,搜尋「儲存體帳戶」。
- 點選「+ 建立」。
請提供下列設定詳細資料:
設定 值 訂閱項目 選取 Azure 訂閱項目 資源群組 選取現有資料庫或建立新資料庫 儲存體帳戶名稱 輸入不重複的名稱 (例如 intunelogs)區域 選取區域 (例如 East US)效能 標準 (建議) 備援功能 GRS (異地備援儲存空間) 或 LRS (本機備援儲存空間) 按一下「Review + create」。
查看總覽,然後按一下「建立」。
等待部署作業完成。
取得儲存空間帳戶憑證
- 前往您建立的「儲存空間帳戶」。
- 在左側導覽中,選取「Security + networking」(安全性 + 網路) 下方的「Access keys」(存取金鑰)。
- 按一下「顯示金鑰」。
- 複製並儲存下列項目:
- 儲存體帳戶名稱:您在建立時提供的名稱。
- 按鍵 1或按鍵 2:共用存取金鑰。
取得 Blob 服務端點
- 在同一個儲存空間帳戶中,選取左側導覽列的「Endpoints」(端點)。
- 複製並儲存「Blob service」端點網址。
- 範例:
https://intunelogs.blob.core.windows.net/
- 範例:
設定 Microsoft Intune 診斷設定
- 登入 Microsoft Intune 系統管理中心。
- 選取「報表」>「診斷設定」。
- 按一下「新增診斷設定」。
- 請提供下列設定詳細資料:
- 診斷設定名稱:輸入描述性名稱 (例如
export-to-secops)。 - 在「記錄」部分中,選取下列類別:
- OperationalLogs
- DeviceComplianceOrg
- 裝置
- 在「目的地詳細資料」部分,選取「封存至儲存空間帳戶」核取方塊。
- 訂閱項目:選取包含儲存空間帳戶的訂閱項目。
- 「Storage account」(儲存空間帳戶):選取您先前建立的儲存空間帳戶。
- 診斷設定名稱:輸入描述性名稱 (例如
按一下 [儲存]。
在 Google SecOps 中設定資訊提供,從 Blob 儲存空間擷取 Microsoft Intune 記錄
- 依序前往「SIEM 設定」>「動態饋給」。
- 按一下「新增動態消息」。
- 在下一個頁面中,按一下「設定單一動態饋給」。
- 在「動態饋給名稱」欄位中輸入動態饋給名稱 (例如
Microsoft Intune Blob Storage)。 - 選取「Microsoft Azure Blob Storage V2」做為「來源類型」。
- 選取「Microsoft Intune」做為「記錄類型」。
- 點選「下一步」。
指定下列輸入參數的值:
Azure URI:輸入 Blob 服務端點網址和容器路徑。為每個記錄類別分別建立動態饋給:
作業記錄:
https://<storage-account>.blob.core.windows.net/insights-logs-operationallogs/裝置法規遵循機構記錄:
https://<storage-account>.blob.core.windows.net/insights-logs-devicecomplianceorg/裝置:
https://<storage-account>.blob.core.windows.net/insights-logs-devices/
將
<storage-account>替換為 Azure 儲存空間帳戶名稱。- 來源刪除選項:根據偏好選取刪除選項:
- 永不:轉移後一律不刪除任何檔案
- 刪除轉移的檔案:成功轉移檔案後刪除檔案
- 刪除已轉移的檔案和空白目錄:成功轉移後刪除檔案和空白目錄
- 檔案存在時間上限:納入在過去天數內修改的檔案。預設值為 180 天。
- 共用金鑰:輸入儲存空間帳戶的共用存取金鑰值。
- 資產命名空間:資產命名空間。
- 擷取標籤:要套用至這個動態饋給事件的標籤。
點選「下一步」。
在「Finalize」(完成) 畫面中檢查新的動態饋給設定,然後按一下「Submit」(提交)。
針對每個 Intune 記錄類別容器,重複步驟 1 到 10,建立其他動態消息。
設定 Azure 儲存空間防火牆 (如已啟用)
如果 Azure 儲存體帳戶使用防火牆,您必須新增 Google SecOps IP 範圍。
- 在 Azure 入口網站中,前往「儲存體帳戶」。
- 選取「Security + networking」(安全性 + 網路) 下方的「Networking」(網路)。
- 在「防火牆和虛擬網路」下方,選取「從所選虛擬網路和 IP 位址啟用」。
- 在「防火牆」部分的「位址範圍」下方,按一下「+ 新增 IP 範圍」。
- 以 CIDR 標記法新增每個 Google SecOps IP 範圍。
- 請參閱 IP 許可清單說明文件
- 或使用 Feed Management API 以程式輔助方式擷取
按一下 [儲存]。
UDM 對應表
| 記錄欄位 | UDM 對應 | 邏輯 |
|---|---|---|
AADDeviceId_label |
additional.fields |
已合併 |
AADTenantId_label |
additional.fields |
已合併 |
ComplianceState_label |
additional.fields |
已合併 |
DeviceHealthThreatLevel_loc_label |
additional.fields |
已合併 |
EnrollmentType_label |
additional.fields |
已合併 |
FailureCategory_label |
additional.fields |
已合併 |
FailureReason_label |
additional.fields |
已合併 |
InGracePeriodUntil_label |
additional.fields |
已合併 |
IntuneAccountId_label |
additional.fields |
已合併 |
IntuneDeviceId_label |
additional.fields |
已合併 |
IntuneUserId_label |
additional.fields |
已合併 |
LastContact_label |
additional.fields |
已合併 |
ManagementAgents_label |
additional.fields |
已合併 |
ManagementAgents_loc_label |
additional.fields |
已合併 |
MessageId_label |
additional.fields |
已合併 |
Os_label |
additional.fields |
已合併 |
RetireAfterDatetime_label |
additional.fields |
已合併 |
ScaleUnit_label |
additional.fields |
已合併 |
activityOperationType_label |
additional.fields |
已合併 |
activityResult_label |
additional.fields |
已合併 |
category_label |
additional.fields |
已合併 |
componentName_label |
additional.fields |
已合併 |
correlationId_label |
additional.fields |
已合併 |
current_perm |
additional.fields |
已合併 |
displayName_label |
additional.fields |
已合併 |
id_label |
additional.fields |
已合併 |
old_label |
additional.fields |
已合併 |
resultType_label |
additional.fields |
已合併 |
start_time_utc |
additional.fields |
已合併 |
temp_label |
additional.fields |
已合併 |
tenantId_label |
additional.fields |
已合併 |
properties.Description |
metadata.description |
直接對應 |
time |
metadata.event_timestamp |
已剖析為 ISO8601 |
when |
metadata.event_timestamp |
已剖析為 yyyy-MM-dd HH:mm:ss |
event_type |
metadata.event_type |
已重新命名/對應 |
activityType |
metadata.product_event_type |
直接對應 |
operationName |
metadata.product_event_type |
直接對應 |
properties.BatchId |
metadata.product_log_id |
直接對應 |
properties.SessionId |
network.session_id |
直接對應 |
actor.applicationDisplayName |
principal.application |
直接對應 |
properties.Actor.Application |
principal.application |
直接對應 |
properties.DeviceId |
principal.asset.asset_id |
直接對應 |
_hardware |
principal.asset.hardware |
已合併 |
properties.DeviceName |
principal.asset.hostname |
直接對應 |
properties.DeviceId |
principal.asset_id |
直接對應 |
properties.DeviceName |
principal.hostname |
直接對應 |
properties.OS |
principal.platform |
直接對應 |
properties.OSVersion |
principal.platform_version |
直接對應 |
properties.OsVersion |
principal.platform_version |
直接對應 |
actor.applicationId |
principal.resource.id |
直接對應 |
actor_type_label |
principal.user.attribute.labels |
已合併 |
auditActorType_label |
principal.user.attribute.labels |
已合併 |
activityOperationType |
principal.user.attribute.roles |
已對應:Create → role |
activityType |
principal.user.attribute.roles |
對應值 (共 5 個,例如「建立 Windows Autopilot 部署設定檔」。WindowsAutopilotD... |
role |
principal.user.attribute.roles |
已合併 |
properties.UserEmail |
principal.user.email_addresses |
已合併 |
actor.userId |
principal.user.product_object_id |
直接對應 |
properties.UserName |
principal.user.user_display_name |
直接對應 |
actor.userPrincipalName |
principal.user.userid |
直接對應 |
properties.Actor.UPN |
principal.user.userid |
直接對應 |
properties.AlertType |
security_result.description |
直接對應 |
detection_AlertDisplayName |
security_result.detection_fields |
已合併 |
detection_DeviceDnsDomain |
security_result.detection_fields |
已合併 |
detection_DeviceHostName |
security_result.detection_fields |
已合併 |
detection_DeviceNetBiosName |
security_result.detection_fields |
已合併 |
detection_DeviceOperatingSystem |
security_result.detection_fields |
已合併 |
detection_OSDescription |
security_result.detection_fields |
已合併 |
detection_OS_loc |
security_result.detection_fields |
已合併 |
detection_OperationalLogCategory |
security_result.detection_fields |
已合併 |
detection_ScenarioName |
security_result.detection_fields |
已合併 |
detection_UPNSuffix |
security_result.detection_fields |
已合併 |
detection_UserDisplayName |
security_result.detection_fields |
已合併 |
detection_application_id |
security_result.detection_fields |
已合併 |
detection_object_identity |
security_result.detection_fields |
已合併 |
operationName |
security_result.detection_fields |
已對應:Reprovision CloudPCModel → detection_object_identity、Reprovision CloudPCModel... |
application |
target.application |
已重新命名/對應 |
deployment_status |
target.asset.deployment_status |
已重新命名/對應 |
activityType |
target.asset.software |
已對應:Patch DeviceConfiguration → software2、Patch DeviceConfiguration → software3... |
software |
target.asset.software |
已合併 |
software1 |
target.asset.software |
已合併 |
software2 |
target.asset.software |
已合併 |
software3 |
target.asset.software |
已合併 |
software4 |
target.asset.software |
已合併 |
auditResourceType_label |
target.resource.attribute.labels |
已合併 |
display_name_label |
target.resource.attribute.labels |
已合併 |
resources.0.resourceId |
target.resource.id |
直接對應 |
resources.0.type |
target.resource.name |
直接對應 |
resource_type |
target.resource.resource_type |
已重新命名/對應 |
operationName |
target.user.email_addresses |
已對應:Reprovision CloudPCModel → upn_identity |
upn_identity |
target.user.email_addresses |
已對應:^.+@.+$ → upn_identity |
user_identity |
target.user.email_addresses |
已對應:^.+@.+$ → user_identity |
user_id |
target.user.userid |
直接對應 |
user_identity |
target.user.userid |
直接對應 |
| 不適用 | metadata.product_name |
常數:AZURE MDM INTUNE |
| 不適用 | metadata.vendor_name |
常數:Microsoft |
| 不適用 | principal.platform |
常數:MAC |
| 不適用 | target.cloud.environment |
常數:MICROSOFT_AZURE |
resources.auditResourceType |
event.idm.read_only_udm.target.resource.attribute.labels |
從變更記錄對應 |
resultType", "properties.AADDeviceId", "properties.IntuneDeviceId", "properties.IntuneUserId", "properties.MessageId", "properties.ScaleUnit", and "properties.Os |
additional.fields |
從變更記錄對應 |
properties.EnrollmentType" and "properties.FailureReason |
additional.fields |
從變更記錄對應 |
properties.OsVersion", "principal.platform_version", and "properties.StartTimeUtc |
additional.fields |
從變更記錄對應 |
properties.OperationalLogCategory", "properties.ScenarioName", "properties.UserDisplayName", "properties.UPNSuffix", "properties.DeviceOperatingSystem", "AlertDisplayNameproperties.AlertDisplayName, "properties.DeviceDnsDomain", "properties.DeviceNetBiosName", and "properties.DeviceHostName |
security_result.detection_fields |
從變更記錄對應 |
identity" and "user_id |
target.user.userid |
從變更記錄對應 |
properties.SerialNumber |
_hardware.serial_number |
從變更記錄對應 |
tenantId", "properties.IntuneAccountId", "properties.AADTenantId", "properties.LastContact", "properties.DeviceHealthThreatLevel_loc", "properties.ComplianceState", "properties.InGracePeriodUntil", "properties.RetireAfterDatetime", "properties.ManagementAgents", and "properties.ManagementAgents_loc |
additional.fields |
從變更記錄對應 |
properties.OS_loc" and "properties.OSDescription |
security_result.detection_fields |
從變更記錄對應 |
變更記錄
還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。