使用专家选项部署适用于 SAP 的 Microsoft Sentinel 数据连接器代理容器

重要

注意:根据世纪互联发布的公告,Azure 中国区域中的所有 Microsoft Sentinel 功能将于2026 年 8 月 18 日正式停用。

本文介绍使用专家、自定义或手动配置选项部署并配置适用于 SAP 的 Microsoft Sentinel 数据连接器代理容器的过程。 在开始之前,请确保完成 先决条件。 对于典型部署,我们建议改用 基于门户的部署

本文的内容适用于 SAP BASIS 团队。 有关详细信息,请参阅通过命令行部署 SAP 数据连接器代理

先决条件

手动添加 SAP 数据连接器代理 Azure 密钥保管库 机密

使用以下脚本手动将 SAP 系统机密添加到你的密钥保管库。 请务必将占位符替换为你自己的系统 ID 和要添加的凭据:

#Add Abap username
az keyvault secret set \
  --name <SID>-ABAPUSER \
  --value "<abapuser>" \
  --description SECRET_ABAP_USER --vault-name $kvname

#Add Abap Username password
az keyvault secret set \
  --name <SID>-ABAPPASS \
  --value "<abapuserpass>" \
  --description SECRET_ABAP_PASSWORD --vault-name $kvname

#Add Java Username
az keyvault secret set \
  --name <SID>-JAVAOSUSER \
  --value "<javauser>" \
  --description SECRET_JAVAOS_USER --vault-name $kvname

#Add Java Username password
az keyvault secret set \
  --name <SID>-JAVAOSPASS \
  --value "<javauserpass>" \
  --description SECRET_JAVAOS_PASSWORD --vault-name $kvname

#Add abapos username
az keyvault secret set \
  --name <SID>-ABAPOSUSER \
  --value "<abaposuser>" \
  --description SECRET_ABAPOS_USER --vault-name $kvname

#Add abapos username password
az keyvault secret set \
  --name <SID>-ABAPOSPASS \
  --value "<abaposuserpass>" \
  --description SECRET_ABAPOS_PASSWORD --vault-name $kvname

#Add Azure Log ws ID
az keyvault secret set \
  --name <SID>-LOGWSID \
  --value "<logwsod>" \
  --description SECRET_AZURE_LOG_WS_ID --vault-name $kvname

#Add Azure Log ws public key
az keyvault secret set \
  --name <SID>-LOGWSPUBLICKEY \
  --value "<loswspubkey>" \
  --description SECRET_AZURE_LOG_WS_PUBLIC_KEY --vault-name $kvname

有关详细信息,请参阅快速入门:使用 Azure CLI 创建密钥保管库az keyvault secret CLI 文档。

执行专业/自定义安装

此过程介绍如何使用专业或自定义安装(例如在本地安装时)通过 CLI 部署适用于 SAP 的 Microsoft Sentinel 数据连接器。

先决条件:Azure 密钥保管库是用于存储身份验证凭据和配置数据的建议方法。 我们建议仅在准备好包含 SAP 凭据的密钥保管库之后才执行此过程。

部署适用于 SAP 的 Microsoft Sentinel 数据连接器

  1. SAP Launchpad 站点>“SAP NW RFC SDK”“SAP NW RFC SDK 7.50”>“nwrfc750X_X-xxxxxxx.zip”下载最新的 SAP NW RFC SDK,并将其保存到你的数据连接器代理计算机>

    注意

    需要 SAP 用户登录信息才能访问此 SDK,并且必须下载与操作系统相匹配的 SDK。

    确保选择“LINUX ON X86_64”选项。

  2. 在同一台计算机上,创建一个新文件夹并提供一个有意义的名称,然后将 SDK zip 文件复制到新文件夹中。

  3. 将 Microsoft Sentinel 解决方案 GitHub 存储库克隆到本地计算机上,并将适用于 SAP 应用程序的 Microsoft Sentinel 解决方案 systemconfig.ini 文件复制到新文件夹中

    例如:

    mkdir /home/$(pwd)/sapcon/<sap-sid>/
    cd /home/$(pwd)/sapcon/<sap-sid>/
    wget  https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/template/systemconfig.json 
    cp <**nwrfc750X_X-xxxxxxx.zip**> /home/$(pwd)/sapcon/<sap-sid>/
    
  4. 根据需要编辑 systemconfig.json 文件,使用嵌入的注释作为指导

    使用 systemconfig.json 文件中的说明定义以下配置

    • 使用 systemconfig.json 文件中的说明来定义要引入到 Microsoft Sentinel 中的日志
    • 是否将用户电子邮件地址包含在审核日志中
    • 是否重试失败的 API 调用
    • 是否包括 cexal 审核日志
    • 是否在两次数据提取之间留出间隔时间,尤其是对于大型提取

    有关详细信息,请参阅手动配置适用于 SAP 的 Microsoft Sentinel 数据连接器定义发送到 Microsoft Sentinel 的 SAP 日志

    若要测试配置,可能需要将用户和密码直接添加到 systemconfig.json 配置文件。 虽然我们建议使用 Azure Key Vault 来存储凭据,但也可以使用 env.list 文件、手动配置部分(涵盖 Docker 机密),也可以将凭据直接添加到 systemconfig.json 文件。

    有关电子邮件提取、API 重试和审核日志选项等设置的详细信息,请参阅 SAL 日志连接器设置

  5. 将更新的 systemconfig.json 文件保存到计算机上的 sapcon 目录中

  6. 如果已选择使用 env.list 文件存储凭据,请创建一个包含所需凭据的临时 env.list 文件 。 Docker 容器正常运行后,请确保删除此文件。

    注意

    下面的脚本将每个 Docker 容器连接到特定的 ABAP 系统。 根据环境需要修改脚本。

    运行:

    ##############################################################
    # Include the following section if you're using user authentication
    ##############################################################
    # env.list template for Credentials
    SAPADMUSER=<SET_SAPCONTROL_USER>
    SAPADMPASSWORD=<SET_SAPCONTROL_PASS>
    LOGWSID=<SET MICROSOFT SENTINEL WORKSPACE ID>
    LOGWSPUBLICKEY=<SET MICROSOFT SENTINEL WORKSPACE KEY>
    ABAPUSER=SET_ABAP_USER>
    ABAPPASS=<SET_ABAP_PASS>
    JAVAUSER=<SET_JAVA_OS_USER>
    JAVAPASS=<SET_JAVA_OS_USER>
    ##############################################################
    # Include the following section if you are using Azure Keyvault
    ##############################################################
    # env.list template for AZ Cli when MI is not enabled
    AZURE_TENANT_ID=<your tenant id>
    AZURE_CLIENT_ID=<your client/app id>
    AZURE_CLIENT_SECRET=<your password/secret for the service principal>
    ##############################################################
    
  7. 在安装了 SAP 数据连接器的情况下,下载并运行预定义的 Docker 映像。 运行:

    docker pull mcr.microsoft.com/azure-sentinel/solutions/sapcon:latest-preview
    docker run --env-file=<env.list_location> -d --restart unless-stopped -v /home/$(pwd)/sapcon/<sap-sid>/:/sapcon-app/sapcon/config/system --name sapcon-<sid> sapcon
    rm -f <env.list_location>
    
  8. 验证 Docker 容器是否正常运行。 运行:

    docker logs –f sapcon-[SID]
    
  9. 继续部署适用于 SAP 应用程序的 Microsoft Sentinel 解决方案

    通过部署此解决方案,SAP 数据连接器可以在 Microsoft Sentinel 中显示,并支持部署 SAP 工作簿和分析规则。 完成后,手动添加和自定义 SAP 关注列表。

    有关详细信息,请参阅从内容中心部署适用于 SAP 应用程序的 Microsoft Sentinel 解决方案

手动配置适用于 SAP 的 Microsoft Sentinel 数据连接器

通过 CLI 部署时,Microsoft Sentinel SAP 数据连接器是在 systemconfig.json 文件中配置的;该文件是你在执行专家/自定义安装过程中克隆到 SAP 数据连接器计算机上的。 使用本部分中的内容手动配置数据连接器设置。

有关详细信息,请参阅 Systemconfig.json 文件参考或适用于旧版系统的 Systemconfig.ini 文件参考

定义发送到 Microsoft Sentinel 的 SAP 日志

默认的 systemconfig.json 文件已配置为涵盖内置分析、SAP 用户授权主数据表(包含用户和特权信息),以及用于跟踪 SAP 环境中的更改和活动的功能。

默认配置提供更多日志记录信息,让用户可以进行入侵后调查并获得更大的搜寻能力。 但是,随着时间的推移,你可以自定义配置,特别是在业务流程具有季节性的情况下。

使用以下代码集配置 systemconfig.json 文件,以定义发送到 Microsoft Sentinel 的日志

有关详细信息,请参阅适用于 SAP 应用程序的 Microsoft Sentinel 解决方案日志参考(公共预览版)

配置默认个人资料

默认配置文件启用最广泛的 ABAP 日志集,包括审核、作业、后台处理程序、更改文档、应用程序、工作流和更改请求日志。 如果需要为入侵后调查和扩展威胁搜寻提供全面日志记录,请使用此配置文件。 以下代码展示了如何在 systemconfig.json 中启用默认日志配置文件:

"logs_activation_status": {
      "abapauditlog": "True",
      "abapjoblog": "True",
      "abapspoollog": "True",
      "abapspooloutputlog": "True",
      "abapchangedocslog": "True",
      "abapapplog": "True",
      "abapworkflowlog": "True",
      "abapcrlog": "True",
      "abaptabledatalog": "False",
      "abapfileslogs": "False",
      "syslog": "False",
      "icm": "False",
      "wp": "False",
      "gw": "False",
      "javafileslogs": "False"

配置以检测为中心的配置文件

与默认配置文件不同,侧重检测的配置文件会禁用非必要日志,例如作业日志、假脱机日志和工作流日志,同时保持审核日志、变更文档和变更请求等核心安全日志处于启用状态。 使用以下代码配置此配置文件,其中仅包含大多数分析规则要取得良好效果所需的日志。 此配置限制了违规后调查和搜寻功能。

"logs_activation_status": {
      "abapauditlog": "True",
      "abapjoblog": "False",
      "abapspoollog": "False",
      "abapspooloutputlog": "False",
      "abapchangedocslog": "True",
      "abapapplog": "False",
      "abapworkflowlog": "False",
      "abapcrlog": "True",
      "abaptabledatalog": "False",
      "abapfileslogs": "False",
      "syslog": "False",
      "icm": "False",
      "wp": "False",
      "gw": "False",
      "javafileslogs": "False"
    },
....
  "abap_table_selector": {
      "agr_tcodes_full": "True",
      "usr01_full": "True",
      "usr02_full": "True",
      "usr02_incremental": "True",
      "agr_1251_full": "True",
      "agr_users_full": "True",
      "agr_users_incremental": "True",
      "agr_prof_full": "True",
      "ust04_full": "True",
      "usr21_full": "True",
      "adr6_full": "True",
      "adcp_full": "True",
      "usr05_full": "True",
      "usgrp_user_full": "True",
      "user_addr_full": "True",
      "devaccess_full": "True",
      "agr_define_full": "True",
      "agr_define_incremental": "True",
      "pahi_full": "True",
      "pahi_incremental": "True",
      "agr_agrs_full": "True",
      "usrstamp_full": "True",
      "usrstamp_incremental": "True",
      "agr_flags_full": "True",
      "agr_flags_incremental": "True",
      "sncsysacl_full": "False",
      "usracl_full": "False",

若要最大程度地减少数据引入量,同时仍保持基本安全覆盖范围,请使用以下代码来配置最小配置文件。 与默认配置文件和检测为中心的配置文件不同,此配置禁用所有表选择器,并将日志收集限制为仅 SAP 安全审核日志、更改文档和更改请求。 SAP 安全审核日志是适用于 SAP 应用程序的 Microsoft Sentinel 解决方案用来分析 SAP 系统环境中活动的最重要数据源,而要提供任何安全防护,启用该日志是最低要求。

"logs_activation_status": {
      "abapauditlog": "True",
      "abapjoblog": "False",
      "abapspoollog": "False",
      "abapspooloutputlog": "False",
      "abapchangedocslog": "True",
      "abapapplog": "False",
      "abapworkflowlog": "False",
      "abapcrlog": "True",
      "abaptabledatalog": "False",
      "abapfileslogs": "False",
      "syslog": "False",
      "icm": "False",
      "wp": "False",
      "gw": "False",
      "javafileslogs": "False"
    },
....
  "abap_table_selector": {
      "agr_tcodes_full": "False",
      "usr01_full": "False",
      "usr02_full": "False",
      "usr02_incremental": "False",
      "agr_1251_full": "False",
      "agr_users_full": "False",
      "agr_users_incremental": "False",
      "agr_prof_full": "False",
      "ust04_full": "False",
      "usr21_full": "False",
      "adr6_full": "False",
      "adcp_full": "False",
      "usr05_full": "False",
      "usgrp_user_full": "False",
      "user_addr_full": "False",
      "devaccess_full": "False",
      "agr_define_full": "False",
      "agr_define_incremental": "False",
      "pahi_full": "False",
      "pahi_incremental": "False",
      "agr_agrs_full": "False",
      "usrstamp_full": "False",
      "usrstamp_incremental": "False",
      "agr_flags_full": "False",
      "agr_flags_incremental": "False",
      "sncsysacl_full": "False",
      "usracl_full": "False",

配置 SAL 日志连接器设置

将以下代码添加到适用于 SAP 的 Microsoft Sentinel 数据连接器 systemconfig.json 文件中,以定义已引入到 Microsoft Sentinel 中的 SAP 日志的其他设置

有关详细信息,请参阅执行专业/自定义 SAP 数据连接器安装

以下示例 connector_configuration 控制运行时行为,例如 API 重试处理、用户电子邮件提取和数据提取间隔。 查看这些设置,以便根据你的环境调整连接器配置。

    "connector_configuration": {
      "extractuseremail": "True",
      "apiretry": "True",
      "auditlogforcexal": "False",
      "auditlogforcelegacyfiles": "False",
      "timechunk": "60"

通过本部分,你能够配置以下参数:

参数名称 说明
extractuseremail 确定用户电子邮件地址是否包含在审核日志中。
apiretry 确定是否将 API 调用作为故障转移机制进行重试。
auditlogforcexal 确定系统是否对非 SAL 系统(如 SAP BASIS 版本 7.4)强制使用审核日志。
auditlogforcelegacyfiles 确定系统是否强制使用带有旧系统功能(例如补丁级别较低的 SAP BASIS 版本 7.4 的功能)的审核日志。
timechunk 确定系统在两次数据提取之间等待特定的分钟数。 如果预期有大量数据,请使用此参数。

例如,在第一个 24 小时内的初始数据加载期间,你可能希望数据提取每 30 分钟运行一次,以便每次有足够的时间提取数据。 在这种情况下,请将此值设置为 30。

配置 ABAP SAP 控制实例

要将所有 ABAP 日志(包括基于 NW RFC 和 SAP Control Web 服务的日志)引入 Microsoft Sentinel,请配置以下 ABAP SAP Control 详细信息:

设置 说明
javaappserver 输入 SAP Control ABAP 服务器主机。
例如: contoso-erp.appserver.com
javainstance 输入 SAP Control ABAP 实例编号。
例如: 00
abaptz 输入在 SAP Control ABAP 服务器上配置的时区(GMT 格式)。
例如: GMT+3
abapseverity 输入要将 ABAP 日志引入 Microsoft Sentinel 的最低(含)严重性级别。 值包括:

- 0 = 所有日志
- 1 = 警告
- 2 = 错误

配置Java SAP 控制实例

要将 SAP Control Web 服务日志引入 Microsoft Sentinel,请配置以下 JAVA SAP Control 实例详细信息:

参数 说明
javaappserver 输入 SAP Control Java 服务器主机。
例如: contoso-java.server.com
javainstance 输入 SAP Control ABAP 实例编号。
例如: 10
javatz 输入在 SAP Control Java 服务器上配置的时区(GMT 格式)。
例如: GMT+3
javaseverity 输入您希望将 Web 服务日志导入 Microsoft Sentinel 的最低(包括)严重性级别。 值包括:

- 0 = 所有日志
- 1 = 警告
- 2 = 错误

配置用户主数据采集

若要直接从您的 SAP 系统中引入关于用户和角色授权详细信息的表,请在 systemconfig.json 文件中为每个表配置一个语句。

以下示例 abap_table_selector 配置指定以完整或增量方式收集哪些 ABAP 用户主数据表。 将每个表项设置为 True 启用集合或 False 跳过它。 此示例启用所有受支持的表,以进行全面部署:

    "abap_table_selector": {
      "agr_tcodes_full": "True",
      "usr01_full": "True",
      "usr02_full": "True",
      "usr02_incremental": "True",
      "agr_1251_full": "True",
      "agr_users_full": "True",
      "agr_users_incremental": "True",
      "agr_prof_full": "True",
      "ust04_full": "True",
      "usr21_full": "True",
      "adr6_full": "True",
      "adcp_full": "True",
      "usr05_full": "True",
      "usgrp_user_full": "True",
      "user_addr_full": "True",
      "devaccess_full": "True",
      "agr_define_full": "True",
      "agr_define_incremental": "True",
      "pahi_full": "True",
      "pahi_incremental": "True",
      "agr_agrs_full": "True",
      "usrstamp_full": "True",
      "usrstamp_incremental": "True",
      "agr_flags_full": "True",
      "agr_flags_incremental": "True",
      "sncsysacl_full": "False",
      "usracl_full": "False",

有关详细信息,请参阅直接从 SAP 系统检索的表参考

有关详细信息,请参阅: