Microsoft 365 Defender
本文档介绍了如何将 Microsoft 365 Defender 与 Google Security Operations (Google SecOps) 集成。
集成版本:19.0
使用场景
将 Microsoft 365 Defender 与 Google SecOps 集成有助于您解决以下使用情形:
自动事件响应:使用 Google SecOps 功能自动隔离受影响的端点,并启动扫描以查找进一步的入侵。
网络钓鱼调查和补救:使用 Google SecOps 功能自动提取相关信息(例如发件人、主题和附件),并使用威胁情报数据丰富这些信息。
漏洞管理:使用 Google SecOps 功能自动执行漏洞扫描和修复工作流程。
合规性报告和审核:使用 Google SecOps 功能自动收集和报告 Microsoft 365 Defender 中的安全数据,从而简化合规性审核并证明符合安全标准。
提醒优先级划分和分类:使用 Google SecOps 功能分析 Microsoft 365 Defender 中的提醒,并根据严重程度和潜在影响对这些提醒进行优先级划分。
自动恶意软件分析:使用 Google SecOps 功能自动将 Microsoft 365 Defender 检测到的恶意软件样本提交到沙盒环境进行动态分析。
准备工作
在 Google SecOps 平台中配置集成之前,请完成以下步骤:
创建 Microsoft Entra 应用。
为应用配置 API 权限。
创建客户端密钥。
创建 Microsoft Entra 应用
如需创建 Microsoft Entra 应用,请完成以下步骤:
以用户管理员或密码管理员身份登录 Azure 门户。
选择 Microsoft Entra ID。
依次前往应用注册 > 新注册。
输入应用的名称。
点击注册。
保存应用(客户端)ID 和目录(租户)ID 值,以便稍后在配置集成参数时使用。
配置 API 权限
如需为集成配置 API 权限,请完成以下步骤:
在 Azure 门户中,依次前往管理 > API 权限 > 添加权限。
在请求 API 权限窗口中,选择我组织使用的 API。
依次选择 Microsoft Graph > 应用权限。
选择以下权限:
SecurityAlert.Read.All
SecurityIncident.ReadWrite.All
点击添加权限。
在请求 API 权限窗口中,选择我组织使用的 API。
依次选择 Microsoft Threat Protection > 应用权限。
选择以下权限:
ThreatHunting.Read.All
点击添加权限。
点击为
YOUR_ORGANIZATION_NAME
授予管理员同意书。当系统显示授予管理员同意权限确认对话框时,点击是。
创建客户端密钥
如需创建客户端密钥,请完成以下步骤:
依次前往证书和密钥 > 新客户端密钥。
为客户端密钥提供说明并设置其失效期限。
点击 Add(添加)。
保存客户端密钥的值(而非密钥 ID),以便在配置集成时将其用作
Client Secret
参数值。客户端密钥值仅显示一次。
将 Microsoft 365 Defender 与 Google SecOps 集成
Microsoft 365 Defender 集成需要以下参数:
参数 | 说明 |
---|---|
Login API Root |
必需 Microsoft 365 Defender 实例的登录 API 根。 默认值为 |
Graph API Root |
必需 Microsoft Graph 服务的 API 根。 默认值为 |
API Root |
必需
Microsoft 365 Defender 实例的 API 根。 默认值为 |
Tenant ID |
必需
您的 Microsoft Entra ID 账号的 Microsoft Entra ID(租户 ID)值。 |
Client ID |
必需
您的 Microsoft Entra ID 账号的应用(客户端)ID 值。 |
Client Secret |
必需
Microsoft Entra ID 应用的客户端密钥值。 |
Verify SSL |
可选
如果选中此选项,集成会验证用于连接到 Microsoft 365 Defender 服务器的 SSL 证书是否有效。 此选项将会默认选中。 |
如需了解如何在 Google SecOps 中配置集成,请参阅配置集成。
如果需要,您可以在稍后阶段进行更改。配置集成实例后,您可以在剧本中使用该实例。如需详细了解如何配置和支持多个实例,请参阅支持多个实例。
操作
如需详细了解操作,请参阅处理工作台中的待处理操作和执行手动操作。
向突发事件添加评论
使用 Add Comment To Incident 操作向 Microsoft 365 Defender 中的事件添加评论。
此操作不适用于 Google SecOps 实体。
操作输入
向突发事件添加注释操作需要以下参数:
参数 | 说明 |
---|---|
Incident ID |
必需
要向其添加评论的突发事件的 ID。 |
Comment |
必需
要添加到突发事件的评论。 |
操作输出
向突发事件添加评论操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
输出消息
向突发事件添加评论操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
Successfully added comment to incident INCIDENT_ID in Microsoft 365 Defender. |
操作成功。 |
Error executing action "Add Comment To Incident". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用向突发事件添加注释操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
执行自定义查询
使用执行自定义查询操作在 Microsoft 365 Defender 中执行自定义搜索查询。
此操作不适用于 Google SecOps 实体。
操作输入
执行自定义查询操作需要以下参数:
参数 | 说明 |
---|---|
Query |
必需
要在 Microsoft 365 Defender 中执行的查询,用于过滤结果。 |
Max Results To Return |
可选
查询返回的结果数上限。 默认值为 `50`。 |
操作输出
执行自定义查询操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例展示了使用执行自定义查询操作时收到的 JSON 结果输出:
{"Results": [
{
"Timestamp": "2021-04-12T07:25:00Z",
"AlertId": "fa7a318954-6c4c-eaab-3200-08d8fd82af35",
"Title": "CC_Sensitive information",
"Category": "InitialAccess",
"Severity": "Medium",
"ServiceSource": "Microsoft Defender for Office 365",
"DetectionSource": "Microsoft Defender for Office 365",
"AttackTechniques": ""
}
]}
输出消息
执行自定义查询 操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "Execute Custom Query". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用执行自定义查询操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
执行实体查询
使用 Execute Entity Query 操作执行基于 Microsoft 365 Defender 中的实体的搜寻查询。
此操作使用基于实体的 where
过滤条件。
此操作可在以下 Google SecOps 实体上运行:
IP Address
Host
User
Hash
URL
您可以使用 Execute Entity Query 操作来检索与实体相关的信息,例如从表中检索结果并根据实体过滤结果。
与需要使用特定格式的 Execute Query 操作不同,Execute Entity Query 操作不使用查询输入。
使用执行查询操作检索与端点相关的提醒时,请按以下格式设置 | where
子句:
AlertInfo | where DeviceName == "Host-1" or IPAddress == "192.0.2.1" | top 100
by Timestamp desc
如需检索与端点相关的提醒,执行实体查询操作需要您按如下方式配置 Table
、IP Entity Key
、Hostname Entity Key
和 Cross Entity Operator
参数:
参数 | AlertInfo 值 |
---|---|
IP Entity Key |
IPAddress |
Hostname Entity Key |
DeviceName |
Cross Entity Operator |
OR |
如需检查所提供的哈希会影响多少个端点,Execute Entity Query 操作需要您为 File Hash Entity Key
参数输入 SHA1
值。
只有在为 Entity Keys
参数配置多个值时,Cross Entity Operator
才会影响查询。
操作输入
执行实体查询操作需要以下参数:
参数 | 说明 |
---|---|
Table Names |
必需
要在 Microsoft 365 Defender 中查询的表的英文逗号分隔列表。 |
Time Frame |
可选
查询结果的时间段。 默认值为 可能的值如下:
|
Start Time |
可选
查询结果的开始时间。 如果您将 |
End Time |
可选
查询结果的结束时间。 如果您未设置值,并将 |
Fields To Return |
可选
要包含在结果中的字段的逗号分隔列表。 |
Sort Field |
可选
用于对结果进行排序的字段。 默认值为 |
Sort Order |
可选
结果的排序顺序(升序或降序)。 默认值为 可能的值如下:
|
Max Results To Return |
可选
需返回的结果数上限。 默认值为 |
IP Entity Key |
可选
用于按 |
Hostname Entity Key |
可选
用于按 |
File Hash Entity Key |
可选
用于按 |
User Entity Key |
可选
用于按 |
URL Entity Key |
可选
用于按 |
Email Address Entity Key |
可选
用于按 |
Stop If Not Enough Entities |
可选
如果选择此项,则当所有指定的实体类型都存在时,系统会运行相应操作。 此选项将会默认选中。 |
Cross Entity Operator |
必需
查询中不同实体类型之间使用的逻辑运算符。 默认值为 可能的值如下:
|
操作输出
执行实体查询操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例展示了使用执行实体查询操作时收到的 JSON 结果输出:
{
"Timestamp": "2021-04-12T07:25:00Z",
"AlertId": "fa7a318954-6c4c-eaab-3200-08d8fd82af35",
"Title": "CC_Sensitive information",
"Category": "InitialAccess",
"Severity": "Medium",
"ServiceSource": "Microsoft Defender for Office 365",
"DetectionSource": "Microsoft Defender for Office 365",
"AttackTechniques": ""
}
输出消息
执行实体查询操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "Execute Entity Query". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用 Execute Entity Query 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
执行查询
使用 Execute Query 操作在 Microsoft 365 Defender 中执行搜索查询。
此操作不适用于 Google SecOps 实体。
操作输入
执行查询操作需要以下参数:
参数 | 说明 |
---|---|
Table Names |
必需
要在 Microsoft 365 Defender 中查询的表名称的英文逗号分隔列表。 |
Query |
可选
要执行的查询。 使用此参数可提供 |
Time Frame |
可选
查询结果的时间段。 默认值为 可能的值如下:
|
Start Time |
可选
查询结果的开始时间,采用 ISO 8601 格式。 如果您将 |
End Time |
可选
查询结果的结束时间,采用 ISO 8601 格式。 如果您未设置值,并将 |
Fields To Return |
可选
要包含在结果中的字段的逗号分隔列表。 |
Sort Field |
可选
用于对结果进行排序的字段。 默认值为 |
Sort Order |
可选
结果的排序顺序(升序或降序)。 默认值为 可能的值如下:
|
Max Results To Return |
可选
需返回的结果数上限。 默认值为 |
操作输出
执行查询操作会提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例展示了使用执行查询操作时收到的 JSON 结果输出:
{"Results": [
{
"Timestamp": "2021-04-12T07:25:00Z",
"AlertId": "fa7a318954-6c4c-eaab-3200-08d8fd82af35",
"Title": "CC_Sensitive information",
"Category": "InitialAccess",
"Severity": "Medium",
"ServiceSource": "Microsoft Defender for Office 365",
"DetectionSource": "Microsoft Defender for Office 365",
"AttackTechniques": ""
}
]}
输出消息
执行查询操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
|
操作成功。 |
Error executing action "Execute Query". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用 Execute Query 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
Ping
使用 Ping 操作测试与 Microsoft 365 Defender 的连接。
该操作不会在 Google SecOps 实体上运行。
操作输入
无。
操作输出
Ping 操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
JSON 结果
以下示例展示了使用 Ping 操作时收到的 JSON 结果输出:
输出消息
Ping 操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
Successfully connected to the Microsoft 365 Defender server
with the provided connection parameters! |
操作成功。 |
Failed to connect to the Microsoft 365 Defender server! Error is
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
脚本结果
下表列出了使用 Ping 操作时脚本结果输出的值:
脚本结果名称 | 值 |
---|---|
is_success |
True 或 False |
更新突发事件
使用 Update Incident 操作更新 Microsoft 365 Defender 中的事件。
根据 API 限制,即使您为 Assign To
参数设置了无效的用户名值,此操作也不会失败。
此操作不适用于 Google SecOps 实体。
操作输入
更新突发事件操作需要以下参数:
参数 | 说明 |
---|---|
Incident ID |
必需
要在 Microsoft 365 Defender 中更新的事件的 ID。 |
Status |
可选
要在 Microsoft 365 Defender 中为突发事件设置的状态。 默认值为 可能的值如下:
|
Classification |
可选
要在 Microsoft 365 Defender 中为突发事件设置的分类。 默认值为 可能的值如下:
|
Determination |
可选
要在 Microsoft 365 Defender 中为突发事件设置的判定。 此参数仅在 默认值为 可能的值如下:
|
Assign To |
可选
要在 Microsoft 365 Defender 中将事件分配给的用户。 |
操作输出
更新突发事件操作提供以下输出:
操作输出类型 | 可用性 |
---|---|
案例墙附件 | 不可用 |
案例墙链接 | 不可用 |
“支持请求墙”表格 | 不可用 |
丰富化表 | 不可用 |
JSON 结果 | 不可用 |
输出消息 | 可用 |
脚本结果 | 可用 |
输出消息
更新突发事件操作可以返回以下输出消息:
输出消息 | 消息说明 |
---|---|
Successfully updated incident INCIDENT_ID in Microsoft 365 Defender. |
操作成功。 |
Error executing action "Update Incident". Reason:
ERROR_REASON |
操作失败。 检查与服务器的连接、输入参数或凭据。 |
连接器
如需详细了解如何在 Google SecOps 中配置连接器,请参阅提取数据(连接器)。
Microsoft 365 Defender - 事件连接器
使用 Microsoft 365 Defender - 突发事件连接器从 Microsoft 365 Defender 中提取有关突发事件及其相关提醒的信息。
动态列表可与突发事件名称搭配使用。
连接器限制
Microsoft 365 Defender - 事件连接器使用具有严格 API 限制的 API 请求。为了稳定连接器,请将 Max Incidents To Fetch
参数设置为 10
,并将 Run Every
参数设置为 1 minute
。您仍然可能会达到速率限制,因为用于提取提醒的 Microsoft Graph API 端点每分钟仅允许 20 个请求。
为防止达到速率限制时丢失数据,连接器会停止处理当前事件,并等待 90 秒,然后再处理任何其他事件。在 90 秒内,速率限制会恢复到最大值,连接器会重新处理之前迭代中未正确处理的事件。
连接器输入
Microsoft 365 Defender - 事件连接器需要以下参数:
在大多数情况下,重定向的事件可以为空。
参数 | 说明 |
---|---|
Product Field Name |
必需 存储商品名称的字段的名称。 默认值为 |
Event Field Name |
必需 用于确定事件名称(子类型)的字段名称。 默认值为 |
Login API Root |
必需 Microsoft 365 Defender 实例的登录 API 根。 默认值为 |
Graph API Root |
必需 Microsoft Graph 服务的 API 根。 默认值为 |
API Root |
必需
Microsoft 365 Defender 实例的 API 根。 默认值为 |
Tenant ID |
必需
您的 Microsoft Entra ID 账号的 Microsoft Entra ID(租户 ID)值。 |
Client ID |
必需
您的 Microsoft Entra ID 账号的应用(客户端)ID 值。 |
Client Secret |
必需
Microsoft Entra ID 应用的客户端密钥值。 |
Verify SSL |
可选
如果选中此选项,集成会验证用于连接到 Microsoft 365 Defender 服务器的 SSL 证书是否有效。 此选项将会默认选中。 |
Lowest Severity To Fetch |
可选
要提取的突发事件的最低严重程度。 |
Max Hours Backwards |
可选
在首次连接器迭代之前检索事件的小时数。此参数适用于首次启用连接器后的初始连接器迭代,或已过期的连接器时间戳的回退值。 默认值为 |
Max Incidents To Fetch |
可选
每次连接器迭代要提取的突发事件数量上限。 默认值为 |
Incident Status Filter |
可选
以英文逗号分隔的要注入的突发事件状态列表。 默认值为 可能的值如下:
|
Use whitelist as a blacklist |
可选
如果选中此选项,连接器会将动态列表用作屏蔽列表。 默认情况下未选中。 |
Lowest Alert Severity To Fetch |
可选
要提取的提醒的最低严重程度。 |
Disable Alert Tracking |
可选 如果启用,连接器会停止跟踪提醒的更新。 默认情况下,该环境处于停用状态。 |
Environment Field Name |
可选
包含环境名称的字段的名称。 |
Environment Regex Pattern |
可选
要对 使用默认值 如果正则表达式模式为 null 或空,或者环境值为 null,则最终环境结果为默认环境。 |
PythonProcessTimeout |
必需
运行当前脚本的 Python 进程的超时时间限制(以秒为单位)。 默认值为 |
Dynamic List Field |
可选
动态列表用于过滤的值。 可能的值包括 默认值为 |
Alert Detection Source Filter |
可选
要注入的以英文逗号分隔的提醒检测来源列表,例如 |
Alert Service Source Filter |
可选
要注入的提醒服务来源的英文逗号分隔列表,例如 |
Disable Overflow |
可选 如果选中此选项,连接器会在创建提醒期间忽略 Google SecOps 溢出机制。 默认处于启用状态。 |
Proxy Server Address |
可选 要使用的代理服务器的地址。 |
Proxy Username |
可选 用于进行身份验证的代理用户名。 |
Proxy Password |
可选 用于进行身份验证的代理密码。 |
连接器规则
- 连接器支持代理。
- 连接器支持动态列表和屏蔽名单。
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。