你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Microsoft Defender for Endpoint (MDE) 运行时保护服务提供了为 Nexus 群集配置和管理运行时保护的工具。
使用 Azure CLI,可以配置运行时保护“强制级别”,以及在所有节点上触发“MDE 扫描”的功能。 本文档提供了执行这些任务的步骤。
注意
MDE 运行时保护服务集成了 Microsoft Defender for Endpoint,它可提供全面的终结点检测和响应 (EDR) 功能。 通过 Microsoft Defender for Endpoint 集成,可以发现异常并检测漏洞。
开始之前
- 安装最新版本的相应 CLI 扩展。
设置变量
为了帮助配置和触发 MDE 扫描,请定义本指南中各种命令使用的这些环境变量。
注意
这些环境变量值不反映实际部署,因此用户必须更改它们以匹配其环境。
# SUBSCRIPTION_ID: Subscription of your cluster
export SUBSCRIPTION_ID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# RESOURCE_GROUP: Resource group of your cluster
export RESOURCE_GROUP="contoso-cluster-rg"
# MANAGED_RESOURCE_GROUP: Managed resource group managed by your cluster
export MANAGED_RESOURCE_GROUP="contoso-cluster-managed-rg"
# CLUSTER_NAME: Name of your cluster
export CLUSTER_NAME="contoso-cluster"
MDE 运行时保护的默认值
部署群集时,运行时保护会设置为以下默认值
- 强制级别:如果在创建群集时未指定,则为
Disabled
- MDE 服务:
Disabled
注意
参数 --runtime-protection enforcement-level="<enforcement level>"
具有两个用途:启用/禁用 MDE 服务和更新强制级别。
如果要在群集中禁用 MDE 服务,请使用 Disabled
的 <enforcement level>
。
配置强制级别
通过 az networkcloud cluster update
命令,可以使用参数 --runtime-protection enforcement-level="<enforcement level>"
更新群集运行时保护强制级别的设置。
以下命令可配置群集的 enforcement level
。
az networkcloud cluster update \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${RESOURCE_GROUP} \
--cluster-name ${CLUSTER_NAME} \
--runtime-protection enforcement-level="<enforcement level>"
<enforcement level>
允许的值:Disabled
、RealTime
、OnDemand
、Passive
。
Disabled
:实时保护已关闭,并且不执行扫描。RealTime
:启用实时保护(修改文件时扫描文件)。OnDemand
:仅按需扫描文件。 在此中:- 实时保护已关闭。
Passive
:在被动模式下运行防病毒引擎。 在此中:- 实时保护已关闭:Microsoft Defender 防病毒不会修正威胁。
- 已启用按需扫描:仍使用终结点上的扫描功能。
- 自动威胁修正已关闭:不会移动任何文件,并且安全管理员应采取所需的操作。
- 安全智能更新已启用:安全管理员租户上将提供警报。
可以通过检查以下 json 代码片段的输出来确认是否已更新强制级别:
"runtimeProtectionConfiguration": {
"enforcementLevel": "<enforcement level>"
}
在所有节点上触发 MDE 扫描
要在群集的所有节点上触发 MDE 扫描,请使用以下命令:
az networkcloud cluster scan-runtime \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${RESOURCE_GROUP} \
--cluster-name ${CLUSTER_NAME} \
--scan-activity Scan
注意:MDE 扫描操作要求启用 MDE 服务。 如果未启用它,命令将失败。 在本例中,将
Enforcement Level
值设置为与Disabled
不同的值,以启用 MDE 服务。
从每个节点检索 MDE 扫描信息
本部分提供检索 MDE 扫描信息的步骤。 首先,需要检索群集的节点名称列表。 以下命令可将节点名称列表分配给环境变量。
nodes=$(az networkcloud baremetalmachine list \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${MANAGED_RESOURCE_GROUP} \
| jq -r '.[].machineName')
使用节点名称列表,可以启动为群集的每个节点提取 MDE 代理信息的过程。 以下命令将会准备来自每个节点的 MDE 代理信息。
for node in $nodes
do
echo "Extracting MDE agent information for node ${node}"
az networkcloud baremetalmachine run-data-extract \
--subscription ${SUBSCRIPTION_ID} \
--resource-group ${MANAGED_RESOURCE_GROUP} \
--name ${node} \
--commands '[{"command":"mde-agent-information"}]' \
--limit-time-seconds 600
done
命令结果将包含一个 URL,可以在其中下载 MDE 扫描的详细报告。 有关 MDE 代理信息的结果,请参阅以下示例。
Extracting MDE agent information for node rack1control01
====Action Command Output====
Executing mde-agent-information command
MDE agent is running, proceeding with data extract
Getting MDE agent information for rack1control01
Writing to /hostfs/tmp/runcommand
================================
Script execution result can be found in storage account:
<url to download mde scan results>
...
提取 MDE 扫描结果
提取 MDE 扫描需要几个手动步骤:下载 MDE 扫描报告,提取扫描运行信息,以及扫描详细结果报告。 本部分将指导你完成上述每个步骤。
下载扫描报告
如前所述,MDE 代理信息响应可提供存储详细报告数据的 URL。
从返回的 URL <url to download mde scan results>
下载报告,然后打开文件 mde-agent-information.json
。
mde-agent-information.json
文件包含了大量有关扫描的信息,分析如此长的详细报告可能会非常困难。
本指南提供了提取一些基本信息的几个示例,可帮助你确定是否需要全面分析报告。
提取 MDE 扫描列表
mde-agent-information.json
文件包含详细的扫描报告,但你可能希望首先关注一些详细信息。
本部分详细介绍了提取扫描运行列表的步骤,从而提供了每个扫描开始和结束时间、发现的威胁、状态(成功或失败)等信息。
以下命令可提取此简化的报告。
cat <path to>/mde-agent-information.json| jq .scanList
以下示例显示了从 mde-agent-information.json
中提取的扫描报告。
[
{
"endTime": "1697204632487",
"filesScanned": "1750",
"startTime": "1697204573732",
"state": "succeeded",
"threats": [],
"type": "quick"
},
{
"endTime": "1697217162904",
"filesScanned": "1750",
"startTime": "1697217113457",
"state": "succeeded",
"threats": [],
"type": "quick"
}
]
可以使用 Unix date
命令将时间转换为更易于读取的格式。
为方便起见,请参阅将 Unix 时间戳(以毫秒为单位)转换为 year-month-day 和 hour:min:sec 格式的示例。
例如:
date -d @$(echo "1697204573732/1000" | bc) "+%Y-%m-%dT%H:%M:%S"
2023-10-13T13:42:53
提取 MDE 扫描结果
本部分详细介绍了提取有关 MDE 扫描期间所识别威胁列表的报告步骤。
要从 mde-agent-information.json
文件中提取扫描结果报告,请执行以下命令。
cat <path to>/mde-agent-information.json| jq .threatInformation
以下示例显示了从 mde-agent-information.json
文件中提取的由扫描所标识的威胁报告。
{
"list": {
"threats": {
"scans": [
{
"type": "quick",
"start_time": 1697204573732,
"end_time": 1697204632487,
"files_scanned": 1750,
"threats": [],
"state": "succeeded"
},
{
"type": "quick",
"start_time": 1697217113457,
"end_time": 1697217162904,
"files_scanned": 1750,
"threats": [],
"state": "succeeded"
}
]
}
},
"quarantineList": {
"type": "quarantined",
"threats": []
}
}