将 Microsoft 365 Identity Protection 与 Google SecOps 集成

本文档介绍了如何将 Microsoft 365 Identity Protection 与 Google Security Operations (Google SecOps) 集成。

前提条件

在 Google SecOps 平台中配置集成之前,请完成以下前提步骤:

  1. 创建 Microsoft Entra 应用。

  2. 为您的应用配置 API 权限。

  3. 创建客户端密钥。

创建 Microsoft Entra 应用

  1. 以用户管理员或密码管理员身份登录 Azure 门户。

  2. 选择 Microsoft Entra ID。

  3. 依次前往应用注册 > 新注册。

  4. 输入应用名称。

  5. 点击注册。

  6. 保存应用(客户端)ID 和目录(租户)ID 值,以便稍后在配置集成参数时使用。

配置 API 权限

  1. 依次前往 API 权限 > 添加权限。

  2. 选择 Microsoft Graph。

  3. 在选择权限部分,选择以下权限:

    • IdentityRiskEvent.Read.All
    • IdentityRiskyUser.ReadWrite.All
  4. 点击添加权限。

  5. 点击为 YOUR_ORGANIZATION_NAME 授予管理员同意书。

    当授予管理员同意书确认对话框出现时,点击是。

创建客户端密钥

  1. 前往证书和密钥 > 新客户端密钥。

  2. 提供客户端密钥的说明,并设置其到期期限。

  3. 点击 Add(添加)。

  4. 保存客户端密钥的值(而非密钥 ID),以便在配置集成时将其用作 Client Secret 参数值。客户端密钥值仅显示一次。

集成参数

使用以下参数配置集成:

参数显示名称 类型 默认值 为必填项 说明
登录 API 根地址 字符串 https://login.microsoftonline.com 否 用于向 Microsoft Identity Platform 进行身份验证的 API 根。
API 根 字符串 https://graph.microsoft.com 是 Microsoft 365 Identity Protection 实例的 API 根。
租户 ID 字符串 不适用 是 Microsoft 365 身份保护账号的租户 ID。
客户端 ID 字符串 不适用 是 Microsoft 365 Identity Protection 账号的客户端 ID。
客户端密钥 密码 不适用 是 Microsoft 365 身份保护账号的客户端密钥。
验证 SSL 复选框 勾选 是 如果启用,则会验证与 Microsoft 365 身份保护服务器连接的 SSL 证书是否有效。

如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。

如有需要,您可以在后续阶段进行更改。配置集成实例后,您可以在 playbook 中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。

操作

如需详细了解操作,请参阅 在工作桌上响应待处理的操作和在案例中运行手动操作。

Ping

测试与 Microsoft 365 身份保护服务的连接。

参数

不适用

运行时间

该操作不针对实体运行,也没有强制性输入参数。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值/说明 类型(实体 \ 常规)
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果成功:“已使用提供的连接参数成功连接到 Azure AD 身份保护服务器!”

操作应失败并停止 playbook 执行:

如果未成功:“Failed to connect to the Azure AD Identity Protection server! 错误为 {0}”。format(exception.stacktrace)

常规

丰富实体

使用 Microsoft 365 Identity Protection 中的信息丰富实体。支持的实体:用户名、邮箱(与邮箱正则表达式模式匹配的用户实体)。

参数

参数显示名称 类型 默认值 为必填项 说明
创建分析洞见 复选框 勾选 否 如果启用,该操作会创建包含所检索到的实体相关所有信息的分析洞见。

运行时间

此操作在 Username 实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
JSON 结果
{
    "id": "2600d017-84a1-444f-94ba-4bebed30b09e",
    "isDeleted": false,
    "isProcessing": false,
    "riskLevel": "none",
    "riskState": "remediated",
    "riskDetail": "userPerformedSecuredPasswordChange",
    "riskLastUpdatedDateTime": "2021-09-02T14:10:48Z",
    "userDisplayName": "user_1",
    "userPrincipalName": "user_1@example.com"
}
实体丰富化
扩充项字段名称 逻辑 - 适用场景
is_deleted 当 JSON 中有可用数据时
is_processing 当 JSON 中有可用数据时
risk_level 当 JSON 中有可用数据时
risk_state 当 JSON 中有可用数据时
risk_detail 当 JSON 中有可用数据时
risk_updated 当 JSON 中有可用数据时
display_name 当 JSON 中有可用数据时
principal_name 当 JSON 中有可用数据时
案例墙
结果类型 值/说明 类型(实体 \ 常规)
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果一个实体有可用数据 (is_success=true):“已使用 Azure AD Identity Protection 中的信息成功扩充以下实体:{entity.identifier}”。

如果一个实体的数据不可用 (is_success=true):“操作无法使用 Azure AD Identity Protection 中的信息丰富以下实体:{entity.identifier}”。

如果所有实体的数据都不可用 (is_success=false):“None of the provided entities were enriched.”

操作应失败并停止 playbook 执行:

如果报告了严重错误(例如凭据错误、无法连接到服务器等),则会显示以下消息:“Error executing action "Enrich Entities". Reason: {0}''.format(error.Stacktrace)

常规
案例墙表格

表名称:{entity.identifier}

表列:

  • 键
  • 值
实体

更新用户状态

更新 Microsoft 365 Identity Protection 中的用户状态。支持的实体:用户名、邮箱(与邮箱正则表达式模式匹配的用户实体)。

参数

参数显示名称 类型 默认值 为必填项 说明
州 DDL

已破解

可能的值:

  • 已破解
  • 已拒绝
否 指定用户的状态。

运行时间

此操作在 Username 实体上运行。

操作执行结果

脚本结果
脚本结果名称 值选项 示例
is_success True/False is_success:False
案例墙
结果类型 值/说明 类型(实体 \ 常规)
输出消息*

操作不应失败,也不应停止 playbook 执行:

如果针对一个用户报告了 204 状态代码 (is_success=true):“已成功更新 Azure AD Identity Protection 中以下用户的状态:{entity identifier}”。

如果未找到一个用户 (is_success=true):"The following users were not found in Azure AD Identity Protection:"{entity.identifier}"

如果未找到所有用户 (is_success=true) :“在 Azure AD Identity Protection 中未找到任何提供的用户。”

操作应失败并停止 playbook 执行:

如果报告了严重错误(例如凭据错误、无法连接到服务器等),则会显示:“Error executing action 'Update User State'. Reason: {0}''.format(error.Stacktrace)'

常规

连接器

如需详细了解如何在 Google SecOps 中配置连接器,请参阅注入数据(连接器)。

Azure AD 身份保护 - 风险检测连接器

从 Microsoft 365 Identity Protection 中提取有关风险检测的信息。

动态列表过滤条件可与 riskEventType 参数搭配使用。

连接器参数

使用以下参数配置连接器:

参数显示名称 类型 默认值 为必填项 说明
登录 API 根地址 字符串 https://login.microsoftonline.com 否 用于向 Microsoft Identity Platform 进行身份验证的 API 根。
API 根 字符串 https://graph.microsoft.com 是 Microsoft 365 Identity Protection 实例的 API 根。
产品字段名称 字符串 产品名称 是

存储商品名称的字段的名称。

商品名称主要影响映射。为了简化和改进连接器的映射过程,默认值会解析为代码中引用的后备值。默认情况下,此参数的任何无效输入都会解析为回退值。

默认值为 Product Name。

事件字段名称 字符串 riskEventType 是

决定事件名称(子类型)的字段名称。

环境字段名称 字符串 "" 否

存储环境名称的字段的名称。

如果缺少环境字段,连接器将使用默认值。

Environment Regex Pattern 字符串 .* 否

要对 Environment Field Name 字段中找到的值运行的正则表达式模式。此参数可让您使用正则表达式逻辑来操纵环境字段。

使用默认值 .* 检索所需的原始 Environment Field Name 值。

如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。

PythonProcessTimeout 整数 180 是

运行当前脚本的 Python 进程的超时限制(以秒为单位)。

API 根 字符串 https://graph.microsoft.com 是 Microsoft 365 Identity Protection 实例的 API 根。
租户 ID 字符串 不适用 是 Microsoft 365 身份保护账号的租户 ID。
客户端 ID 字符串 不适用 是 Microsoft 365 Identity Protection 账号的客户端 ID。
客户端密钥 密码 不适用 是 Microsoft 365 身份保护账号的客户端密钥。
要提取的最低风险等级 字符串 不适用 否

提取提醒时需要使用的最低风险。

可能的值:Low、Medium、High。

如果未指定值,连接器会注入所有风险级别的风险检测。

回溯的小时数上限 整数 1 否 应提取风险检测结果的小时数。
要提取的提醒数量上限 整数 100 否 每次连接器迭代要处理的提醒数量。
Use whitelist as a blacklist 复选框 尚未核查 是

如果选中,连接器会将动态列表用作屏蔽名单。

验证 SSL 复选框 勾选 是 如果选中此选项,则集成在连接到 Microsoft 365 Identity Protection 服务器时会验证 SSL 证书。
代理服务器地址 字符串 不适用 否 要使用的代理服务器的地址。
代理用户名 字符串 不适用 否 用于进行身份验证的代理用户名。
代理密码 密码 不适用 否 用于进行身份验证的代理密码。

连接器规则

此连接器支持代理。

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。