Uruchamianie analizatora klienta w systemach macOS i Linux
Narzędzie XMDEClientAnalyzer służy do diagnozowania Ochrona punktu końcowego w usłudze Microsoft Defender problemów z kondycją lub niezawodnością na dołączonych urządzeniach z systemem Linux lub macOS.
Istnieją dwa sposoby uruchamiania narzędzia analizatora klienta:
- Korzystanie z wersji binarnej (bez zewnętrznej zależności języka Python)
- Korzystanie z rozwiązania opartego na języku Python
Uruchamianie binarnej wersji analizatora klienta
Pobierz narzędzie binarne analizatora klienta XMDE na maszynę z systemem macOS lub Linux, którą należy zbadać.
Jeśli używasz terminalu, pobierz narzędzie, wprowadzając następujące polecenie:wget --quiet -O XMDEClientAnalyzerBinary.zip https://go.microsoft.com/fwlink/?linkid=2297517
Sprawdź pobranie.
- Linux
echo '2A9BF0A6183831BE43C7BCB7917A40D772D226301B4CDA8EE4F258D00B6E4E97 XMDEClientAnalyzerBinary.zip' | sha256sum -c
- macOS
echo '2A9BF0A6183831BE43C7BCB7917A40D772D226301B4CDA8EE4F258D00B6E4E97 XMDEClientAnalyzerBinary.zip' | shasum -a 256 -c
Wyodrębnij zawartość elementu
XMDEClientAnalyzerBinary.zip
na maszynie. Jeśli używasz terminalu, wyodrębnij pliki, wprowadzając następujące polecenie:unzip -q XMDEClientAnalyzerBinary.zip -d XMDEClientAnalyzerBinary
Przejdź do katalogu narzędzia, wprowadzając następujące polecenie:
cd XMDEClientAnalyzerBinary
Tworzone są dwa nowe pliki zip:
- SupportToolLinuxBinary.zip : dla wszystkich urządzeń z systemem Linux
- SupportToolMacOSBinary.zip : w przypadku urządzeń z systemem Mac
Rozpakuj jeden z powyższych 2 plików zip na podstawie maszyny, którą musisz zbadać. W przypadku korzystania z terminalu rozpakuj plik, wprowadzając jedno z następujących poleceń na podstawie typu systemu operacyjnego:
Linux
unzip -q SupportToolLinuxBinary.zip
Mac
unzip -q SupportToolMacOSBinary.zip
Uruchom narzędzie jako główny , aby wygenerować pakiet diagnostyczny:
sudo ./MDESupportTool -d
Uruchamianie analizatora klienta opartego na języku Python
Uwaga
- Analizator zależy od kilku dodatkowych pakietów (
decorator
, ,distro
sh
,lxml
, ipsutil
), które są instalowane w systemie operacyjnym, gdy w katalogu głównym, aby wygenerować dane wyjściowe wyniku. Jeśli nie jest zainstalowany, analizator próbuje pobrać go z oficjalnego repozytorium dla pakietów języka Python. - Ponadto narzędzie obecnie wymaga zainstalowania języka Python w wersji 3 lub nowszej na urządzeniu.
- Jeśli urządzenie znajduje się za serwerem proxy, możesz przekazać serwer proxy jako zmienną środowiskową do skryptu
mde_support_tool.sh
. Przykład:https_proxy=https://myproxy.contoso.com:8080 ./mde_support_tool.sh"
.
Ostrzeżenie
Uruchomienie analizatora klienta opartego na języku Python wymaga instalacji pakietów, co może spowodować pewne problemy w środowisku. Aby uniknąć występowania problemów, zaleca się zainstalowanie pakietów w środowisku użytkownika.
Pobierz narzędzie XMDE Client Analyzer na maszynę z systemem macOS lub Linux, którą należy zbadać. Jeśli używasz terminalu, pobierz narzędzie, uruchamiając następujące polecenie:
wget --quiet -O XMDEClientAnalyzer.zip https://aka.ms/XMDEClientAnalyzer
Sprawdź pobranie.
- Linux
echo '84C9718FF3D29DA0EEE650FB2FC0625549A05CD1228AC253DBB92C8B1D9F1D11 XMDEClientAnalyzer.zip' | sha256sum -c
- macOS
echo '84C9718FF3D29DA0EEE650FB2FC0625549A05CD1228AC253DBB92C8B1D9F1D11 XMDEClientAnalyzer.zip' | shasum -a 256 -c
Wyodrębnij zawartość XMDEClientAnalyzer.zip na maszynie. Jeśli używasz terminalu, wyodrębnij pliki za pomocą następującego polecenia:
unzip -q XMDEClientAnalyzer.zip -d XMDEClientAnalyzer
Zmień katalog na wyodrębnione miejsce.
cd XMDEClientAnalyzer
Nadaj narzędziu uprawnienie wykonywalne.
chmod a+x mde_support_tool.sh
Uruchom jako użytkownik niebędący użytkownikiem, aby zainstalować wymagane zależności.
./mde_support_tool.sh
Aby zebrać rzeczywisty pakiet diagnostyczny i wygenerować plik archiwum wyników, uruchom ponownie jako główny.
sudo ./mde_support_tool.sh -d
Opcje wiersza polecenia
Wszystkie opcje wiersza polecenia
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).
Tryb diagnostyki
Tryb diagnostyczny służy do zbierania obszernego zestawu informacji o maszynie, takich jak pamięć, dysk, dzienniki MDATP itp. Ten zestaw plików daje nam podstawowy zestaw informacji wymaganych do debugowania wszelkich problemów związanych z MDE.
Obsługiwane opcje są następujące:
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).
Przykład użycia: sudo ./MDESupportTool -d
Uwaga
Funkcja autoresetu na poziomie dziennika jest dostępna tylko w wersji 2405 lub nowszej.
Pliki wygenerowane podczas korzystania z tego trybu są podsumowane w poniższej tabeli:
Plik | Uwagi |
---|---|
mde_diagnostic.zip |
Dzienniki i konfiguracje usługi Defender for Endpoint |
health.txt |
Stan kondycji usługi Defender dla punktu końcowego (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
health_details_features.txt |
Stan kondycji innych funkcji usługi Defender for Endpoint (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
permissions.txt |
Problemy z uprawnieniami do folderów należących do usługi Defender dla punktu końcowego lub używanych przez program Defender (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
crashes |
Zrzuty awaryjne generowane przez usługę Defender dla punktu końcowego |
process_information.txt |
Przetwarzanie uruchomione na maszynie po uruchomieniu narzędzia |
proc_directory_info.txt |
Mapowanie pamięci wirtualnej usługi Defender dla procesów punktu końcowego (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
auditd_info.txt |
Inspekcja kondycji, reguł, dzienników |
auditd_log_analysis.txt |
Podsumowanie zdarzeń przetworzonych przez inspekcję |
auditd_logs.zip |
Pliki dziennika z inspekcją |
ebpf_kernel_config.txt |
Aktualnie załadowana konfiguracja jądra systemu Linux |
ebpf_enabled_func.txt |
Lista wszystkich funkcji jądra, które są obecnie włączone do śledzenia |
ebpf_syscalls.zip |
Informacje o śledzeniu wywołań systemowych |
ebpf_raw_syscalls.zip |
Śledzenie zdarzeń związanych z nieprzetworzoną wywołaniami systemu |
ebpf_maps_info.txt |
Informacje o identyfikatorze i rozmiarze map eBPF |
syslog.zip |
Pliki w obszarze /var/log/syslog |
messages.zip |
Pliki w obszarze /var/log/messages |
conflicting_processes_information.txt |
Procesy powodujące konflikty w usłudze Defender for Endpoint |
exclusions.txt |
Lista wykluczeń programu antywirusowego |
definitions.txt |
Informacje o definicji programu antywirusowego |
mde_directories.txt |
Lista plików w katalogach usługi Defender for Endpoint |
disk_usage.txt |
Szczegóły użycia dysku |
mde_user.txt |
Informacje o użytkowniku usługi Defender for Endpoint |
mde_definitions_mount.txt |
Punkt instalacji definicji punktu końcowego w usłudze Defender |
service_status.txt |
Stan usługi Defender for Endpoint Service |
service_file.txt |
Plik usługi Defender for Endpoint |
hardware_info.txt |
Informacje o sprzęcie |
mount.txt |
Informacje o punkcie instalacji |
uname.txt |
Informacje o jądrze |
memory.txt |
Informacje o pamięci systemu |
meminfo.txt |
Szczegółowe informacje o użyciu pamięci systemu |
cpuinfo.txt |
Informacje o procesorze CPU |
lsns_info.txt |
Informacje o przestrzeni nazw systemu Linux |
lsof.txt |
Informacje o deskryptorach otwartych plików w usłudze Defender for Endpoint (zobacz notatkę po tej tabeli) |
sestatus.txt |
Informacje o deskryptorach otwartych plików w usłudze Defender for Endpoint |
lsmod.txt |
Stan modułów w jądrze systemu Linux |
dmesg.txt |
Komunikaty z buforu pierścienia jądra |
kernel_lockdown.txt |
informacje o blokadzie jądra |
rtp_statistics.txt |
Statystyki usługi Defender for Endpoint Real Time Protection (RTP) (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
libc_info.txt |
informacje o bibliotece libc |
uptime_info.txt |
Czas od ostatniego ponownego uruchomienia |
last_info.txt |
Lista ostatnio zalogowanych użytkowników |
locale_info.txt |
Pokaż bieżące ustawienia regionalne |
tmp_files_owned_by_mdatp.txt |
Pliki /tmp należące do grupy:mdatp (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
mdatp_config.txt |
Wszystkie konfiguracje usługi Defender for Endpoint (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
mpenginedb.db mpenginedb.db-wal mpenginedb.db-shm |
Plik definicji programu antywirusowego (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
iptables_rules.txt |
Reguły iptables systemu Linux |
network_info.txt |
Informacje o sieci |
sysctl_info.txt |
informacje o ustawieniach jądra |
hostname_diagnostics.txt |
Informacje diagnostyczne dotyczące nazwy hosta |
mde_event_statistics.txt |
Statystyki zdarzeń usługi Defender for Endpoint (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
mde_ebpf_statistics.txt |
Statystyki usługi Defender for Endpoint eBPF (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
kernel_logs.zip |
Dzienniki jądra |
mdc_log.zip |
Microsoft Defender dzienników chmury |
netext_config.txt |
|
threat_list.txt |
Lista zagrożeń wykrytych przez usługę Defender dla punktu końcowego (Występuje tylko wtedy, gdy jest zainstalowana usługa Defender dla punktu końcowego) |
top_output.txt |
Przetwarzanie uruchomione na maszynie po uruchomieniu narzędzia |
top_summary.txt |
Analiza użycia pamięci i procesora CPU w uruchomionym procesie |
Argumenty pozycyjne
Zbieranie informacji o wydajności
Zbierz obszerne śledzenie wydajności maszyn procesów usługi Defender for Endpoint w celu analizy scenariusza wydajności, który można odtworzyć na żądanie.
-h, --help show this help message and exit
--frequency FREQUENCY
profile at this frequency
--length LENGTH length of time to collect (in seconds)
Przykład użycia: sudo ./MDESupportTool performance --frequency 500
Pliki wygenerowane podczas korzystania z tego trybu:
Plik | Uwagi |
---|---|
perf_benchmark.tar.gz |
Usługa Defender for Endpoint przetwarza dane wydajności |
Uwaga
Generowane są również pliki odpowiadające trybowi diagnostycznemu.
Pliki tar zawierają pliki w formacie <pid of a MDE process>.data
.
Plik danych można odczytać za pomocą polecenia:
perf report -i <pid>.data
Uruchamianie testu łączności
Te tryby sprawdzają, czy zasoby w chmurze potrzebne przez usługę Defender dla punktu końcowego są osiągalne lub nie.
-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>
Przykład użycia: sudo ./MDESupportTool connectivitytest -o ~/MicrosoftDefenderATPOnboardingLinuxServer.py
Wynik jest drukowany na ekranie.
Zbieranie różnych raportów dotyczących instalacji/dołączania
Ten tryb zbiera informacje związane z instalacją, takie jak informacje o dystrybucji, wymagania systemowe itp.
-h, --help show this help message and exit
-d, --distro Check for distro support
-a, --all Run all checks
Przykład użycia: sudo ./MDESupportTool installation --all
Generowany jest pojedynczy raport installation_report.json
. Klucze w pliku są następujące:
Klucz | Uwagi |
---|---|
agent_version | Zainstalowana wersja usługi Defender dla punktu końcowego |
onboarding_status | Informacje o dołączaniu i pierścieniu |
Używanie śledzenia systemu operacyjnego (tylko dla systemu macOS)
Użyj urządzeń do śledzenia systemu operacyjnego, aby rejestrować ślady wydajności usługi Defender dla punktów końcowych.
Uwaga
Ta funkcja istnieje tylko w rozwiązaniu języka 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
Po pierwszym uruchomieniu tego polecenia instaluje ono konfigurację profilu.
Aby uzyskać więcej informacji na temat zatwierdzania instalacji profilu, zobacz Przewodnik pomocy technicznej firmy Apple.
Przykład użycia ./mde_support_tool.sh trace --length 5
Tryb wykluczania
Dodawanie wykluczeń na potrzeby monitorowania audit-d.
Uwaga
Ta funkcja istnieje tylko dla systemu 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
Przykład użycia: sudo ./MDESupportTool exclude -d /var/foo/bar
Ogranicznik szybkości inspekcji
Składnia, której można użyć do ograniczenia liczby zdarzeń zgłaszanych przez wtyczkę auditD. Ta opcja ustawia limit szybkości globalnie dla auditD powodując spadek wszystkich zdarzeń inspekcji. Po włączeniu ogranicznika liczba zdarzeń inspekcji jest ograniczona do 2500 zdarzeń na sekundę. Tej opcji można użyć w przypadkach, gdy widzimy wysokie użycie procesora CPU po stronie AuditD.
Uwaga
Ta funkcja istnieje tylko dla systemu Linux.
-h, --help show this help message and exit
-e <true/false>, --enable <true/false> enable/disable the rate limit with default values
Przykład użycia: sudo ./mde_support_tool.sh ratelimit -e true
Uwaga
Ta funkcja powinna być starannie używana jako ograniczenie liczby zdarzeń zgłaszanych przez poddawane inspekcji podsystem jako całość. Może to również zmniejszyć liczbę zdarzeń dla innych subskrybentów.
AuditD pomija błędy reguł
Ta opcja umożliwia pominięcie błędnych reguł dodanych do pliku reguł inspekcji podczas ich ładowania. Ta opcja umożliwia podsystemowi inspekcji kontynuowanie ładowania reguł, nawet jeśli istnieje błędna reguła. Ta opcja zawiera podsumowanie wyników ładowania reguł. W tle ta opcja uruchamia parametr auditctl z opcją -c
.
Uwaga
Ta funkcja jest dostępna tylko w systemie 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.
Przykład użycia: sudo ./mde_support_tool.sh skipfaultyrules -e true
Uwaga
Ta funkcja pomija błędne reguły. Wadliwe reguły muszą być dalej identyfikowane i naprawiane.
Porada
Chcesz dowiedzieć się więcej? Engage ze społecznością microsoft security w naszej społeczności technicznej: Ochrona punktu końcowego w usłudze Microsoft Defender Tech Community.