Udostępnij za pośrednictwem


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:

  1. Korzystanie z wersji binarnej (bez zewnętrznej zależności języka Python)
  2. Korzystanie z rozwiązania opartego na języku Python

Uruchamianie binarnej wersji analizatora klienta

  1. 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
    
  2. Sprawdź pobranie.

    • Linux
    echo '2A9BF0A6183831BE43C7BCB7917A40D772D226301B4CDA8EE4F258D00B6E4E97 XMDEClientAnalyzerBinary.zip' | sha256sum -c
    
    • macOS
    echo '2A9BF0A6183831BE43C7BCB7917A40D772D226301B4CDA8EE4F258D00B6E4E97  XMDEClientAnalyzerBinary.zip' | shasum -a 256 -c
    
  3. 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
    
  4. Przejdź do katalogu narzędzia, wprowadzając następujące polecenie:

    cd XMDEClientAnalyzerBinary
    
  5. Tworzone są dwa nowe pliki zip:

    • SupportToolLinuxBinary.zip : dla wszystkich urządzeń z systemem Linux
    • SupportToolMacOSBinary.zip : w przypadku urządzeń z systemem Mac
  6. 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
      
  7. 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, , distrosh, lxml, i psutil), 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.

  1. 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
    
  2. Sprawdź pobranie.

    • Linux
    echo '84C9718FF3D29DA0EEE650FB2FC0625549A05CD1228AC253DBB92C8B1D9F1D11 XMDEClientAnalyzer.zip' | sha256sum -c
    
    • macOS
    echo '84C9718FF3D29DA0EEE650FB2FC0625549A05CD1228AC253DBB92C8B1D9F1D11  XMDEClientAnalyzer.zip' | shasum -a 256 -c
    
  3. 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
    
  4. Zmień katalog na wyodrębnione miejsce.

    cd XMDEClientAnalyzer
    
  5. Nadaj narzędziu uprawnienie wykonywalne.

    chmod a+x mde_support_tool.sh
    
  6. Uruchom jako użytkownik niebędący użytkownikiem, aby zainstalować wymagane zależności.

    ./mde_support_tool.sh
    
  7. 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.