本文描述安裝 Microsoft Sentinel SAP 應用程式解決方案後,您的工作空間中可用的一系列功能。 想在 Microsoft Sentinel 中瀏覽並載入函式程式碼,就能發現更多功能。
尋找函數如下:
- 在 Azure 入口網站、一般>日誌頁面、功能標籤,以及工作區功能中列出。
- 在 Defender 入口網站、調查 & 回應>的進階搜尋頁面、功能標籤,以及Sentinel工作區功能中列出。
本文內容僅供您的 資安 團隊參考。
在查詢中使用函式,而非底層的日誌或資料表
我們 強烈建議 您盡可能使用本文列出的函式作為分析主題,而非底層 的對數或表格。
這些功能旨在作為資料的主要使用者介面。 它們是所有內建分析規則和工作簿的基礎,這些都是你開箱即用的。 使用函數可以對函式下方的資料基礎架構進行變更,同時不會破壞使用者所建立的內容。
SAPUsers任務
SAPUsersAssignments 函式從多個 SAP 資料來源收集資料,建立以使用者為中心的目前使用者主資料視圖,包括目前指派的角色與設定檔。
此函式總結使用者對角色與設定檔的指派,並回傳以下資料:
| 欄位 | 描述 | 資料來源/註釋 |
|---|---|---|
| 使用者 | SAP 使用者識別碼 | 僅限 SAL |
| SMTP 位址 | USR21(SMTP_ADDR) | |
| UserType | 使用者類型 | USR02(USTYP) |
| 時區 | 時區 | USR02(TZONE) |
| 鎖定狀態 | 閘門狀態 | USR02(UFLAG) |
| 最後見面日期 | 最後出現日期 | USR02(TRDAT) |
| 最後一次見過 | 最後一次出現時間 | USR02(倫敦國際理工會) |
| 使用者群組認證 | 使用者主維護中的使用者群組 | USR02 () 級 |
| 設定檔 | 設定檔集合 (預設最大集合大小 = 50) | ["Profile 1", "Profile 2",...,"profile 50"] |
| 直接角色 | 直接指派角色集合 (預設最大集合大小 = 50) | ["Role 1", "Role 2",...,"”"Role 50"] |
| 兒童角色 | 間接分配角色集合 (預設最大集合大小 = 50) | ["Role 1", "Role 2",...,"”"Role 50"] |
| 用戶端 | 用戶端識別碼 | |
| SystemID | 系統識別碼 | 如連接器所定義 |
SAPUsersGetPrivileged
SAPUsersGetPrivileged 函式會回傳每個用戶端和系統 ID 的特權使用者清單。
當使用者符合以下任一描述時,即被視為享有特權:
- 他們被列在 SAP - 特權使用者 監控名單中
- 他們會被分配到 SAP敏感檔案 監控清單中的一個設定檔
- 他們會被加入 SAP敏感角色 監控清單中的一個職位
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| 時代前 | 選用 | 七天 | 判斷函式從該值定義 TimeAgo 的時間開始尋找使用者主資料,直到該值定義 now() 的時間。 |
SAPUsersGetPrivileged 函式回傳以下資料:
| 欄位 | 描述 |
|---|---|
| 使用者 | SAP 使用者識別碼 |
| 用戶端 | 用戶端識別碼 |
| SystemID | 系統識別碼 |
SAPUsers授權
SAPUsersAuthorizations 功能整合多個資料表的資料,產生以使用者為中心的視圖,呈現目前分配的角色與授權。 只有擁有活躍角色和授權指派的使用者才會被回傳。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| 時代前 | 選用 | 七天 | 判斷函式從該值定義 TimeAgo 的時間開始尋找使用者主資料,直到該值定義 now() 的時間。 |
SAPUsersAuthorizations 函式回傳以下資料:
| 欄位 | 描述 | 附註 |
|---|---|---|
| 使用者 | SAP 使用者識別碼 | |
| 角色 | 角色集合 (預設最大集合大小 = 50) | ["Role 1", "Role 2",...,"Role 50"] |
| 授權詳情 | 授權集合 (預設最大最大集合大小 = 100) |
{{AuthorizationsDetails1},{AuthorizationsDetails2}, ..., {AuthorizationsDetails100}} |
| 用戶端 | 用戶端識別碼 | |
| SystemID | 系統識別碼 |
SAPConnectorHealth
SAPConnectorHealth 功能反映代理程式及底層 SAP 系統的連線狀態。 根據心跳日誌 SAP_HeartBeat_CL 及其他健康指標,會回傳以下資料:
| 欄位 | 描述 |
|---|---|
| 代理程式 | 代理設定中的代理 ID (自動產生) |
| SystemID | SAP 系統識別碼 |
| 狀態 | 整體連接狀況 |
| 詳細資料 | 連接性細節 |
| 延伸細節 | 連接性延伸細節 |
| 最後的目光 | 最新活動時間戳記 |
| StatusCode | 反映系統狀態的程式碼 |
SAPConnector 概述
SAPConnectorOverview 功能會顯示每個系統 ID 上每個 SAP 資料表的列數。 它會回傳一個系統 ID 的資料記錄清單及其產生時間。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| 時代前 | 選用 | 七天 | 判斷函式從該值定義 TimeAgo 的時間開始尋找使用者主資料,直到該值定義 now() 的時間。 |
SAPConnectorOverview 函式回傳以下資料:
| 欄位 | 描述 |
|---|---|
| 時間生成 | 記錄產生時間戳記的日期時間值 |
| SystemID_s | 代表 SAP 系統 ID 的字串 |
請使用以下 Kusto 查詢來執行每日趨勢分析:
SAPConnectorOverview(7d)
| summarize count() by bin(TimeGenerated, 1d), SystemID_s
SAPUsersEmail
SAPUsersEmail 功能允許針對 SAP 系統及用戶端,針對 SAP 使用者的電子郵件地址進行效能導向的查詢,通常用於將其與 Active Directory 帳戶關聯。
SAPUsersEmail 函式利用從 SAP 表格 USR21 (使用者名稱/地址 Key Assignment) 和 ADR6 (電子郵件地址) 擷取資料來尋找電子郵件地址。 若找不到電子郵件地址,則會回傳使用者 ID。
這種行為確保像 DDIC 這類通常不與電子郵件綁定的 SAP 服務帳號會被記錄為偽 AD 帳號。 這也開啟了部分UEBA功能,協助調查事件及狩獵活動。
SAPUsersEmail 函式會回傳以下資料:
| 欄位 | 描述 |
|---|---|
| ClientID | SAP 用戶端識別碼 |
| SystemID | SAP 系統識別碼 |
| 使用者 | SAP 使用者 ID |
| SAP 使用者的電子郵件地址 |
SAPSystems
SAPSystems 功能用於集中呈現使用 SAP - 系統監控清單所建立的系統配置。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| SelectedSystems | 選用 | All Systems |
用於過濾特定的 SAP 系統 |
| 精選系統角色 | 選用 | All System Roles |
決定 SAP 系統的角色,依據 SAP - 系統 監控清單所定義 |
SAPSystems 函式回傳以下資料:
| 欄位 | 描述 | 資料來源/註釋 |
|---|---|---|
| 搜尋鍵 | 搜尋鍵 | SAP 系統 ID 的索引欄位 |
| 系統角色 | SAP 系統的角色 | 製作,UAT |
| 系統使用法 | SAP 系統的主要用途 | ERP、CRM |
| SystemID | SAP 系統識別碼 |
SAPAuditLogConfiguration
SAPAuditLogConfiguration 功能會回傳 SAP 稽核日誌警示的本地設定,該區域已啟用於 Microsoft Sentinel 的 Log Analytics 工作區。 此配置用於 SAP 稽核日誌相關的警示。
SAPAuditLogConfiguration 功能將資料加入 SAP 動態稽核日誌監控組態與 SAP - 系統監控清單,提供每個系統角色的設定。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| SelectedSystems | 選用 | All Systems |
用來篩選特定 SAP 系統以檢視。 |
| 精選系統角色 | 選用 | All System Roles |
決定 SAP 系統的角色, (依據 SAP - 系統 監控清單) 定義。 |
| 選擇嚴重程度 | 選用 | [High, Medium] |
用來判斷事件的嚴重程度。 SAP稽核日誌、訊息、ID、系統角色的嚴重性,皆在 SAP_Dynamic_Audit_Log_Monitor_Configuration 監控清單中定義。 |
| SelectedRuleTypes | 選用 | All RuleTypes |
決定哪些事件對偵測異常有關。 根據 SAP 稽核日誌、訊息 ID 及系統角色,規則類型定義於 SAP_Dynamic_Audit_Log_Monitor_Configuration 監控清單中。 |
SAPAuditLogConfiguration 函式回傳以下資料:
| 欄位 | 描述 | 資料來源/註釋 |
|---|---|---|
| 類別名稱 | SAP 指定事件類別 | SAP 動態稽核日誌監控組態 監控清單 |
| 目的地電子郵件 | 所指派團隊的Email地址 | SAP 動態稽核日誌監控組態 監控清單 |
| 詳細描述 | 一個以 Markdown 格式呈現的文字,用於警示時 | SAP 動態稽核日誌監控組態 監控清單 |
| MessageID | SAP 稽核日誌訊息 ID | SAP 動態稽核日誌監控組態 監控清單 |
| 訊息正文 | 範例訊息文字 | SAP 動態稽核日誌監控組態 監控清單 |
| 角色標籤至排除 | ABAP 角色、個人檔案或自由文字標籤 | SAP 動態稽核日誌監控組態 監控清單 |
| RuleType | 異常性或確定性 | SAP 動態稽核日誌監控組態 監控清單 |
| 戰術 | MITRE ATTA&CK 戰術 | SAP 動態稽核日誌監控組態 監控清單 |
| TeamsChannelID | 團隊頻道 | SAP 動態稽核日誌監控組態 監控清單 |
| SystemID | SAP 系統識別碼 | SAP - 系統 監控清單 |
| 系統角色 | SAP 系統的角色 | SAP - 系統 監控清單 |
| 系統使用法 | SAP 系統的主要用途 | SAP - 系統 監控清單 |
| 即斯普羅德 | 生產系統旗標 | SAP - 系統 監控清單 |
| 嚴重性 | 導出嚴重度 | 系統使用情況的嚴重程度 |
| 臨界值 | 導出閾值 | 系統使用次數的事件計數 |
| 細節袋 | 細節包 | 詳細說明事件定義的字典 |
欲了解更多資訊,請參閱 可用觀察清單。
SAPAudit Log異常
SAPAuditLogAnomalies 功能利用 Microsoft Sentinel 底層 Kusto 資料庫內建的機器學習功能,協助偵測 SAP 稽核日誌中觀察到的異常事件。
SAPAuditLogAnomalies 功能是為 SAP - (實驗性) 動態異常基於審計日誌監控警報的分析規則所開發。 雖然其原始設計是警示近期異常,但同時也能凸顯歷史異常。 欲了解更多資訊,請參閱 範例用途。
SAPAuditLogAnomalies 函式會學習由不同輸入參數定義的歷史切片,層級如下:
- 使用者
- 網路屬性
- 系統
- 季節性
- 活動水準
SAPAuditLogAnomalies 功能會根據所學到的資訊,根據從 SAP 稽核日誌設定監控清單獲得的閾值及其他可配置排除標準,判定過去時間段內DetectingTime發生的事件。
一旦使用者活動的滑動視窗被判定異常,第二次查詢會回傳整個使用者活動作為支持決策的證據。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| 學習時間 | 選用 | 14 天 | 決定模型學習所需的時間跨度。 |
| 偵測時間 | 選用 | 1 小時 | 決定偵測異常所需的時間範圍。 呼叫此 DetectingTime = 0h 函式時,會突顯整個 LearningTime 時間段內的異常。 |
| SelectedSystems | 選用 | All Systems |
用來篩選特定 SAP 系統以檢視。 |
| 精選系統角色 | 選用 | All System Roles |
決定 SAP 系統的角色,依據 SAP - 系統 監控清單所定義 |
| 選擇嚴重程度 | 選用 | [High, Medium] |
用來判斷事件的嚴重程度。 SAP稽核日誌、訊息、ID、系統角色的嚴重性,皆在 SAP_Dynamic_Audit_Log_Monitor_Configuration 監控清單中定義。 |
| SelectedPrefixMask | 選用 | 24 | 用於決定用於學習與偵測的子網路遮罩層級。 |
| SelectedRuleTypes | 選用 | AnomaliesOnly |
決定哪些事件對偵測異常有關。 根據 SAP 稽核日誌、訊息 ID 及系統角色,規則類型定義於 SAP_Dynamic_Audit_Log_Monitor_Configuration 監控清單中。 |
SAPAuditLogAnomalies 函式回傳以下資料:
| 欄位 | 描述 |
|---|---|
| SAPAuditLog 的多欄位 | SAP 稽核日誌中的關鍵欄位 |
| SAPAuditLogConfiguration 的多個欄位 | Microsoft Sentinel for SAP 稽核日誌設定的關鍵欄位 |
| DiscoveredOn | 異常現象被觀察到的四捨五入小時 |
| 事件計數 | 每列回傳的事件數 |
| 異常計數 | 在相關滑動視窗內觀察到的事件數量 |
| 最小時間 | 首次觀測事件的時間 |
| MaxTime | 觀察到的最後事件時間 |
| 分數 | 異常模型產生的異常分數 |
建議:
如同任何機器學習解決方案, SAPAuditLogAnomalies 函式隨時間表現更佳,且可隨時調整。
我們建議利用眾多可用輸入參數,將學習資料庫的紀錄限制在一億筆以下。
若要搜尋過去一小時內在生產系統中發生的高嚴重事件異常,且該事件類型在SAP_Dynamic_Audit_Log_Monitor_Configuration監控清單中標示為「僅異常」,請執行:
SAPAuditLogAnomalies(LearningTime = 14d, DetectingTime=1h, SelectedSystemRoles= dynamic(["Production"]), SelectedSeverities= dynamic(["High"]), SelectedRuleTypes= dynamic(["AnomaliesOnly"]))要搜尋過去14天內所有異常,請執行:
SAPAuditLogAnomalies(LearningTime = 14d, DetectingTime=0h, SelectedSystems= dynamic(["BIP"]))
欲了解更多資訊,請參閱內建 SAP 分析規則,用於監控 SAP 審計日誌及使用 SAP 解決方案Microsoft Sentinel (部落格) 進行異常偵測。
SAPAuditLogConfigRecommende
SAPAuditLogConfigRecommend 是一個輔助功能,設計用來提供 SAP - 動態異常基礎稽核日誌監控警報的配置建議, (PREVIEW) 分析規則。
欲了解更多資訊,請參閱 「監控 SAP 稽核日誌」。
SAPUsersGetVIP
Microsoft Sentinel 用於 SAP 應用的解決方案採用集中式使用者標籤與明確排除的概念,旨在幫助你以最少的努力降低誤報率。
使用 SAPUsersGetVIP 功能,透過指定代表 SAP 使用者角色、SAP 使用者功能或標籤,排除使用者觸發警報。 欲了解更多資訊,請參閱「處理 Microsoft Sentinel 中的誤判」。
SAPUsersGetVIP 功能輸入的標籤會排除所有在 SAP_User_Config 監控清單中列出的標籤使用者。 同樣的功能也擴展到通行符,讓你能將單一標籤指派給一群擁有相同命名語法的使用者。
SAP_User_Config觀察名單中的使用者標籤如下:
根據需要,在 SAP_User_Config 監控清單中為每位使用者新增多個標籤,以涵蓋各種情境。 每個警示規則都有其相關的標籤(如果有的話),你可以根據需要新增自訂標籤。
使用星號 (*) 作為萬用字元,包含具有特定命名語法範本的使用者。
在你的分析規則中加入 SAPUsersGetVIP 功能,請求你已設定的使用者清單被排除在警報之外。 在函式呼叫中,加入一個陣列,包含你想排除的標籤、SAP 角色和 SAP 設定檔。
例如,在你的分析規則中使用以下 KQL 查詢,排除任何在SAP_User_Config監控清單中設定為 RunObsoleteProgOK 標籤的使用者,或是擁有範例SAP_BASIS_ADMIN_ROLE角色或範例SAP_ADMIN_PROFILE設定檔的使用者。
複製此範例函式呼叫時,請將 SAP_BASIS_ADMIN_ROLE 角色與 SAP_ADMIN_PROFILE 設定檔替換為您自己的 SAP 角色或設定檔。
例如:
// Execution of Obsolete/Insecure Program
let ObsoletePrograms = _GetWatchlist("SAP - Obsolete Programs");
// here you can exclude system users which are OK to run obsolete/ sensitive programs
// by adding those users in the SAP_User_Config watchlist with a tag of 'RunObsoleteProgOK'
// can also specify SAP roles or SAP profiles that group the users you would like to exclude
let excludeUsersTagsRolesProfiles= dynamic(["RunObsoleteProgOK","SAP_BASIS_ADMIN_ROLE", "SAP_ADMIN_PROFILE"]);
let excludedUsers= SAPUsersGetVIP(SearchForTags= excludeUsersTagsRolesProfiles)| summarize by User2Exclude=SAPUser;
// Query logic
SAPAuditLog
| where MessageID == 'AUW'
| where ABAPProgramName in (ObsoletePrograms) // The program is obsolete
| join kind=leftantisemi excludedUsers on $left.User == $right.User2Exclude
SAPUsersGetVIP 函式常用於確定性及異常稽核日誌監控警報。 將標籤與 SAP 稽核日誌訊息 ID 關聯,或將規則範本擴充為符合組織需求的自訂規則。
提示
我們建議您聯絡您的 SAP 系統管理員,了解哪些 SAP 使用者、角色與設定檔應納入您的 SAP_User_Config 監控清單。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| 搜尋標籤 | 選用 | dynamic('All Tags') |
當 SearchForTags 等 All Tags於 時,所有使用者連同他們的標籤都會被回傳。 否則,僅回傳帶有標籤 SearchForTags 、SAP 角色或 SAP 設定檔的使用者。
TagsIntersect 顯示已找到的標籤,並 IntersectionSize 記錄已找到的標籤數量。 |
| SpecialFocusTags | 選用 | Do not return any in-focus users |
回傳所有帶有標籤的 SpecialFocusTags使用者,並標記為 specialFocusTagged = true。 |
SAPUsersGetVIP 函式回傳以下輸出:
| 來源 | 欄位 | 描述 | 附註 |
|---|---|---|---|
| SAP_User_Config觀察名單 | SearchKey |
搜尋鍵 | |
| SAP_User_Config觀察名單 | SAPUser |
SAP 使用者 | OSS,DDIC |
| SAP_User_Config觀察名單 | Tags |
分配給使用者的標籤串 | RunObsoleteProgOK |
| SAP_User_Config觀察名單 | 使用者的 Microsoft Entra 物件 ID | Microsoft Entra 物件識別碼 | |
| SAP_User_Config觀察名單 | 使用者識別碼 | Azure Directory 用戶識別碼 | |
| SAP_User_Config觀察名單 | 使用者本地 SID | ||
| SAP_User_Config觀察名單 | 使用者主體名稱 | ||
| SAP_User_Config觀察名單 | TagsList |
分配給使用者的標籤清單 |
ChangeUserMasterDataOK;RunObsoleteProgOK |
| 邏輯 | 標籤交錯 | 一組匹配的標籤 SearchForTags |
["ChangeUserMasterDataOK","RunObsoleteProgOK"] |
| 邏輯 | 特別焦點標籤 | 特殊對焦指示 |
True、False |
| 邏輯 | 交叉大小 | 交叉標籤數量 |
SAPUsersHeader
SAPUsersHeader 函式設計用以提供 SAP 使用者的高階視圖。 它利用從 SAP 使用者主資料表及 SAP 審計日誌中近期活動擷取的資料,來收集電子郵件與 IP 位址。 接著它會回傳最後已知的電子郵件和 IP 位址,以及主要的電子郵件和 IP 位址。
參數:
| 名稱 | 選修/必修 | 預設 | 描述 |
|---|---|---|---|
| SelectedSystems | 選用 | All Systems |
用來篩選特定 SAP 系統以檢視 |
| 精選系統角色 | 選用 | All System Roles |
決定 SAP 系統的角色,依據 SAP - 系統 監控清單所定義。 |
| 精選用戶 | 選用 | All Users |
可以輸入使用者名單。 |
| SelectedUser | 選用 | All Users |
只接受單一使用者。 |
例如:
SelectedSystemRoles:dynamic = dynamic(["All System Roles"]) SelectedSystems:dynamic = dynamic(["All Systems"]) SelectedUsers:dynamic = dynamic(["All Users"]) SelectedUser:string = "All Users"
提示
在績效考量方面,僅考慮幾天的審計活動。 若要完整了解使用者活動歷史,請對 SAPAuditLog 函式執行自訂 KQL 查詢。
SAPUsersHeader 函式回傳以下輸出:
| 來源 | 欄位 | 描述 | 附註 |
|---|---|---|---|
| 使用者 | SAP 使用者 | ||
| SAP 表 ADR6 與 USR21 | 取自使用者的主資料 | OSS,DDIC | |
| SAP 表格 USR02 | UserType | 分配給使用者的標籤串 | RunObsoleteProgOK |
| SAP 表格 USR02 | 時區 | Microsoft Entra 物件識別碼 | |
| SAP 表格 USR02 | 鎖定狀態 | Azure Directory 用戶識別碼 | |
| SAP 稽核日誌 | 最後的目光 | 一個時間戳記 | 使用者觀察到的最後稽核事件 |
| SAP 稽核日誌 | 最後的前日 | 日子一天天過去 LastSeen |
|
| SAP 稽核日誌 | PrimaryIP | 最常用的 IP 位址 |
ChangeUserMasterDataOK;RunObsoleteProgOK |
| SAP 稽核日誌 | 最後已知的知識產權 | 最近使用的 IP 位址 | ["ChangeUserMasterDataOK","RunObsoleteProgOK"] |
| SAP 稽核日誌 | 主要電子郵件 | 最常用的電子郵件地址 |
True、False |
| SAP 稽核日誌 | 已知IP | 已知 IP 位址列表 | 依最頻繁排序 |
| SAP 稽核日誌 | 已知電子郵件 | 已知電子郵件地址列表 | 依最頻繁排序 |
| 用戶端 | SAP 用戶端識別碼 | ||
| SystemID | SAP 系統識別碼 | ||
| 系統角色 | SAP 系統的角色 | 製作,UAT | |
| 系統使用法 | SAP 系統的主要用途 | ERP、CRM |
相關內容
如需詳細資訊,請參閱: