適用於 SAP 應用程式的 Microsoft Sentinel 解決方案 - 函式參考
本文說明在安裝適用於 SAP 應用程式的Microsoft Sentinel 解決方案之後,工作區中可用的函式。 在 sentinel 中流覽 Microsoft並載入函式程式碼,以探索更多函式。
尋找函式,如下所示:
- 在 [Azure 入口網站] 的 [一般>記錄] 頁面上的 [函式] 索引標籤上,並列在 [工作區] 函式底下。
- 在 Defender 入口網站的 [調查與回應>進階搜捕] 頁面上,於 [函式] 索引標籤上,並列在 Sentinel 工作區函式底下。
本文中的內容適用於您的 安全性 小組。
在查詢中使用函式,而不是基礎記錄或數據表
強烈建議您盡可能使用本文所列的函式作為其分析主體,而不是基礎記錄或數據表。
這些函式的目的是做為數據的主要用戶介面。 它們會形成您現成可用的所有內建分析規則和活頁簿的基礎。 使用函式可讓您變更函式底下的數據基礎結構,而不會中斷使用者建立的內容。
SAPUsersAssignments
SAPUsersAssignments 函式會從多個 SAP 數據源收集數據,並建立以使用者為中心的目前使用者主要數據檢視,包括目前指派的角色和配置檔。
此函式摘要說明角色和設定檔的使用者指派,並傳回下列資料:
欄位 | 描述 | 數據來源/附注 |
---|---|---|
User | SAP 使用者識別碼 | 僅限 SAL |
電子郵件 | SMTP 位址 | USR21 (SMTP_ADDR) |
UserType | 使用者類型 | USR02 (USTYP) |
時區 | Time zone | USR02 (TZONE) |
LockedStatus | 鎖定狀態 | USR02 (UFLAG) |
LastSeenDate | 上次看到日期 | USR02 (TRDAT) |
LastSeenTime | 上次出現時間 | USR02 (LTIME) |
UserGroupAuth | 使用者主要維護中的使用者群組 | USR02 (CLASS) |
設定檔 | 設定檔案集 (預設最大設定大小 = 50) | ["Profile 1", "Profile 2",...,"profile 50"] |
DirectRoles | 直接指定角色集 (預設最大設定大小 = 50) | ["Role 1", "Role 2",...,"”"Role 50"] |
ChildRoles | 一組間接指派的角色(預設最大設定大小 = 50) | ["Role 1", "Role 2",...,"”"Role 50"] |
用戶端 | Client ID | |
SystemID | 系統識別碼 | 如連接器中所定義 |
SAPUsersGetPrivileged
SAPUsersGetPrivileged 函式會傳回每個用戶端和系統識別碼的特殊許可權用戶清單。
當使用者符合下列任何描述時,會被視為具有特殊許可權:
- 它們列在 SAP - 特殊許可權使用者 關注清單中
- 它們會指派給 SAP - 敏感性設定檔關注清單中所列的配置檔
- 它們會新增至 SAP - 敏感性角色關注清單中所列的角色
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
TimeAgo | 選擇性 | 七天 | 判斷函式會從 值所 TimeAgo 定義的時間搜尋使用者主要數據,直到值所定義 now() 的時間為止。 |
SAPUsersGetPrivileged 函式會傳回下列數據:
欄位 | 描述 |
---|---|
User | SAP 使用者識別碼 |
用戶端 | Client ID |
SystemID | 系統識別碼 |
SAPUsersAuthorizations
SAPUsersAuthorizations 函式會將來自數個數據表的數據結合在一起,以產生目前角色和指派授權的使用者中心檢視。 只會傳回具有作用中角色和授權指派的使用者。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
TimeAgo | 選擇性 | 七天 | 判斷函式會從 值所 TimeAgo 定義的時間搜尋使用者主要數據,直到值所定義 now() 的時間為止。 |
SAPUsersAuthorizations 函式會傳回下列數據:
欄位 | 描述 | 附註 |
---|---|---|
User | SAP 使用者識別碼 | |
角色 | 角色集 (預設最大設定大小 = 50) | ["Role 1", "Role 2",...,"Role 50"] |
AuthorizationsDetails | 授權集 (預設最大集大小 = 100) | {{AuthorizationsDetails1} ,{AuthorizationsDetails2} , ..., {AuthorizationsDetails100}} |
用戶端 | Client ID | |
SystemID | 系統識別碼 |
SAPConnectorHealth
SAPConnectorHealth 函式會反映代理程式的狀態和基礎 SAP 系統的連線能力。 根據活動訊號記錄 檔SAP_HeartBeat_CL 和其他健康情況指標,它會傳回下列數據:
欄位 | 描述 |
---|---|
代理程式 | 代理程式設定中的代理程式識別碼 (自動產生) |
SystemID | SAP 系統識別碼 |
狀態 | 整體連線狀態 |
詳細資料 | 連線詳細資料 |
ExtendedDetails | 線上擴充詳細數據 |
LastSeen | 最新活動的時間戳 |
StatusCode | 反映系統狀態的程序代碼 |
SAPConnectorOverview
SAPConnectorOverview 函式會顯示每個系統識別碼每個 SAP 數據表的數據列計數。 它會傳回每個系統標識碼的數據記錄清單,以及其產生的時間。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
TimeAgo | 選擇性 | 七天 | 判斷函式會從 值所 TimeAgo 定義的時間搜尋使用者主要數據,直到值所定義 now() 的時間為止。 |
SAPConnectorOverview 函式會傳回下列數據:
欄位 | 描述 |
---|---|
TimeGenerated | 記錄產生時間戳的日期時間值 |
SystemID_s | 表示 SAP 系統識別碼的字串 |
使用下列 Kusto 查詢來執行每日趨勢分析:
SAPConnectorOverview(7d)
| summarize count() by bin(TimeGenerated, 1d), SystemID_s
SAPUsersEmail
SAPUsersEmail 函式可讓 SAP 使用者的電子郵件位址與每個 SAP 系統和用戶端的效能導向查閱,通常用來將它與 Active Directory 帳戶產生關聯。
SAPUsersEmail 函式會使用從 SAP 資料表 USR21 (使用者名稱/位址金鑰指派) 和 ADR6 (電子郵件位址) 擷取的數據來尋找電子郵件位址。 如果找不到電子郵件位址,則會改為傳回使用者標識碼。
此行為可確保通常未與電子郵件地址相關聯的 SAP 服務帳戶,例如 DDIC,會記錄為虛擬 AD 帳戶。 這也開闢了一些UEBA功能,協助調查事件和狩獵活動。
SAPUsersEmail 函式會傳回下列數據:
欄位 | 描述 |
---|---|
ClientID | SAP 用戶端識別碼 |
SystemID | SAP 系統識別碼 |
User | SAP 使用者識別碼 |
電子郵件 | SAP 使用者的電子郵件位址 |
SAPSystems
SAPSystems 函式可用來集中呈現使用 SAP - Systems 監看清單所建立的個別系統組態。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
SelectedSystems | 選擇性 | All Systems |
用來篩選特定SAP系統 |
SelectedSystemRoles | 選擇性 | All System Roles |
決定要查看的 SAP 系統角色,如 SAP - Systems 監看清單中所定義 |
SAPSystems 函式會傳回下列數據:
欄位 | 描述 | 數據來源/附注 |
---|---|---|
SearchKey | 搜尋索引鍵 | SAP 系統識別碼的索引欄位 |
SystemRole | SAP 系統的角色 | 生產、UAT |
SystemUsage | SAP 系統的主要用法 | ERP、CRM |
SystemID | SAP 系統識別碼 |
SAPAuditLogConfiguration
SAPAuditLogConfiguration 函式會將 SAP 稽核記錄警示的本機設定傳回為 sentinel 啟用 Microsoft 的 Log Analytics 工作區。 此設定用於 SAP 稽核記錄相關警示。
SAPAuditLogConfiguration 函式會聯結 SAP 動態稽核記錄監視器組態和 SAP - 系統監看列表中的數據,以在每個系統角色的工作中提供個別系統設定。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
SelectedSystems | 選擇性 | All Systems |
用來篩選要查看的特定SAP系統。 |
SelectedSystemRoles | 選擇性 | All System Roles |
決定要查看的 SAP 系統角色(如 SAP - Systems 關注清單中所定義)。 |
SelectedSeverities | 選擇性 | [High , Medium ] |
用來判斷要根據其嚴重性來查看的事件。 每個 SAP 稽核記錄訊息識別碼和系統角色的嚴重性定義於 SAP_Dynamic_Audit_Log_Monitor_Configuration 關注清單中。 |
SelectedRuleTypes | 選擇性 | All RuleTypes |
判斷哪些事件與偵測異常有關。 每個 SAP 稽核記錄訊息識別碼和系統角色的規則類型都會定義在 SAP_Dynamic_Audit_Log_Monitor_Configuration 關注清單中。 |
SAPAuditLogConfiguration 函式會傳回下列數據:
欄位 | 描述 | 數據來源/附注 |
---|---|---|
CategoryName | SAP 指定的事件類別目錄 | SAP 動態稽核記錄監視器設定 監看清單 |
DestinationEmail | 指派小組的電子郵件位址 | SAP 動態稽核記錄監視器設定 監看清單 |
DetailedDescription | 要顯示在警示上的 Markdown 格式化文字 | SAP 動態稽核記錄監視器設定 監看清單 |
MessageID | SAP 稽核記錄訊息標識碼 | SAP 動態稽核記錄監視器設定 監看清單 |
MessageText | 範例消息正文 | SAP 動態稽核記錄監視器設定 監看清單 |
RolesTagsToExclude | ABAP 角色、配置檔或自由文字標記 | SAP 動態稽核記錄監視器設定 監看清單 |
RuleType | 異常或決定性 | SAP 動態稽核記錄監視器設定 監看清單 |
策略 | MITRE ATTA&CK 策略 | SAP 動態稽核記錄監視器設定 監看清單 |
TeamsChannelID | Teams 通道 | SAP 動態稽核記錄監視器設定 監看清單 |
SystemID | SAP 系統識別碼 | SAP - 系統 監看清單 |
SystemRole | SAP 系統的角色 | SAP - 系統 監看清單 |
SystemUsage | SAP 系統的主要用法 | SAP - 系統 監看清單 |
IsProd | 生產系統旗標 | SAP - 系統 監看清單 |
嚴重性 | 衍生嚴重性 | 每個系統使用量的嚴重性 |
臨界值 | 衍生的臨界值 | 每個系統使用量的事件計數 |
BagOfDetails | 詳細數據袋 | 詳細描述事件定義的字典 |
如需詳細資訊,請參閱 可用的關注清單。
SAPAuditLogAnomalies
SAPAuditLogAnomalies 函式會使用Microsoft Sentinel 的基礎 Kusto 資料庫內建機器學習功能,協助偵測 SAP 稽核記錄檔上觀察到的異常事件。
SAPAuditLogAnomalies 函式是針對 SAP - (實驗性) 動態異常型稽核記錄監視器警示分析規則所開發。 雖然其原始設計是警示最近的異常,但它也可以協助醒目提示歷史異常。 如需詳細資訊,請參閱 範例用法。
SAPAuditLogAnomalies 函式會在下列層級瞭解不同輸入參數所定義的歷程記錄配量:
- User
- 網路屬性
- 系統
- 季節性
- 活動層級
SAPAuditLogAnomalies 函式接著會根據所學到的內容、套用閾值和其他從 SAP 稽核記錄組態監看清單取得的可設定排除準則,判斷在最後DetectingTime
一次範圍內發生的事件。
一旦用戶活動的滑動視窗被視為異常,第二個查詢會將整個用戶活動當做支持決策的證據傳回。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
LearningTime | 選擇性 | 14 天 | 決定用於模型學習的時間範圍。 |
DetectingTime | 選擇性 | 一個小時 | 決定要查看以偵測異常的時間範圍。 呼叫此函式,以 DetectingTime = 0h 反白顯示整個 LearningTime 時間範圍中的異常狀況。 |
SelectedSystems | 選擇性 | All Systems |
用來篩選要查看的特定SAP系統。 |
SelectedSystemRoles | 選擇性 | All System Roles |
決定要查看的 SAP 系統角色,如 SAP - Systems 監看清單中所定義 |
SelectedSeverities | 選擇性 | [High , Medium ] |
用來判斷要根據其嚴重性來查看的事件。 每個 SAP 稽核記錄訊息識別碼和系統角色的嚴重性定義於 SAP_Dynamic_Audit_Log_Monitor_Configuration 關注清單中。 |
SelectedPrefixMask | 選擇性 | 24 | 用來判斷用於學習和偵測的子網掩碼層級。 |
SelectedRuleTypes | 選擇性 | AnomaliesOnly |
判斷哪些事件與偵測異常有關。 每個 SAP 稽核記錄訊息識別碼和系統角色的規則類型都會定義在 SAP_Dynamic_Audit_Log_Monitor_Configuration 關注清單中。 |
SAPAuditLogAnomalies 函式會傳回下列數據:
欄位 | 描述 |
---|---|
SAPAuditLog 中的多個字段 | SAP 稽核記錄中的索引鍵欄位 |
SAPAuditLogConfiguration 中的多個字段 | SAP 稽核記錄組態Microsoft Sentinel 的主要欄位 |
DiscoveredOn | 觀察到異常的四捨五入小時 |
EventCount | 傳回的每個數據列所計算的事件數目 |
AnomalCount | 相關滑動窗口中觀察到的事件數目 |
MinTime | 觀察到第一個事件的時間 |
MaxTime | 觀察到的最後一個事件時間 |
分數 | 異常模型所產生的異常分數 |
建議:
如同任何機器學習解決方案, SAPAuditLogAnomalies 函式會隨著時間而執行得更好,並視需要視需要進行調整。
我們建議使用許多可用的輸入參數,限制所學習資料庫的大小低於 1 億筆記錄。
若要搜尋過去一小時內在生產系統上針對在SAP_Dynamic_Audit_Log_Monitor_Configuration關注清單中標示為 AnomaliesOnly 的事件類型,搜尋高嚴重性事件的異常狀況,請執行:
SAPAuditLogAnomalies(LearningTime = 14d, DetectingTime=1h, SelectedSystemRoles= dynamic(["Production"]), SelectedSeverities= dynamic(["High"]), SelectedRuleTypes= dynamic(["AnomaliesOnly"]))
若要在 BIP 系統中搜尋過去 14 天內的所有異常,請執行:
SAPAuditLogAnomalies(LearningTime = 14d, DetectingTime=0h, SelectedSystems= dynamic(["BIP"]))
如需詳細資訊,請參閱內建的 SAP 分析規則,以使用適用於 SAP 解決方案的 Microsoft Sentinel 監視 SAP 稽核記錄和 SAP 稽核記錄上的異常偵測(部落格)。
SAPAuditLogConfigRecommend
SAPAuditLogConfigRecommend 是協助程式函式,其設計目的是提供 SAP - 動態異常型稽核記錄監視器警示 (預覽) 分析規則設定的建議。
如需詳細資訊,請參閱 監視 SAP 稽核記錄。
SAPUsersGetVIP
適用於 SAP 應用程式的 Microsoft Sentinel 解決方案會使用中央用戶標記和明確排除的概念,其設計目的是要協助您以最少的努力降低誤判。
使用 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 角色或設定檔取代 SAP_BASIS_ADMIN_ROLE 角色和 SAP_ADMIN_PROFILE 配置檔。
例如:
// 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 稽核記錄訊息標識碼產生關聯,或將規則範本延伸至符合您組織需求的自定義規則。
提示
建議您連絡 SAP 系統管理員,以瞭解要包含在SAP_User_Config關注清單中哪些 SAP 使用者、角色和配置檔。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
SearchForTags | 選擇性 | dynamic('All Tags') |
當 等於 All Tags 時SearchForTags ,所有用戶都會連同其標籤一起傳回。 否則,只會傳回包含 中 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 物件識別碼 | Microsoft Entra 物件識別碼 | |
SAP_User_Config關注清單 | 使用者識別碼 | Azure Directory 用戶標識碼 | |
SAP_User_Config關注清單 | 用戶內部部署 SID | ||
SAP_User_Config關注清單 | 使用者主體名稱 | ||
SAP_User_Config關注清單 | TagsList |
指派給使用者的標籤清單 | ChangeUserMasterDataOK ;RunObsoleteProgOK |
邏輯 | TagsIntersect | 符合的一組標籤 SearchForTags |
[“ChangeUserMasterDataOK”,“RunObsoleteProgOK”] |
邏輯 | SpecialFocusTagged | 特殊焦點指示 | True , False |
邏輯 | IntersectionSize | 交集標記的數目 |
SAPUsersHeader
SAPUsersHeader 函式的設計目的是要提供 SAP 使用者的高階檢視。 它會使用從 SAP 使用者主要數據表和 SAP 稽核記錄上最近活動擷取的數據來收集電子郵件和 IP 位址。 然後,它會傳回最後一個已知的電子郵件和IP位址,以及主要電子郵件和IP位址。
參數:
名稱 | 選擇性/必要 | 預設 | 描述 |
---|---|---|---|
SelectedSystems | 選擇性 | All Systems |
用來篩選要查看的特定SAP系統 |
SelectedSystemRoles | 選擇性 | All System Roles |
決定要查看的 SAP 系統角色,如 SAP - Systems 關注清單中所定義。 |
SelectedUsers | 選擇性 | 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 函式會傳回下列輸出:
來源 | 欄位 | 描述 | 附註 |
---|---|---|---|
User | SAP 使用者 | ||
SAP 數據表 ADR6 和 USR21 | 電子郵件 | 取自使用者的主要數據 | OSS、DDIC |
SAP 數據表 USR02 | UserType | 指派給使用者的標記字串 | RunObsoleteProgOK |
SAP 數據表 USR02 | 時區 | Microsoft Entra 物件識別碼 | |
SAP 數據表 USR02 | LockedStatus | Azure Directory 用戶標識碼 | |
SAP 稽核記錄 | LastSeen | 時間戳 | 用戶觀察到的最後一個稽核事件 |
SAP 稽核記錄 | LastSeenDaysAgo | 過去天數 LastSeen |
|
SAP 稽核記錄 | PrimaryIP | 最常使用的IP位址 | ChangeUserMasterDataOK ;RunObsoleteProgOK |
SAP 稽核記錄 | LastKnownIP | 最近使用的IP位址 | [“ChangeUserMasterDataOK”,“RunObsoleteProgOK”] |
SAP 稽核記錄 | PrimaryEmail | 最常使用的電子郵件位址 | True , False |
SAP 稽核記錄 | KnownIPs | 已知IP位址清單 | 依最頻繁的第一個排序 |
SAP 稽核記錄 | KnownEmails | 已知電子郵件地址清單 | 依最頻繁的第一個排序 |
用戶端 | SAP 用戶端識別碼 | ||
SystemID | SAP 系統識別碼 | ||
SystemRole | SAP 系統的角色 | 生產、UAT | |
SystemUsage | SAP 系統的主要用法 | ERP、CRM |
相關內容
如需詳細資訊,請參閱