macOS 및 Linux에서 클라이언트 분석기 실행
XMDEClientAnalyzer는 Linux 또는 macOS를 실행하는 온보딩된 디바이스에서 엔드포인트용 Microsoft Defender 상태 또는 안정성 문제를 진단하는 데 사용됩니다.
클라이언트 분석기 도구를 실행하는 방법에는 두 가지가 있습니다.
- 이진 버전 사용(외부 Python 종속성 없음)
- Python 기반 솔루션 사용
클라이언트 분석기의 이진 버전 실행
조사해야 하는 macOS 또는 Linux 컴퓨터에 XMDE 클라이언트 분석기 이진 도구를 다운로드합니다.
터미널을 사용하는 경우 다음 명령을 입력하여 도구를 다운로드합니다.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
루트 로 도구를 실행하여 진단 패키지를 생성합니다.
sudo ./MDESupportTool -d
Python 기반 클라이언트 분석기 실행
참고
- 분석기는 루트에서 결과 출력을 생성할 때 운영 체제에 설치된 몇 가지 추가 PIP 패키지(
decorator
,sh
,distro
,lxml
및psutil
)에 따라 달라집니다. 설치되지 않은 경우 분석기는 Python 패키지의 공식 리포지토리에서 가져오려고 시도합니다. - 또한 이 도구는 현재 디바이스에 Python 버전 3 이상을 설치해야 합니다.
- 디바이스가 프록시 뒤에 있는 경우 프록시 서버를 환경 변수로 스크립트에
mde_support_tool.sh
전달할 수 있습니다. 예:https_proxy=https://myproxy.contoso.com:8080 ./mde_support_tool.sh"
경고
Python 기반 클라이언트 분석기를 실행하려면 사용자 환경에서 몇 가지 문제를 일으킬 수 있는 PIP 패키지를 설치해야 합니다. 문제가 발생하지 않도록 하려면 사용자 PIP 환경에 패키지를 설치하는 것이 좋습니다.
조사해야 하는 macOS 또는 Linux 컴퓨터에 XMDE 클라이언트 분석기 도구를 다운로드합니다.
터미널을 사용하는 경우 다음 명령을 실행하여 도구를 다운로드합니다.
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
실제 진단 패키지를 수집하고 결과 보관 파일을 생성하려면 루트로 다시 실행합니다.
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 | 로그 및 구성 MDE | | health.txt | MDE 상태 상태 [^1] | | health_details_features.txt | 추가 MDE 기능의 상태 상태 [^1] | | permissions.txt | MDE 소유/사용하는 폴더에 대한 권한 문제 [^1] | | 크래시 | MDE 생성한 크래시 덤프 | | process_information.txt | 도구가 실행되었을 때 컴퓨터에서 실행되는 프로세스 | | proc_directory_info.txt | MDE 프로세스의 가상 메모리 매핑 [^1] | | 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 | 파일 usder /var/log/syslog | | messages.zip | /var/log/messages 아래의 파일 | | conflicting_processes_information.txt | 충돌 프로세스 MDE | | exclusions.txt | AV 제외 목록 | | definitions.txt | AV 정의 정보 | | mde_directories.txt | MDE 디렉터리에 있는 파일 목록 | | disk_usage.txt | 디스크 사용량 세부 정보 | | mde_user.txt | MDE 사용자 정보 | | mde_definitions_mount.txt | MDE 정의 탑재 지점 | | service_status.txt | 서비스 상태 MDE | | service_file.txt | MDE 서비스 파일 | | hardware_info.txt | 하드웨어 정보 | | mount.txt | 탑재 지점 정보 | | uname.txt | 커널 정보 | | memory.txt | 시스템 메모리 정보 | | meminfo.txt | 시스템의 메모리 사용량에 대한 자세한 정보 | | cpuinfo.txt | CPU 정보 | | lsns_info.txt | Linux 네임스페이스 정보 | | lsof.txt | 파일 설명자 정보 열기 MDE [^1] | | sestatus.txt | 파일 설명자 정보 열기 MDE | | lsmod.txt | Linux 커널의 모듈 상태 | | dmesg.txt | 커널 링 버퍼의 메시지 | | kernel_lockdown.txt | 커널 잠금 정보 | | rtp_statistics.txt | RTP(실시간 보호) 통계 MDE [^1] | | libc_info.txt | libc 라이브러리 정보 | | uptime_info.txt | 마지막 다시 시작 이후의 시간 | | last_info.txt | 마지막으로 로그인한 사용자 목록 | | locale_info.txt | 현재 로캘 표시 | | tmp_files_owned_by_mdatp.txt | /tmp 그룹 소유 파일:mdatp [^1] | | mdatp_config.txt | 모든 MDE 구성 [^1] | | mpenginedb.db, mpenginedb.db-wal, mpenginedb.db-shm | AV 정의 파일 [^1] | | iptables_rules.txt | Linux iptables 규칙 | | network_info.txt | 네트워크 정보 | | sysctl_info.txt | 커널 설정 정보 | | hostname_diagnostics.txt | 호스트 이름 진단 정보 | | mde_event_statistics.txt | MDE 이벤트 통계 [^1] | | mde_ebpf_statistics.txt | MDE eBPF 통계 [^1] | | kernel_logs.zip | 커널 로그 | | mdc_log.zip | 클라우드 로그에 대한 Microsoft Defender | | netext_config.txt | | | threat_list.txt | MDE 검색된 위협 목록 [^1] | | top_output.txt | 도구가 실행되었을 때 컴퓨터에서 실행되는 프로세스 | | top_summary.txt | 실행 중인 프로세스의 Memeory 및 CPU 사용 현황 분석 | [^1]: MDE 설치된 경우에만 해당됩니다.
위치 인수
성능 정보 수집
주문형으로 재현할 수 있는 성능 시나리오를 분석하기 위해 MDE 프로세스의 광범위한 컴퓨터 성능 추적을 수집합니다.
-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 | MDE 성능 데이터 처리 |
참고
진단 모드에 해당하는 파일도 생성됩니다.
tar 파일에는 형식 <pid of a MDE process>.data
의 파일이 포함되어 있습니다.
다음 명령을 사용하여 데이터 파일을 읽을 수 있습니다.
perf report -i <pid>.data
연결 테스트 실행
이 모드는 MDE 필요한 클라우드 리소스에 연결할 수 있는지 여부를 테스트합니다.
-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
결과는 화면에 인쇄됩니다.
다양한 설치/온보딩 보고서 수집
이 모드는 disto 정보, 시스템 요구 사항 등과 같은 설치 관련 정보를 수집합니다.
-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 | 설치된 MDE 버전 | | onboarding_status | 온보딩 및 링 정보 |
OS 추적 사용(macOS에만 해당)
OS 추적 기능을 사용하여 엔드포인트용 Defender 성능 추적을 기록합니다.
참고
이 기능은 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
제외 모드
audit-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에 대한 속도 제한을 전역적으로 설정하여 모든 감사 이벤트가 감소합니다. 제한기를 사용하도록 설정하면 감사된 이벤트 수가 초당 2,500개의 이벤트로 제한됩니다. 이 옵션은 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
참고
이 기능은 잘못된 규칙을 건너뜁습니다. 그러면 결함이 있는 규칙을 추가로 식별하고 수정해야 합니다.
macOS 및 Linux의 결과 패키지 콘텐츠
report.html
설명: 디바이스에서 클라이언트 분석기 도구를 실행한 결과와 지침이 포함된 기본 HTML 출력 파일입니다. 이 파일은 Python 기반 버전의 클라이언트 분석기 도구를 실행할 때만 생성됩니다.
mde_diagnostic.zip
설명: macOS 또는 Linux에서 mdatp 진단 만들기를 실행할 때 생성되는 것과 동일한 진단 출력입니다.
mde.xml
설명: 실행하는 동안 생성되고 html 보고서 파일을 빌드하는 데 사용되는 XML 출력입니다.
Processes_information.txt
설명: 시스템에서 실행 중인 엔드포인트용 Microsoft Defender 관련 프로세스의 세부 정보를 포함합니다.
Log.txt
설명: 데이터 수집 중에 화면에 기록된 것과 동일한 로그 메시지를 포함합니다.
Health.txt
설명: mdatp health 명령을 실행할 때 표시되는 것과 동일한 기본 상태 출력입니다.
Events.xml
설명: HTML 보고서를 작성할 때 분석기에서 사용하는 추가 XML 파일입니다.
Audited_info.txt
설명: Linux OS에 대한 감사된 서비스 및 관련 구성 요소에 대한 세부 정보입니다.
perf_benchmark.tar.gz
설명: 성능 테스트가 보고합니다. 성능 매개 변수를 사용하는 경우에만 표시됩니다.
팁
더 자세히 알아보고 싶으신가요? 기술 커뮤니티: 엔드포인트용 Microsoft Defender Tech Community의 Microsoft 보안 커뮤니티와 Engage.