在 macOS 或 Linux 上运行客户端分析器
XMDEClientAnalyzer 用于诊断运行 Linux 或 macOS 的载入设备上的Microsoft Defender for Endpoint运行状况或可靠性问题。
有两种方法可以运行客户端分析器工具:
- 使用二进制版本 (没有外部 Python 依赖项)
- 使用基于 Python 的解决方案
运行客户端分析器的二进制版本
将 XMDE 客户端分析器二进制 工具下载到需要调查的 macOS 或 Linux 计算机。
如果使用的是终端,请通过输入以下命令下载该工具:wget --quiet -O XMDEClientAnalyzerBinary.zip https://go.microsoft.com/fwlink/?linkid=2297517
验证下载。
- Linux
echo '2A9BF0A6183831BE43C7BCB7917A40D772D226301B4CDA8EE4F258D00B6E4E97 XMDEClientAnalyzerBinary.zip' | sha256sum -c
- macOS
echo '2A9BF0A6183831BE43C7BCB7917A40D772D226301B4CDA8EE4F258D00B6E4E97 XMDEClientAnalyzerBinary.zip' | shasum -a 256 -c
在计算机上提取 的内容
XMDEClientAnalyzerBinary.zip
。 如果使用的是终端,请通过输入以下命令提取文件:unzip -q XMDEClientAnalyzerBinary.zip -d XMDEClientAnalyzerBinary
通过输入以下命令来更改工具的目录:
cd XMDEClientAnalyzerBinary
将生成两个新的 zip 文件:
- SupportToolLinuxBinary.zip :适用于所有 Linux 设备
- SupportToolMacOSBinary.zip :适用于 Mac 设备
根据需要调查的计算机解压缩上述 2 个 zip 文件之一。 使用终端时,请根据 OS 类型输入以下命令之一来解压缩文件:
Linux
unzip -q SupportToolLinuxBinary.zip
Mac
unzip -q SupportToolMacOSBinary.zip
以 root 身份运行该工具以生成诊断包:
sudo ./MDESupportTool -d
运行基于 Python 的客户端分析器
注意
- 分析器依赖于几个额外的 PIP 包,
decorator
(、sh
、distro
lxml
、 和psutil
) 这些包在 root 中安装时安装在操作系统中,以生成结果输出。 如果未安装,分析器会尝试从 Python 包的官方存储库中提取它。 - 此外,该工具当前需要在设备上安装 Python 版本 3 或更高版本。
- 如果设备位于代理后面,则可以将代理服务器作为环境变量传递给
mde_support_tool.sh
脚本。 例如:https_proxy=https://myproxy.contoso.com:8080 ./mde_support_tool.sh"
。
警告
运行基于 Python 的客户端分析器需要安装 PIP 包,这可能会导致环境中的一些问题。 为了避免出现问题,建议将包安装到用户 PIP 环境中。
将 XMDE 客户端分析器 工具下载到需要调查的 macOS 或 Linux 计算机。 如果使用终端,请运行以下命令下载该工具:
wget --quiet -O XMDEClientAnalyzer.zip https://aka.ms/XMDEClientAnalyzer
验证下载。
- Linux
echo '84C9718FF3D29DA0EEE650FB2FC0625549A05CD1228AC253DBB92C8B1D9F1D11 XMDEClientAnalyzer.zip' | sha256sum -c
- macOS
echo '84C9718FF3D29DA0EEE650FB2FC0625549A05CD1228AC253DBB92C8B1D9F1D11 XMDEClientAnalyzer.zip' | shasum -a 256 -c
提取计算机上 XMDEClientAnalyzer.zip 的内容。 如果使用的是终端,请使用以下命令提取文件:
unzip -q XMDEClientAnalyzer.zip -d XMDEClientAnalyzer
将目录更改为提取的位置。
cd XMDEClientAnalyzer
为工具授予可执行权限。
chmod a+x mde_support_tool.sh
以非根用户身份运行以安装所需的依赖项。
./mde_support_tool.sh
若要收集实际诊断包并生成结果存档文件,请再次以 root 身份运行。
sudo ./mde_support_tool.sh -d
命令行选项
所有命令行选项
usage: MDESupportTool [-h] [--output OUTPUT] [--outdir OUTDIR] [--no-zip]
[--force] [--diagnostic] [--skip-mdatp]
[--bypass-disclaimer] [--interactive] [--delay DELAY]
[--mdatp-log {trace,info,warning,error,debug,verbose}]
[--max-log-size MAX_LOG_SIZE]
{certinfocollection,performance,installation,exclude,ratelimit,skipfaultyrules,trace,observespikes,connectivitytest}
...
MDE Diagnostics Tool
positional arguments:
{certinfocollection,performance,installation,exclude,ratelimit,skipfaultyrules,trace,observespikes,connectivitytest}
certinfocollection Collect cert information: Subject name and Hashes
performance Collect extensive machine performance tracing for
analysis of a performance scenario that can be
reproduced on demand
installation Collect different installation/onboarding reports
exclude Exclude specific process(es) from audit-d monitoring.
ratelimit Set the rate limit for auditd events. Rate limit will
update the limits for auditd events for all the
applications using auditd, which could impact
applications other than MDE.
skipfaultyrules Continue loading rules in spite of an error. This
summarizes the results of loading the rules. The exit
code will not be success if any rule fails to load.
trace Use OS tracing facilities to record Defender
performance traces.
observespikes Collect the process logs in case of spike or mdatp
crash
connectivitytest Perform connectivity test for MDE
optional arguments:
-h, --help show this help message and exit
--output OUTPUT, -o OUTPUT
Output path to export report
--outdir OUTDIR Directory where diagnostics file will be generated.
--no-zip, -nz If set a directory will be created instead of an
archive file.
--force, -f Will overwrite if output directory exists.
--diagnostic, -d Collect extensive machine diagnostic information.
--skip-mdatp Skip any mdatp command. Use this when the mdatp
command is unresponsive.
--bypass-disclaimer Do not display disclaimer banner.
--interactive, -i Interactive diagnostic,
--delay DELAY, -dd DELAY
Delay diagnostic by how many minutes (0~2880), use
this to wait for more debug logs before it collects.
--mdatp-log {trace,info,warning,error,debug,verbose}
Set MDATP log level. If you use interactive or delay
mode, the log level will set to debug automatically,
and reset after 48h.
--max-log-size MAX_LOG_SIZE
Maximum log file size in MB before rotating(Will
restart mdatp).
诊断模式
诊断模式用于收集大量计算机信息,例如内存、磁盘、MDATP 日志等。这组文件为我们提供了调试与MDE相关的任何问题所需的主要信息集。
支持的选项如下所示:
optional arguments:
-h, --help show this help message and exit
--output OUTPUT, -o OUTPUT
Output path to export report
--outdir OUTDIR Directory where diagnostics file will be generated.
--no-zip, -nz If set a directory will be created instead of an
archive file.
--force, -f Will overwrite if output directory exists.
--diagnostic, -d Collect extensive machine diagnostic information.
--skip-mdatp Skip any mdatp command. Use this when the mdatp
command is unresponsive.
--bypass-disclaimer Do not display disclaimer banner.
--interactive, -i Interactive diagnostic,
--delay DELAY, -dd DELAY
Delay diagnostic by how many minutes (0~2880), use
this to wait for more debug logs before it collects.
--mdatp-log {trace,info,warning,error,debug,verbose}
Set MDATP log level. If you use interactive or delay
mode, the log level will set to debug automatically,
and reset after 48h.
--max-log-size MAX_LOG_SIZE
Maximum log file size in MB before rotating(Will
restart mdatp).
用法示例: sudo ./MDESupportTool -d
注意
日志级别自动重置功能仅在 2405 或更高版本的客户端版本中可用。
下表汇总了使用此模式时生成的文件:
文件 | 备注 |
---|---|
mde_diagnostic.zip |
Defender for Endpoint 日志和配置 |
health.txt |
Defender for Endpoint 的运行状况 (仅在安装 Defender for Endpoint) 时才显示 |
health_details_features.txt |
其他 Defender for Endpoint 功能的运行状况 (仅在安装 Defender for Endpoint) 时才显示 |
permissions.txt |
Defender for Endpoint 拥有/使用的文件夹的权限问题 (仅在安装 Defender for Endpoint) 时才显示 |
crashes |
Defender for Endpoint 生成的故障转储 |
process_information.txt |
运行工具时在计算机中运行的进程 |
proc_directory_info.txt |
Defender for Endpoint 进程的虚拟内存映射 (仅在安装 Defender for Endpoint) 时才显示 |
auditd_info.txt |
审核的运行状况、规则、日志 |
auditd_log_analysis.txt |
已审核的事件摘要 |
auditd_logs.zip |
审核的日志文件 |
ebpf_kernel_config.txt |
当前加载的 Linux 内核配置 |
ebpf_enabled_func.txt |
当前启用跟踪的所有内核函数的列表 |
ebpf_syscalls.zip |
有关系统调用跟踪的信息 |
ebpf_raw_syscalls.zip |
跟踪与原始系统调用相关的事件 |
ebpf_maps_info.txt |
eBPF 地图的 ID 和大小信息 |
syslog.zip |
/var/log/syslog 下的文件 |
messages.zip |
/var/log/messages 下的文件 |
conflicting_processes_information.txt |
Defender for Endpoint 冲突进程 |
exclusions.txt |
防病毒排除项列表 |
definitions.txt |
防病毒定义信息 |
mde_directories.txt |
Defender for Endpoint 目录中的文件列表 |
disk_usage.txt |
磁盘使用情况详细信息 |
mde_user.txt |
Defender for Endpoint 用户信息 |
mde_definitions_mount.txt |
Defender for Endpoint 定义装入点 |
service_status.txt |
Defender for Endpoint 服务状态 |
service_file.txt |
Defender for Endpoint 服务文件 |
hardware_info.txt |
硬件信息 |
mount.txt |
装入点信息 |
uname.txt |
内核信息 |
memory.txt |
系统内存信息 |
meminfo.txt |
有关系统内存使用情况的详细信息 |
cpuinfo.txt |
CPU 信息 |
lsns_info.txt |
Linux 命名空间信息 |
lsof.txt |
Defender for Endpoint Open File 描述符信息 (此表) 后看到注释 |
sestatus.txt |
Defender for Endpoint Open File 描述符信息 |
lsmod.txt |
Linux 内核中模块的状态 |
dmesg.txt |
来自内核环形缓冲区的消息 |
kernel_lockdown.txt |
内核锁定信息 |
rtp_statistics.txt |
Defender for Endpoint 实时保护 (RTP) 统计信息 (仅在安装 Defender for Endpoint) 时才显示 |
libc_info.txt |
libc 库信息 |
uptime_info.txt |
自上次重启以来的时间 |
last_info.txt |
上次登录用户的列表 |
locale_info.txt |
显示当前区域设置 |
tmp_files_owned_by_mdatp.txt |
group:mdatp 拥有的 /tmp 文件 (仅在安装 Defender for Endpoint) 时才显示 |
mdatp_config.txt |
所有 Defender for Endpoint 配置 (仅在安装 Defender for Endpoint) 时才显示 |
mpenginedb.db mpenginedb.db-wal mpenginedb.db-shm |
防病毒定义文件 (仅在安装 Defender for Endpoint) 时才显示 |
iptables_rules.txt |
Linux iptables 规则 |
network_info.txt |
网络信息 |
sysctl_info.txt |
内核设置信息 |
hostname_diagnostics.txt |
主机名诊断信息 |
mde_event_statistics.txt |
Defender for Endpoint 事件统计信息 (仅在安装 Defender for Endpoint) 时才显示 |
mde_ebpf_statistics.txt |
Defender for Endpoint eBPF 统计信息 (仅在安装 Defender for Endpoint) 时才显示 |
kernel_logs.zip |
内核日志 |
mdc_log.zip |
云日志Microsoft Defender |
netext_config.txt |
|
threat_list.txt |
Defender for Endpoint 检测到的威胁列表 (仅在安装 Defender for Endpoint) 时才显示 |
top_output.txt |
运行工具时在计算机中运行的进程 |
top_summary.txt |
运行进程的内存和 CPU 使用率分析 |
位置参数
收集性能信息
收集 Defender for Endpoint 进程的广泛计算机性能跟踪,以分析可按需重现的性能方案。
-h, --help show this help message and exit
--frequency FREQUENCY
profile at this frequency
--length LENGTH length of time to collect (in seconds)
用法示例: sudo ./MDESupportTool performance --frequency 500
使用此模式时生成的文件:
文件 | 备注 |
---|---|
perf_benchmark.tar.gz |
Defender for Endpoint 处理性能数据 |
注意
还会生成与诊断模式对应的文件。
tar 文件包含格式 <pid of a MDE process>.data
为 的文件。
可以使用 命令读取数据文件:
perf report -i <pid>.data
运行连接测试
此模式测试 Defender for Endpoint 所需的云资源是否可访问。
-h, --help show this help message and exit
-o ONBOARDING_SCRIPT, --onboarding-script ONBOARDING_SCRIPT
Path to onboarding script
-g GEO, --geo GEO Geo string to test <US|UK|EU|AU|CH|IN>
用法示例: sudo ./MDESupportTool connectivitytest -o ~/MicrosoftDefenderATPOnboardingLinuxServer.py
结果将打印在屏幕中。
收集不同的安装/载入报告
此模式收集与安装相关的信息,如发行版信息、系统要求等。
-h, --help show this help message and exit
-d, --distro Check for distro support
-a, --all Run all checks
用法示例: sudo ./MDESupportTool installation --all
生成单个报表 installation_report.json
。 文件中的键如下所示:
键 | 备注 |
---|---|
agent_version | 已安装的 Defender for Endpoint 版本 |
onboarding_status | 载入和响铃信息 |
仅将 OS 跟踪 (用于 macOS)
使用 OS 跟踪设施记录 Defender for Endpoint 性能跟踪。
注意
此功能仅存在于 Python 解决方案中。
-h, --help show this help message and exit
--length LENGTH Length of time to record the trace (in seconds).
--mask MASK Mask to select with event to trace. Defaults to all
首次运行此命令时,它会安装配置文件配置。
有关如何批准配置文件安装的详细信息,请参阅 Apple 支持指南。
用法示例 ./mde_support_tool.sh trace --length 5
排除模式
添加用于审核 d 监视的排除项。
注意
此功能仅适用于 Linux。
-h, --help show this help message and exit
-e <executable>, --exe <executable>
exclude by executable name, i.e: bash
-p <process id>, --pid <process id>
exclude by process id, i.e: 911
-d <directory>, --dir <directory>
exclude by target path, i.e: /var/foo/bar
-x <executable> <directory>, --exe_dir <executable> <directory>
exclude by executable path and target path, i.e: /bin/bash /var/foo/bar
-q <q_size>, --queue <q_size>
set dispatcher q_depth size
-r, --remove remove exclusion file
-s, --stat get statistics about common executables
-l, --list list auditd rules
-o, --override Override the existing auditd exclusion rules file for mdatp
-c <syscall number>, --syscall <syscall number>
exclude all process of the given syscall
用法示例: sudo ./MDESupportTool exclude -d /var/foo/bar
AuditD 速率限制器
可用于限制 auditD 插件报告的事件数的语法。 此选项全局设置 AuditD 的速率限制,导致所有审核事件下降。 启用限制器后,审核的事件数限制为 2500 个事件/秒。在从 AuditD 端看到 CPU 使用率过高的情况下,可以使用此选项。
注意
此功能仅适用于 Linux。
-h, --help show this help message and exit
-e <true/false>, --enable <true/false> enable/disable the rate limit with default values
用法示例: sudo ./mde_support_tool.sh ratelimit -e true
注意
应谨慎使用此功能,因为会限制整个已审核子系统报告的事件数。 这也可以减少其他订阅者的事件数。
AuditD 跳过错误规则
使用此选项,可以在加载时跳过在审核规则文件中添加的错误规则。 此选项允许已审核的子系统继续加载规则,即使存在错误规则也是如此。 此选项汇总了加载规则的结果。 在后台,此选项使用 -c
选项运行 auditctl。
注意
此功能仅在 Linux 上可用。
-h, --help show this help message and exit
-e <true/false>, --enable <true/false> enable/disable the option to skip the faulty rules. In case no argumanet is passed, the option will be true by default.
用法示例: sudo ./mde_support_tool.sh skipfaultyrules -e true
注意
此功能跳过错误规则。 必须进一步识别和修复错误规则。
提示
想要了解更多信息? Engage技术社区中的Microsoft安全社区:Microsoft Defender for Endpoint技术社区。