适用于 SAP 应用程序的 Microsoft Sentinel 解决方案 - 函数参考

本文介绍了安装适用于 SAP 的 Microsoft Sentinel 解决方案应用程序后工作区中可用的一系列函数。 通过在 Microsoft Sentinel 中浏览并加载函数代码来发现更多函数。

按如下所示查找函数:

  • 在 Azure 门户的“常规”>“日志”页中的“函数”选项卡上,在“工作区函数”下列出。

本文中的内容适用于安全性团队。

在查询中使用函数,而不是基础日志或表

强烈建议尽可能使用本文列出的函数作为分析的主题,而不是基础日志或表

这些函数旨在用作数据的主要用户接口。 它们构成了所有现成的内置分析规则和工作簿的基础。 使用函数可以对函数下的数据基础结构进行更改,而不会破坏用户创建的内容。

SAPUsersAssignments

SAPUsersAssignments 函数从多个 SAP 数据源收集数据,并为当前用户主数据(包括当前分配的角色和配置文件)创建以用户为中心的视图。

此函数汇总用户的角色分配和配置文件,并返回以下数据:

字段 说明 数据源/备注
用户 SAP 用户 ID 仅限 SAL
电子邮件 SMTP 地址 USR21 (SMTP_ADDR)
UserType 用户类型 USR02 (USTYP)
时区 时区 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"]
客户端 客户端 ID
SystemID 系统 ID 在连接器中定义

SAPUsersGetPrivileged

SAPUsersGetPrivileged 函数返回每个客户端和系统 ID 的特权用户列表。

当用户符合以下任何描述时,即被视为具有特权:

  • 他们列在“SAP - 特权用户”监视列表中
  • 他们被分配到“SAP - 敏感配置文件”监视列表中列出的配置文件
  • 他们被添加到“SAP - 敏感角色”监视列表中列出的角色

参数:

名称 可选/必需 默认值 说明
TimeAgo 可选 七天 确定函数是否搜寻从 TimeAgo 值定义的时间到 now() 值定义的时间范围内的用户主数据。

SAPUsersGetPrivileged 函数返回以下数据:

字段 说明
用户 SAP 用户 ID
客户端 客户端 ID
SystemID 系统 ID

SAPUsersAuthorizations

SAPUsersAuthorizations 函数将多个表中的数据汇集在一起,以生成当前的所分配角色和授权的以用户为中心的视图。 仅返回具有活动角色和授权分配的用户。

参数:

名称 可选/必需 默认值 说明
TimeAgo 可选 七天 确定函数是否搜寻从 TimeAgo 值定义的时间到 now() 值定义的时间范围内的用户主数据。

SAPUsersAuthorizations 函数返回以下数据:

字段 说明 说明
用户 SAP 用户 ID
角色 角色集(默认最大集大小 = 50) ["Role 1", "Role 2",...,"Role 50"]
AuthorizationsDetails 授权集(默认最大集大小 = 100) {{AuthorizationsDeatils1}
{AuthorizationsDeatils2}
。。。,
{AuthorizationsDeatils100}}
客户端 客户端 ID
SystemID 系统 ID

SAPConnectorHealth

SAPConnectorHealth 函数反映代理的和基础 SAP 系统的连接的状态。 它根据检测信号日志 SAP_HeartBeat_CL 和其他运行状况指示器返回以下数据:

字段 说明
Agent 代理配置中的代理 ID(自动生成)
SystemID SAP 系统 ID
状态 总体连接状态
详细信息 连接性详细信息
ExtendedDetails 连接性扩展详细信息
LastSeen 最新活动的时间戳
StatusCode 反映系统状态的代码

SAPConnectorOverview

SAPConnectorOverview 函数显示每个系统 ID 的每个 SAP 表的行计数。 它返回每个系统 ID 的数据记录及其生成时间的列表。

参数:

名称 可选/必需 默认值 说明
TimeAgo 可选 七天 确定函数是否搜寻从 TimeAgo 值定义的时间到 now() 值定义的时间范围内的用户主数据。

SAPConnectorOverview 函数返回以下数据:

字段 说明
TimeGenerated 记录生成时间戳的日期/时间值
SystemID_s 一个表示 SAP 系统 ID 的字符串

使用以下 Kusto 查询执行每日趋势分析:

SAPConnectorOverview(7d)
| summarize count() by bin(TimeGenerated, 1d), SystemID_s

SAPUsersEmail

SAPUsersEmail 函数允许针对每个 SAP 系统和客户端的 SAP 用户电子邮件地址进行面向性能的查找,通常用于将其与 Active Directory 帐户相关联。

SAPUsersEmail 函数使用从 SAP 表 USR21(用户名/地址键分配)和 ADR6(电子邮件地址)中提取的数据来查找电子邮件地址。 如果找不到电子邮件地址,则返回用户 ID。

此行为可确保 SAP 服务帐户(例如 DDIC,这些帐户通常与电子邮件地址不关联)被记录为伪 AD 帐户。 这也开辟了一些 UEBA 功能,有助于调查事件和搜寻活动。

SAPUsersEmail 函数返回以下数据:

字段 说明
ClientID SAP 客户端 ID
SystemID SAP 系统 ID
用户 SAP 用户 ID
电子邮件 SAP 用户的电子邮件地址

SAPSystems

SAPSystems 函数用于集中展示使用“SAP - 系统”监视列表进行的每系统配置。

参数:

名称 可选/必需 默认值 说明
SelectedSystems 可选 All Systems 用于筛选特定 SAP 系统
SelectedSystemRoles 可选 All System Roles 确定要查看的 SAP 系统的角色(如“SAP - 系统”监视列表中所定义)

SAPSystems 函数返回以下数据:

字段 说明 数据源/备注
SearchKey 搜索键 SAP 系统 ID 的索引字段
SystemRole SAP 系统的角色 生产、UAT
SystemUsage SAP 系统的主要用法 ERP、CRM
SystemID SAP 系统 ID

SAPAuditLogConfiguration

SAPAuditLogConfiguration 函数将 SAP 审核日志警报的本地配置返回到为 Microsoft Sentinel 启用的 Log Analytics 工作区。 此配置用于 SAP 审核日志相关的警报。

SAPAuditLogConfiguration 函数将“SAP 动态审核日志监视器配置”和“SAP - 系统”监视列表中的数据联接起来,以按系统角色提供每系统配置。

参数:

名称 可选/必需 默认值 说明
SelectedSystems 可选 All Systems 用于筛选要查看的特定 SAP 系统。
SelectedSystemRoles 可选 All System Roles 确定要查看的 SAP 系统的角色(如“SAP - 系统”监视列表中所定义)。
SelectedSeverities 可选 HighMedium 用于根据严重性确定要查看的事件。 每个 SAP 审核日志消息 ID 和系统角色的严重性在 SAP_Dynamic_Audit_Log_Monitor_Configuration 监视列表中定义。
SelectedRuleTypes 可选 All RuleTypes 确定哪些事件与检测异常相关。 每个 SAP 审核日志消息 ID 和系统角色的规则类型在 SAP_Dynamic_Audit_Log_Monitor_Configuration 监视列表中定义。

SAPAuditLogConfiguration 函数返回以下数据:

字段 说明 数据源/备注
CategoryName SAP 给定事件类别 SAP 动态审核日志监视器配置”监视列表
DestinationEmail 指派团队的电子邮件地址 SAP 动态审核日志监视器配置”监视列表
DetailedDescription 要在警报上显示的 Markdown 格式文本 SAP 动态审核日志监视器配置”监视列表
消息 ID SAP 审核日志消息 ID SAP 动态审核日志监视器配置”监视列表
MessageText 消息文本示例 SAP 动态审核日志监视器配置”监视列表
RolesTagsToExclude ABAP 角色、配置文件或自定义文本标记 SAP 动态审核日志监视器配置”监视列表
RuleType 异常或确定性 SAP 动态审核日志监视器配置”监视列表
策略 MITRE ATTA&CK 策略 SAP 动态审核日志监视器配置”监视列表
TeamsChannelID Teams 通道 SAP 动态审核日志监视器配置”监视列表
SystemID SAP 系统 ID SAP - 系统”监视列表
SystemRole SAP 系统的角色 SAP - 系统”监视列表
SystemUsage SAP 系统的主要用法 SAP - 系统”监视列表
IsProd 生产系统标志 SAP - 系统”监视列表
严重性 推导出的严重性 按系统使用情况的严重性
阈值 推导出的阈值 每个系统使用情况的事件计数
BagOfDetails 详细信息包 详细描述事件定义的字典

有关详细信息,请参阅可用监视列表

SAPAuditLogAnomalies

SAPAuditLogAnomalies 函数使用 Microsoft Sentinel 的基础 Kusto 数据库的内置机器学习功能,帮助检测在 SAP 审核日志中观察到的异常事件。

SAPAuditLogAnomalies 函数是为“SAP - (实验性)基于动态异常的审核日志监视器警报”分析规则开发的。 虽然其原始设计是为了对最近的异常发出警报,但它也可以帮助突出显示历史异常。 有关详细信息,请参阅示例使用

SAPAuditLogAnomalies 函数在以下级别学习由不同输入参数定义的历史记录切片:

  • 用户
  • 网络属性
  • 系统
  • 季节性
  • 活动级别

然后,SAPAuditLogAnomalies 函数根据学到的内容判断在最后一个 DetectingTime 时间跨度内发生的事件,并应用从 SAP 审核日志配置监视列表中获得的阈值和其他可配置的排除标准。

一旦用户活动的滑动窗口被视为异常,第二个查询将返回整个用户活动作为支持该决策的证据。

参数:

名称 可选/必需 默认值 说明
LearningTime 可选 14 天 确定用于模型学习的时间跨度。
DetectingTime 可选 一小时 确定要查看的检测异常的时间跨度。 使用 DetectingTime = 0h 调用此函数将突出显示整个 LearningTime 时间跨度中的异常。
SelectedSystems 可选 All Systems 用于筛选要查看的特定 SAP 系统。
SelectedSystemRoles 可选 All System Roles 确定要查看的 SAP 系统的角色(如“SAP - 系统”监视列表中所定义)
SelectedSeverities 可选 HighMedium 用于根据严重性确定要查看的事件。 每个 SAP 审核日志消息 ID 和系统角色的严重性在 SAP_Dynamic_Audit_Log_Monitor_Configuration 监视列表中定义。
SelectedPrefixMask 可选 24 用于确定学习和检测所用的子网掩码级别。
SelectedRuleTypes 可选 AnomaliesOnly 确定哪些事件与检测异常相关。 每个 SAP 审核日志消息 ID 和系统角色的规则类型在 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 分析规则使用适用于 SAP 的 Microsoft Sentinel 解决方案对 SAP 审核日志进行异常检测(博客)。

SAPAuditLogConfigRecommend

SAPAuditLogConfigRecommend 是一个帮助器函数,旨在为基于 SAP - 动态异常的审核日志监视器警报(预览版)分析规则的配置提供建议。

有关详细信息,请参阅监视 SAP 审核日志

SAPUsersGetVIP

适用于 SAP 的 Microsoft Sentinel 解决方案应用程序使用中心用户标记和显式排除的概念,旨在帮助你轻松减少误报。

使用 SAPUsersGetVIP 函数通过指定 SAP 用户角色、SAP 用户功能或代表用户的标记将这些用户从触发警报的操作中排除。 有关详细信息,请参阅在 Microsoft Sentinel 中处理误报

如果已将标记指定为 SAPUsersGetVIP 函数的输入,则这些标记会排除其标记已在 SAP_User_Config 监视列表中列出的所有用户。 相同的功能已扩展为使用通配符,允许你将单个标记分配给命名语法相同的一组用户。

  1. 将 SAP_User_Config 监视列表中的用户标记如下:

    • 根据需要向 SAP_User_Config 监视列表中的每个用户添加多个标记,以涵盖各种情况。 每个预警规则都有自己的相关标记(如果有),你可以根据需要添加自定义标记。

    • 使用星号 (*) 作为通配符来包含使用特定命名语法模板的用户。

  2. 在分析规则中添加 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_User_Config 监视列表中包含哪些 SAP 用户、角色和配置文件。

参数:

名称 可选/必需 默认值 说明
SearchForTags 可选 dynamic('All Tags') SearchForTags 等于 All Tags 时,将返回所有用户及其标记。

否则仅返回具有 SearchForTags 中指定的标记、SAP 角色或 SAP 配置文件的用户。 TagsIntersect 显示找到的标记,IntersectionSize 保存找到的标记的数量。
SpecialFocusTags 可选 Do not return any in-focus users 返回带有 SpecialFocusTags 中指定的标记的所有用户,用 specialFocusTagged = true 标记这些用户。

SAPUsersGetVIP 函数返回以下输出:

Source 字段 说明 备注
SAP_User_Config 监视列表 SearchKey 搜索键
SAP_User_Config 监视列表 SAPUser SAP 用户 OSS、DDIC
SAP_User_Config 监视列表 Tags 分配给用户的标记字符串 RunObsoleteProgOK
SAP_User_Config 监视列表 用户的 Microsoft Entra 对象 ID Microsoft Entra 对象 ID
SAP_User_Config 监视列表 用户标识符 Azure Directory 用户标识符
SAP_User_Config 监视列表 用户本地 SID
SAP_User_Config 监视列表 用户主体名称
SAP_User_Config 监视列表 TagsList 分配给用户的标记列表 ChangeUserMasterDataOK;RunObsoleteProgOK
逻辑 TagsIntersect 匹配 SearchForTags 的一组标记 ["ChangeUserMasterDataOK","RunObsoleteProgOK"]
逻辑 SpecialFocusTagged 特殊焦点指示 TrueFalse
逻辑 IntersectionSize 相交标记的数目

SAPUsersHeader

SAPUsersHeader 函数旨在提供 SAP 用户的概要视图。 它使用从 SAP 用户主数据表和 SAP 审核日志中的最近活动中提取的数据来收集电子邮件和 IP 地址。 然后返回最后已知的电子邮件和 IP 地址以及主要电子邮件和 IP 地址。

参数:

名称 可选/必需 默认值 说明
SelectedSystems 可选 All Systems 用于筛选要查看的特定 SAP 系统
SelectedSystemRoles 可选 All System Roles 确定要查看的 SAP 系统的角色(如“SAP - 系统”监视列表中所定义)。
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 函数返回以下数据:

Source 字段 说明 说明
用户 SAP 用户
SAP 表 ADR6 和 USR21 电子邮件 从用户的主数据中获取 OSS、DDIC
SAP 表 USR02 UserType 分配给用户的标记字符串 RunObsoleteProgOK
SAP 表 USR02 时区 Microsoft Entra 对象 ID
SAP 表 USR02 LockedStatus Azure Directory 用户标识符
SAP 审核日志 LastSeen 时间戳 为用户观察到的最后一个审核事件
SAP 审核日志 LastSeenDaysAgo LastSeen 以来已过去的天数
SAP 审核日志 PrimaryIP 最常用的 IP 地址 ChangeUserMasterDataOK;RunObsoleteProgOK
SAP 审核日志 LastKnownIP 最近使用的 IP 地址 ["ChangeUserMasterDataOK","RunObsoleteProgOK"]
SAP 审核日志 PrimaryEmail 最常用的电子邮件地址 TrueFalse
SAP 审核日志 KnownIPs 已知 IP 地址列表 按最频繁的优先排序
SAP 审核日志 KnownEmails 已知电子邮件地址列表 按最频繁的优先排序
客户端 SAP 客户端 ID
SystemID SAP 系统 ID
SystemRole SAP 系统的角色 生产、UAT
SystemUsage SAP 系统的主要用法 ERP、CRM

有关详细信息,请参阅: