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

本文介绍使用专家、自定义或手动配置选项部署并配置适用于 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 密钥保管库来存储凭据,但你也可以使用 env.list 文件和 Docker 机密,或者将凭据直接添加到 systemconfig.json 文件

    有关详细信息,请参阅 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 部署时,适用于 SAP 的 Microsoft Sentinel 数据连接器在 systemconfig.json 文件中配置,该文件在部署过程中已克隆到 SAP 数据连接器计算机。 使用本部分中的内容手动配置数据连接器设置。

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

定义发送到 Microsoft Sentinel 的 SAP 日志

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

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

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

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

配置默认配置文件

以下代码将配置默认配置:

"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"

配置以检测为主的配置文件

使用以下代码配置以检测为主的配置文件,其中包括使大多数分析规则正常运行所需的 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": "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 应用程序的 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": {
      "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 Control 实例

要将所有 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 Control 实例

要将 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 系统中引入包含用户和角色授权详细信息的表,请使用 True/False 语句配置 systemconfig.json 文件,每个表一个语句。

例如:

    "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 系统检索的表参考

有关详细信息,请参阅: