将 SAP 系统连接到 Microsoft Sentinel

为了使适用于 SAP 应用程序的 Microsoft Sentinel 解决方案正常运行,必须先将 SAP 数据引入 Microsoft Sentinel。 为此,可以部署 Microsoft Sentinel SAP 数据连接器代理,或连接适用于 SAP 的 Microsoft Sentinel 无代理数据连接器。 选择页面顶部与你的环境匹配的选项。

本文将介绍部署适用于 SAP 应用程序的 Microsoft Sentinel 解决方案之一的第三个步骤。

SAP 解决方案部署流程图,其中突出显示了“连接 SAP 系统”步骤。

本文中的内容与安全团队、基础结构团队和 SAP BASIS 团队相关。 请确保按照本文中显示的顺序执行这些步骤。

SAP 解决方案部署流程图,其中突出显示了“连接 SAP 系统”步骤。

本文的内容与您的安全团队相关

重要

Microsoft Sentinel 的 SAP 无代理数据连接器目前以 LIMITED PREVIEW 提供Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

先决条件

在将 SAP 系统连接到 Microsoft Sentinel 之前:

观看演示视频

请观看以下视频演示中的一个,了解本文所述的部署过程。

深入了解门户选项:

包括有关使用 Azure 密钥保管库的更多详细信息。 该演示无音频,仅带有字幕:

创建虚拟机并配置对凭据的访问权限

我们建议为数据连接器代理容器创建专用虚拟机,以确保实现最佳性能并避免潜在的冲突。 有关详细信息,请参阅数据连接器代理容器的系统先决条件

建议将 SAP 和身份验证机密存储在 Azure Key Vault 中。 访问密钥保管库的方式取决于部署虚拟机 (VM) 的位置:

部署方法 访问方法
Azure VM 上的容器 建议使用 Azure 系统分配的托管标识访问 Azure 密钥保管库。

如果无法使用系统分配的托管标识,容器还可以使用 Microsoft Entra ID 已注册应用程序服务主体向 Azure 密钥保管库进行身份验证,万不得已时还可使用配置文件对其进行身份验证。
本地 VM 上的容器或第三方云环境中的 VM 使用 Microsoft Entra ID 已注册应用程序服务主体向 Azure 密钥保管库进行身份验证。

如果无法使用已注册的应用程序或服务主体,请使用配置文件来管理凭据,但此方法不是首选方法。 有关详细信息,请参阅使用配置文件部署数据连接器

有关详细信息,请参阅:

虚拟机通常是由基础设施团队创建的。 配置对凭据的访问权限和管理密钥保管库则通常是由安全团队完成。

使用 Azure VM 创建托管标识

  1. 运行以下命令在 Azure 中创建 VM(请将 <placeholders> 替换为环境中的实际名称):

    az vm create --resource-group <resource group name> --name <VM Name> --image Canonical:0001-com-ubuntu-server-focal:20_04-lts-gen2:latest --admin-username <azureuser> --public-ip-address "" --size  Standard_D2as_v5 --generate-ssh-keys --assign-identity --role <role name> --scope <subscription Id>
    
    

    有关详细信息,请参阅快速入门:使用 Azure CLI 创建 Linux 虚拟机

    重要

    创建 VM 后,请务必应用组织适用的任何安全要求和强化过程。

    此命令将创建 VM 资源,生成如下所示的输出:

    {
      "fqdns": "",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resourcegroupname/providers/Microsoft.Compute/virtualMachines/vmname",
      "identity": {
        "systemAssignedIdentity": "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy",
        "userAssignedIdentities": {}
      },
      "___location": "westeurope",
      "macAddress": "00-11-22-33-44-55",
      "powerState": "VM running",
      "privateIpAddress": "192.168.136.5",
      "publicIpAddress": "",
      "resourceGroup": "resourcegroupname",
      "zones": ""
    }
    
  2. 复制 systemAssignedIdentity GUID,因为它将用于后续步骤中。 这是你的托管标识。

创建密钥库

此过程介绍如何创建密钥保管库来存储代理配置信息,包括 SAP 身份验证密钥。 如果要使用现有的密钥保管库,请直接跳到步骤 2

创建密钥保管库

  1. 运行以下命令,用实际名称替换 <placeholder> 值。

    az keyvault create \
      --name <KeyVaultName> \
      --resource-group <KeyVaultResourceGroupName>
    
  2. 复制密钥保管库及其资源组的名称。 分配密钥保管库访问权限并在后续步骤中运行部署脚本时,将需要用到它们。

分配密钥保管库访问权限

  1. 在密钥保管库中,将 Azure“Key Vault 机密读取者”角色分配给前面创建和复制的标识

  2. 在同一密钥保管库中,将以下 Azure 角色分配给配置数据连接器代理的用户:

    • 密钥保管库参与者,部署代理
    • Key Vault 机密管理官,添加新系统

从门户部署数据连接器代理(预览版)

现在,你已经创建了 VM 和密钥保管库,下一步是创建新代理并连接到你的某一个 SAP 系统。 虽然可以在单台计算机上运行多个数据连接器代理,但建议先从一个代理开始,监视性能,然后慢慢增加连接器的数量。

此过程介绍如何使用 Azure 或 Defender 门户创建新代理并将其连接到 SAP 系统。 我们建议安全团队在 SAP BASIS 团队的帮助下执行此过程

如果 Microsoft Sentinel 已加入到 Defender 门户,则 Azure 门户和 Defender 门户都支持从门户部署数据连接器代理。

虽然命令行也支持进行部署,但建议使用门户进行典型部署。 使用命令行部署的数据连接器代理只能通过命令行进行管理,而不能通过门户进行管理。 有关详细信息,请参阅通过命令行部署 SAP 数据连接器代理

重要

从门户部署容器和创建到 SAP 系统的连接目前处于预览阶段。 Azure 预览版补充条款包含适用于 beta 版、预览版或其他尚未正式发布的 Azure 功能的其他法律条款。

先决条件

  • 若要通过门户部署数据连接器代理,需要:

    • 通过托管标识或已注册的应用程序进行身份验证
    • 存储在 Azure 密钥保管库中的凭据

    如果不满足这些先决条件,请改为通过命令行部署 SAP 数据连接器代理

  • 若要部署数据连接器代理,还需要在数据连接器代理计算机上拥有 sudo 或根权限。

  • 如果要使用安全网络通信 (SNC) 通过安全连接引入 Netweaver/ABAP 日志,则需要:

    • 指向 sapgenpse 二进制文件和 libsapcrypto.so 库的路径
    • 您的客户端证书的详细信息

    有关详细信息,请参阅配置系统以使用 SNC 进行安全连接

若要部署数据连接器代理,请执行以下操作:

  1. 以具有 sudo 权限的用户身份登录到要安装代理的新创建的 VM。

  2. SAP NetWeaver SDK 下载或传输到该计算机。

  3. 在 Microsoft Sentinel 中,选择“配置”>“数据连接器”

  4. 在搜索栏中输入 SAP。 从搜索结果中选择 Microsoft Sentinel for SAP - 基于代理,然后选择 打开连接器页面

  5. 在“配置”区域中,选择“添加新代理(预览版)”。

    添加基于 SAP API 的收集器代理的说明的屏幕截图。

  6. 在“创建收集器代理”窗格中,输入以下代理详细信息:

    名称 描述
    代理名称 为组织输入一个有意义的代理名称。 我们不建议使用任何特定的命名约定,但该名称只能包括以下类型的字符:
    • a-z
    • A-Z
    • 0-9
    • _(下划线)
    • 。 (句点)
    • - (短划线)
    订阅 / 密钥保管库 从各自的下拉列表中选择“订阅”和“密钥保管库”。
    代理 VM 上的 NWRFC SDK zip 文件路径 输入 VM 中包含 SAP NetWeaver 远程函数调用 (RFC) 软件开发工具包 (SDK) 存档(.zip 文件)的路径。

    确保此路径包含 SDK 版本号,其语法如下:<path>/NWRFC<version number>.zip。 例如:/src/test/nwrfc750P_12-70002726.zip
    启用 SNC 连接支持 选择通过使用 SNC 的安全连接引入 NetWeaver/ABAP 日志。

    如果选择此选项,请在sapgenpse下输入包含 libsapcrypto.so 二进制文件和 库的路径。

    如果要使用 SNC 连接,请确保在此阶段选择“启用 SNC 连接支持”,因为完成代理部署后,将无法返回并启用 SNC 连接。 如果以后要更改此设置,建议改为创建新的代理。
    Azure Key Vault 身份验证 若要使用托管标识对密钥保管库进行身份验证,请选择默认的“托管标识”选项。 若要使用已注册的应用程序进行密钥保管库身份验证,请选择 应用程序标识

    必须提前设置托管标识或已注册的应用程序。 有关详细信息,请参阅创建虚拟机并配置对凭据的访问权限

    例如:

    屏幕截图为“创建收集器代理”区域。

  7. 选择“创建”,并在查看建议之后完成部署:

    代理部署最终阶段的屏幕截图。

  8. 部署 SAP 数据连接器代理需要使用“Microsoft Sentinel Business Applications 代理操作员”和“读取者”角色向代理的 VM 身份授予对 Microsoft Sentinel 工作区的特定权限。

    你必须是 Microsoft Sentinel 工作区上的资源组所有者,才能运行此步骤中的命令。 如果你不是工作区的资源组所有者,也可以在代理部署完成后执行此过程。

    只需再执行几个步骤即可完成的指引下,从步骤1复制角色分配命令,然后在你的代理VM上运行这些命令,并将[Object_ID]替换为你的VM标识对象ID。 例如:

    步骤 1 中命令的“复制”图标的屏幕截图。

    若要在 Azure 中查找 VM 标识对象 ID,请执行以下操作:

    • 对于托管标识,对象 ID 列在 VM 的“标识”页面上。

    • 对于服务主体,请转到 Azure 中的“企业应用程序”。 选择“所有应用程序”,然后选择你的 VM。 对象 ID 显示在“概述”页面上

    这些命令会将“Microsoft Sentinel Business Applications 代理操作员”和“读取者”这两个 Azure 角色分别分配给 VM 的托管标识或应用程序标识,仅限于工作区中的指定代理数据范围内。

    重要

    通过 CLI 分配“Microsoft Sentinel Business Applications 代理操作员”和“读取者”角色,只会在工作区中指定的代理数据范围内分配角色。 这是最安全的,因此也是推荐的选项。

    如果必须通过 Azure 门户分配角色,我们建议在较小范围内分配角色,例如仅在 Microsoft Sentinel 工作区上分配角色。

  9. 选择步骤 2 中“代理部署命令”旁边的“复制”。代理部署命令旁边的“复制”图标的屏幕截图。 例如:

    步骤 2 中要复制的代理命令的屏幕截图。

  10. 将命令行复制到单独的位置,然后选择“关闭”

    相关代理信息将部署到 Azure Key Vault 中,新代理显示在“添加基于 API 的收集器代理”下的表中。

    在此阶段,代理的“运行状况”状态为“未完成安装。请按照说明进行操作”。 成功安装代理后,状态将更改为“代理正常”。 此更新最多可能需要 10 分钟。 例如:

    SAP 数据连接器页面上基于 API 的收集器代理的运行状况屏幕截图。

    注意

    该表仅显示通过 Azure 门户部署的代理的代理名称和运行状况。 此处不显示使用命令行部署的代理。 有关详细信息,请改为参阅命令行选项卡

  11. 在计划安装代理的虚拟机上,打开终端并运行在上一步中复制的代理部署命令。 此步骤需要在数据连接器代理计算机上拥有 sudo 或根权限。

    该脚本会更新操作系统组件并安装 Azure CLI、Docker 软件和其他所需的实用程序,例如 jq、netcat 和 curl。

    请根据需要向脚本提供额外的参数来自定义容器部署。 有关可用命令行选项的详细信息,请参阅 Kickstart 脚本参考

    如果需要再次复制命令,请选择“运行状况”列右侧的“视图”,并复制右下角“代理部署命令”旁边的命令。Screenshot of the View icon next to the Health column.

  12. 在适用于 SAP 应用程序的 Microsoft Sentinel 解决方案中,在数据连接器页面的“配置”区域选择“添加新系统(预览版)”,然后输入以下详细信息:

    • 在“选择代理”下,选择之前创建的代理。

    • 在“系统标识符”下,选择服务器类型:

      • ABAP 服务器
      • 消息服务器将消息服务器作为 ABAP SAP Central Services (ASCS) 的一部分使用
    • 继续为服务器类型定义相关详细信息:

      • 对于 ABAP 服务器,请输入 ABAP 应用程序服务器 IP 地址/FQDN、系统 ID 和编号,以及客户端 ID。
      • 对于消息服务器,请输入消息服务器 IP 地址/FQDN、端口号或服务名称,以及登录组

    完成后,选择“下一步: 身份验证”。

    例如:

    该屏幕截图显示了“添加新系统”区域的“系统设置”选项卡。

  13. 在“身份验证”选项卡上,输入以下详细信息:

    • 对于基本身份验证,请输入用户名和密码。
    • 如果在设置代理时选择了 SNC 连接,请选择“SNC”并输入证书详细信息

    完成后,选择“下一步: 日志”。

  14. 在“日志”选项卡上,选择要从 SAP 引入的日志,然后选择“下一步: 查看并创建”。 例如:

    屏幕截图显示“添加新系统端”侧窗格中的“日志”选项卡。

  15. (可选)为了在监控 SAP PAHI 表时获得最佳效果,请选择“配置历史记录”。 有关更多信息,请参阅“验证 PAHI 表是否定期更新”。

  16. 查看定义的设置。 选择“上一步”以修改任何设置,或选择“部署”以部署系统。

定义的系统配置将部署到部署期间定义的 Azure Key Vault 中。 现在可以在“配置 SAP 系统并将其分配给收集器代理”下的表中查看系统详细信息。 此表显示了通过门户或其他方式添加的系统的关联代理名称、SAP 系统 ID(SID)和运行状况。

当前阶段,系统的“健康状态”为“待定”。 如果代理成功更新,它将从 Azure Key Vault 拉取配置,并且状态将更改为“系统正常”。 此更新最多可能需要 10 分钟。

连接无代理数据连接器(有限预览版)

  1. 在 Microsoft Sentinel 中,转到“配置”>“数据连接器”页面,然后找到“Microsoft Sentinel for SAP - agent-less(预览版)”数据连接器。

  2. “配置” 区域中,展开步骤 1。触发所需的 Azure 资源/SOC 工程师的自动部署,然后选择“ 部署所需的 Azure 资源”。

    重要

    如果您没有 Entra ID 应用程序开发人员 角色或更高级别,并且选择 部署所需的 Azure 资源,则会显示错误消息,例如“Deploy required azure resources”(错误可能有所不同)。 这意味着已创建数据收集规则(DCR)和数据收集终结点(DCE),但需要确保 Entra ID 应用注册获得授权。 继续配置正确的授权。

  3. 执行下列操作之一:

    • 如果你拥有 Entra ID 应用程序开发人员 角色或以上的权限,请继续执行下一步。

    • 如果你没有“Entra ID 应用程序开发人员”或更高级别的角色

      • 与 Entra ID 管理员或具有所需权限的同事共享 DCR ID。
      • 从 Entra ID 应用注册中检索客户端 ID 和客户端密码,以用于 DCR 上的授权。 SAP 管理员使用此信息发布到 DCR。
      • 确保使用 Entra ID 应用注册中的客户端 ID,在 DCR 上分配“监视指标发布”角色并提供服务主体分配

      注意

      如果你是 SAP 管理员且无权安装连接器,请直接下载 集成包

  4. 向下滚动并选择“ 添加 SAP 客户端”。

  5. “连接到 SAP 客户端 ”窗格中,输入以下详细信息:

    字段 描述
    RFC 目标名称 RFC 目标的名称,取自 BTP 目标。
    SAP 无代理客户端 ID clientid 值,取自 Process Integration Runtime 服务密钥 JSON 文件
    SAP 无代理客户端机密 clientsecret 值,取自 Process Integration Runtime 服务密钥 JSON 文件
    授权服务器 URL 从 Process Integration Runtime 服务密钥 JSON 文件中获取的 tokenurl 值。 例如:https://your-tenant.authentication.region.hana.ondemand.com/oauth/token
    Integration Suite 终结点 url 值,取自 Process Integration Runtime 服务密钥 JSON 文件。 例如:https://your-tenant.it-account-rt.cfapps.region.hana.ondemand.com
  6. 选择 连接

自定义数据连接器行为(可选)

如果有适用于 Microsoft Sentinel 的 SAP 无代理数据连接器,可以使用 SAP Integration Suite 自定义无代理数据连接器如何将 SAP 系统中的数据引入到 Microsoft Sentinel。

仅当想要自定义 SAP 无代理数据连接器行为时,此过程才相关。 如果对默认功能感到满意,请跳过此过程。 例如,如果使用 Sybase,建议通过配置 collect-changedocs-logs 参数来关闭 iflow 中 Change Docs 日志的引入。 由于数据库性能问题,不支持在 Sybase 中导入更改文档日志。

自定义数据连接器行为的先决条件

下载配置文件并自定义设置

  1. 下载默认 example-parameters.zip 文件,该文件提供定义默认行为的设置,并且是开始自定义的良好起点。

    example-parameters.zip 文件保存到 SAP Integration Suite 环境可访问的位置。

  2. 使用标准 SAP 过程上传值映射文件并进行更改以自定义数据连接器设置:

    1. example-parameters.zip 文件作为值映射项目上传到 SAP Integration Suite。 有关详细信息,请参阅 SAP 文档

    2. 使用以下方法之一自定义设置:

      • 若要在所有 SAP 系统中自定义设置,请为 全局 双向映射机构添加价值映射。
      • 若要自定义特定 SAP 系统的设置,请为每个 SAP 系统添加新的双向映射机构,然后为每个系统添加值映射。 将机构命名为与要自定义的 RFC 目标的名称完全匹配,例如 myRfc、密钥、myRfc、值。

      有关详细信息,请参阅 有关配置值映射的 SAP 文档

    完成自定义后,请确保部署构件以激活更新的设置。

下表列出了适用于 Microsoft Sentinel 的 SAP 无代理数据连接器的可自定义参数:

参数 描述 允许的值 默认值
changedocs-object-classes 从 Change Docs 日志引入的对象类的列表。 以逗号分隔的对象类列表 BANK, CLEARING, IBAN, IDENTITY, KERBEROS, OA2_CLIENT, PCA_BLOCK, PCA_MASTER, PFCG, SECM, SU_USOBT_C, SECURITY_POLICY, STATUS, SU22_USOBT, SU22_USOBX, SUSR_PROF, SU_USOBX_C, USER_CUA
collect-audit-logs 确定是否引入审核日志数据。 true:引入
false:不引入
true
collect-changedocs-logs 确定是否引入更改文档日志。 true:引入
false:不引入
true
collect-user-master-data 确定是否引入用户主数据。 true:引入
false:不引入
true
force-audit-log-to-read-from-all-clients 确定是否从所有客户端读取审核日志。 true:从所有客户端读取
false:不从所有客户端读取
false
ingestion-cycle-days 以天为单位的时间,用于引入完整的用户主数据,包括所有角色和用户。 此参数不会影响用户主数据更改的导入。 整数,介于 1-14 之间 1
offset-in-seconds 确定数据收集窗口的开始时间和结束时间的偏移量(以秒为单位)。 使用此参数按配置的秒数延迟数据收集。 整数,介于 1-600 之间 60

检查连接和运行状况

部署 SAP 数据连接器后,请检查代理的运行状况和连接情况。 有关详细信息,请参阅监视 SAP 系统的运行状况和角色

下一步

部署连接器后,继续配置适用于 SAP 应用程序的 Microsoft Sentinel 解决方案内容。 具体而言,在监视列表中配置详细信息是启用检测和威胁防护的重要步骤。