Skonfiguruj aktualizacje analizy zagrożeń w trybie offline dla Microsoft Defender dla punktów końcowych na macOS

Overview

W tym dokumencie opisano funkcję aktualizacji danych analizy zabezpieczeń w trybie offline w usłudze Microsoft Defender dla punktów końcowych w systemie macOS.

Ta funkcja umożliwia organizacji korzystanie z lokalnego serwera hostingu (nazywanego serwerem dublowanym w tym dokumencie) w celu zaktualizowania analizy zabezpieczeń (określanej w tym dokumencie jako definicje lub podpisy) w punktach końcowych systemu macOS, które mają ograniczoną lub żadną ekspozycję na Internet.

Serwer dublowania to dowolny serwer w środowisku klienta, który może połączyć się z chmurą firmy Microsoft w celu pobrania podpisów. Inne urządzenia końcowe z systemem macOS pobierają sygnatury z serwera lustrzanego w określonych odstępach czasu.

Przed rozpoczęciem upewnij się, że Defender dla punktu końcowego w wersji 101.25012.0003 lub nowszej jest zainstalowana w punktach końcowych systemu macOS, punkty końcowe mogą uzyskać dostęp do serwera dublowania, a serwer dublowany ma dostęp do Internetu w celu pobrania podpisów. Pełną listę można znaleźć w sekcji wymagań wstępnych dotyczących aktualizacji analizy zabezpieczeń trybu offline w dalszej części tego artykułu.

Kluczowe korzyści

  • Twój zespół ds. zabezpieczeń może kontrolować częstotliwość pobierania podpisów na serwer lokalny i zarządzać nimi oraz częstotliwością pobierania podpisów z serwera lokalnego przez punkty końcowe.

  • Masz dodatkową warstwę ochrony i kontroli, ponieważ pobrane podpisy można przetestować na urządzeniu testowym, zanim zostaną rozpropagowane do całej floty.

  • Potrzebujesz mniejszej przepustowości sieci, ponieważ tylko jeden serwer lokalny sonduje chmurę firmy Microsoft, aby uzyskać najnowsze podpisy w imieniu całej floty.

  • Serwer dublowania może uruchamiać system Windows, Mac lub Linux i nie trzeba instalować usługi Defender for Endpoint na tym serwerze.

  • Otrzymujesz najaktualniejszą ochronę antywirusową, ponieważ sygnatury są zawsze pobierane razem z najnowszym zgodnym silnikiem antywirusowym.

  • Starsze wersje podpisów (n-1) są przenoszone do folderu kopii zapasowej na serwerze lustrzanym podczas każdej iteracji. Jeśli wystąpił problem z najnowszymi aktualizacjami, możesz ściągnąć wersję podpisu n-1 z folderu kopii zapasowej na urządzenia.

  • W rzadkich przypadkach, gdy aktualizacja w trybie offline kończy się niepowodzeniem, można skonfigurować opcję rezerwową w celu pobierania aktualizacji online z chmury firmy Microsoft.

Jak działa aktualizacja analizy zabezpieczeń w trybie offline

Organizacje muszą skonfigurować serwer dublowania, który jest lokalnym serwerem sieci Web/NFS dostępnym dla chmury firmy Microsoft.

Sygnatury są pobierane z chmury Microsoft na ten serwer lustrzany poprzez uruchomienie skryptu za pomocą zadania cron lub Harmonogramu zadań na serwerze lokalnym.

Punkty końcowe systemu macOS z uruchomioną usługą Defender for Endpoint ściągają pobrane podpisy z tego serwera dublowanego w przedziale czasu zdefiniowanym przez użytkownika.

Sygnatury pobierane z lokalnego serwera na urządzenia końcowe z systemem macOS są najpierw weryfikowane przed załadowaniem do silnika antywirusowego.

Aby uruchomić i skonfigurować proces aktualizacji, zaktualizuj zarządzany plik JSON konfiguracji na punktach końcowych z systemem macOS.

Stan aktualizacji danych analitycznych zabezpieczeń w trybie offline można sprawdzić w interfejsie wiersza polecenia narzędzia mdatp.

Na poniższym diagramie przedstawiono sposób pobierania aktualizacji analizy zabezpieczeń z chmury Microsoft na serwer dublowany.

Schemat przepływu procesu na serwerze lustrzanym dotyczący pobierania aktualizacji danych analizy zabezpieczeń

Na poniższym diagramie pokazano, jak punkty końcowe systemu macOS ściągają i weryfikują aktualizacje analizy zabezpieczeń z serwera dublowanego.

Diagram przepływu procesów w punkcie końcowym systemu macOS na potrzeby aktualizacji analizy zabezpieczeń

Serwer dublowania może uruchamiać dowolny z następujących systemów operacyjnych:

  • Linux (dowolny smak)
  • Windows (dowolna wersja)
  • Mac (dowolna wersja)

Wymagania wstępne

  • Usługa Defender for Endpoint w wersji 101.25012.0003 lub nowszej musi być zainstalowana w punktach końcowych systemu macOS.

  • Punkty końcowe systemu macOS muszą mieć łączność z serwerem dublowanym.

  • Punkt końcowy systemu macOS musi uruchamiać dowolne dystrybucje obsługiwane przez usługę Defender for Endpoint.

  • Serwer lustrzany może być zarówno serwerem HTTP/HTTPS, jak i serwerem udostępniającym zasoby w sieci, na przykład serwerem NFS.

  • Serwer dublowania musi mieć dostęp do następujących adresów URL:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • Serwer lustrzany powinien obsługiwać powłokę Bash lub program PowerShell.

  • Dla serwera dublowanego są wymagane następujące minimalne specyfikacje systemowe:

    Rdzeń procesora RAM Bezpłatny dysk Wymiany
    2 rdzenie (preferowane 4 rdzenie) 1 GB min (preferowane 4 GB) 2 GB Zależne od systemu

    Uwaga

    Ta konfiguracja może się różnić w zależności od liczby obsługiwanych żądań i obciążenia, które musi zostać przetworzone przez każdy serwer.

Konfigurowanie serwera dublowania

Uwaga

Zarządzanie serwerem dublowania i jego własność spoczywa wyłącznie na kliencie, ponieważ znajduje się on w środowisku prywatnym klienta.

Dowolny serwer HTTP może być używany jako serwer dublowania. Serwer dublowany nie musi mieć zainstalowanego programu Defender for Endpoint.

Chociaż zarządzanie i własność serwera dublowanego leży wyłącznie u klienta, następujące dwa przykładowe skrypty powłoki Bash pokazują, jak używać Python 3 i Caddy do konfigurowania podstawowego serwera plików HTTP w systemie macOS. Te skrypty są podawane wyłącznie na potrzeby ilustracji i powinny być dostosowane do twoich własnych potrzeb i środowiska.

Aby sprawdzić, czy serwer plików HTTP jest poprawnie skonfigurowany, przejdź do "https://localhost:8080".

W przypadku przypadków użycia w środowisku produkcyjnym lub zaawansowanym zapoznaj się z oficjalną dokumentacją serwera HTTP Python i caddy:

Zawsze przeglądaj i dostosuj skrypty do wymagań dotyczących środowiska i zabezpieczeń.

Przykładowy skrypt: konfigurowanie podstawowego serwera plików HTTP w systemie macOS przy użyciu języka Python 3

Poniższy skrypt uruchamia lekki serwer HTTP Python 3, który może hostować pobrane pliki aktualizacji offline z określonego katalogu.

#!/bin/bash
# python_http_server.sh
# Starts a simple HTTP server using Python 3

# Check for Python 3
if ! command -v python3 &> /dev/null; then
  echo "Python 3 is not installed. Please install it first."
  exit 1
fi

PORT=8080
FOLDER="."

if [ ! -z "$1" ]; then
  PORT=$1
fi
if [ ! -z "$2" ]; then
  FOLDER=$2
fi

echo "Starting Python HTTP server on port $PORT (localhost only), serving folder: $FOLDER..."
python3 -m http.server "$PORT" --bind 127.0.0.1 --directory "$FOLDER"

Przykładowy skrypt: konfigurowanie podstawowego serwera plików HTTP w systemie macOS przy użyciu programu Caddy

Poniższy skrypt instaluje i konfiguruje serwer internetowy Caddy w systemie macOS do hostowania pobranych plików aktualizacji offline.

#!/bin/bash
# caddy_http_server.sh
# Installs and configures Caddy HTTP server on macOS

PORT=8080
FOLDER="."

if [ ! -z "$1" ]; then
  PORT=$1
fi
if [ ! -z "$2" ]; then
  FOLDER=$2
fi

check_homebrew() {
  if ! command -v brew &> /dev/null; then
    echo "Homebrew is required to install Caddy."
    read -p "Would you like to install Homebrew? (y/n): " install_brew
    if [[ "$install_brew" =~ ^[Yy]$ ]]; then
      echo "Installing Homebrew..."
      /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
      export PATH="/opt/homebrew/bin:$PATH"
    else
      echo "Please install Caddy manually and restart this script."
      exit 1
    fi
  fi
}

install_caddy() {
  if ! brew list caddy &> /dev/null; then
    echo "Installing Caddy via Homebrew..."
    brew install caddy
  else
    echo "Caddy is already installed."
  fi
}

# Check for Caddy
if ! command -v caddy &> /dev/null; then
  echo "Caddy is not installed."
  check_homebrew
  install_caddy
else
  echo "Caddy is already installed."
fi

# Create a simple Caddyfile
cat <<EOL > Caddyfile
localhost:${PORT} {
  root * ${FOLDER}
  file_server browse
}
EOL

echo "Caddyfile created. Starting Caddy server on port $PORT..."
caddy run --config ./Caddyfile

Pobieranie skryptu pobierania analizy zabezpieczeń w trybie offline

Firma Microsoft hostuje skrypt pobierania analizy zabezpieczeń w trybie offline w następującym repozytorium GitHub: https://github.com/microsoft/mdatp-xplat.

Wykonaj następujące kroki, aby pobrać skrypt pobierania:

Opcja 1. Klonowanie repozytorium (preferowane)

Zainstaluj narzędzie Git na serwerze dublowania.

Przejdź do katalogu, w którym chcesz sklonować repozytorium.

Uruchom polecenie: git clone https://github.com/microsoft/mdatp-xplat.git

Opcja 2. Pobieranie pliku zip

Pobierz plik zip repozytorium: https://github.com/microsoft/mdatp-xplat/archive/refs/heads/master.zip.

Skopiuj plik zip do folderu, w którym chcesz zachować skrypt.

Wyodrębnij skompresowany folder.

Uwaga

Zaplanuj zadanie cron lub zadanie launchd, aby regularnie aktualizować repozytorium lub pobrany plik ZIP do najnowszej wersji.

Po sklonowaniu repozytorium lub pobraniu spakowanego pliku struktura katalogów lokalnych powinna być zgodna z poniższym przykładem, który pokazuje skrypt pobierania i jego pliki konfiguracji:

user@vm:~/mdatp-xplat$ tree linux/definition_downloader/
linux/definition_downloader/
├── README.md
├── settings.json
├── settings.ps1
├── xplat_offline_updates_download.ps1
└── xplat_offline_updates_download.sh

0 directories, 5 files

Uwaga

Przejdź przez plik README.md, aby szczegółowo zrozumieć, jak używać skryptu.

Plik settings.json składa się z kilku zmiennych, które użytkownik może skonfigurować w celu określenia danych wyjściowych wykonywania skryptu.

Nazwa pola Wartość Opis
downloadFolder ciąg Mapuje na lokalizację, do której skrypt pobiera pliki.
downloadLinuxUpdates bool Po ustawieniu wartości true skrypt pobiera aktualizacje specyficzne dla systemu Linux do downloadFolder.
logFilePath ciąg Konfiguruje dzienniki diagnostyczne w danym folderze. Ten plik można udostępnić firmie Microsoft w celu debugowania skryptu w przypadku wystąpienia jakichkolwiek problemów.
downloadMacUpdates bool Skrypt pobiera aktualizacje przeznaczone dla komputerów Mac do downloadFolder.
downloadPreviewUpdates bool Pobiera wersję zapoznawczą aktualizacji dostępnych dla określonego systemu operacyjnego.
backupPreviousUpdates bool Umożliwia skryptowi skopiowanie poprzedniej aktualizacji do folderu _back, a nowe aktualizacje są pobierane do downloadFolder.

Wykonywanie skryptu pobierania analizy zabezpieczeń w trybie offline

Aby ręcznie wykonać skrypt pobierania, skonfiguruj parametry w pliku settings.json (takim jak , i ) przy użyciu opisów pól w downloadFolder i użyj jednego z następujących poleceń opartych na systemie operacyjnym serwera dublowania:downloadMacUpdatesbackupPreviousUpdates

Na serwerze dublowania opartym na powłoce Bash (Linux lub macOS) uruchom skrypt powłoki, aby pobrać najnowszy pakiet definicji offline:

./xplat_offline_updates_download.sh

Na serwerze dublowania opartym na Windows użyj wersji programu PowerShell skryptu, aby pobrać pakiet definicji offline:

./xplat_offline_updates_download.ps1

Uwaga

Zaplanuj zadanie cron lub zadanie launchd, aby regularnie uruchamiać ten skrypt w celu pobierania najnowszych aktualizacji danych analizy zagrożeń na serwer lustrzany.

Hostuj aktualizacje danych analizy zabezpieczeń w trybie offline na serwerze lustrzanym

Po wykonaniu skryptu najnowsze sygnatury są pobierane do folderu skonfigurowanego w pliku settings.json (updates.zip).

Po pobraniu pliku ZIP z sygnaturami można go umieścić na serwerze lustrzanym. Serwer lustrzany można hostować na dowolnym serwerze HTTP/HTTPS lub udziale sieciowym.

Po hostowaniu skopiuj ścieżkę bezwzględną hostowanego serwera (aż do katalogu arch_*, ale bez niego).

Jeśli na przykład skrypt jest wykonywany przy użyciu downloadFolder=/tmp/wdav-update, a serwer HTTP (www.example.server.com:8000) udostępnia ścieżkę /tmp/wdav-update, odpowiedni adres URI to: www.example.server.com:8000/mac/production/.

Możemy również użyć bezwzględnej ścieżki do katalogu (lokalnego/zdalnego punktu montowania), na przykład /tmp/wdav-update/mac/production.

Po skonfigurowaniu serwera dublowania należy propagować ten adres URL do punktów końcowych komputerów Mac, ustawiając go jako offlineDefinitionUpdateUrl wartość w zarządzanym pliku konfiguracji (mdatp_managed.json), zgodnie z opisem w temacie Konfigurowanie punktów końcowych systemu macOS pod kątem aktualizacji w trybie offline.

Konfigurowanie punktów końcowych

Ważna

Defender for Endpoint musi już być zainstalowany na urządzeniu końcowym z systemem macOS, a do zapisu w /etc/opt/microsoft/mdatp/managed/ są wymagane uprawnienia root lub sudo.

Użyj następującego przykładowego pliku mdatp_managed.json i zaktualizuj parametry zgodnie z konfiguracją, a następnie skopiuj plik do lokalizacji /etc/opt/microsoft/mdatp/managed/mdatp_managed.json.

{
  "cloudService": {
    "automaticDefinitionUpdateEnabled": true,
    "definitionUpdatesInterval": 1202
  },
  "antivirusEngine": {
    "offlineDefinitionUpdateUrl": "http://172.22.199.67:8000/mac/production/",
    "offlineDefintionUpdateFallbackToCloud":false,
    "offlineDefinitionUpdate": "enabled"
  },
  "features": {
    "offlineDefinitionUpdateVerifySig": "enabled"
  }
}
Nazwa pola Wartości Komentarze
automaticDefinitionUpdateEnabled true/false Określa zachowanie usługi Defender for Endpoint, która próbuje wykonać aktualizacje automatycznie, jest odpowiednio włączona lub wyłączona.
definitionUpdatesInterval Liczbowe Czas interwału między każdą automatyczną aktualizacją podpisów (w sekundach).
offlineDefinitionUpdateUrl ciąg Wartość adresu URL wygenerowana w ramach konfiguracji serwera dublowanego. Może to być adres URL serwera zdalnego lub katalog (lokalny/zdalny punkt instalacji).
offlineDefinitionUpdate enabled/disabled Po ustawieniu wartości enabled funkcja „aktualizacja danych analizy zabezpieczeń w trybie offline” jest włączona, i odwrotnie.
offlineDefinitionUpdateFallbackToCloud true/false Określ podejście do aktualizacji analizy zabezpieczeń usługi Defender for Endpoint, gdy "serwer dublowania offline" nie może obsłużyć żądania aktualizacji. Jeśli ustawiono wartość true, aktualizacja zostanie ponowiona za pośrednictwem chmury firmy Microsoft, gdy "aktualizacja analizy zabezpieczeń w trybie offline" nie powiodła się; inaczej, na odwrót.
offlineDefinitionUpdateVerifySig enabled/disabled Po ustawieniu wartości enabled pobrane definicje są weryfikowane w punktach końcowych; w przeciwnym razie — odwrotnie.

Weryfikowanie konfiguracji

Aby sprawdzić, czy ustawienia są prawidłowo stosowane w punktach końcowych systemu macOS, użyj następującego polecenia, aby wyświetlić pola stanu aktualizacji definicji, w tym skonfigurowany adres URL trybu offline i źródło aktualizacji:

mdatp health --details definitions

Przykładowe dane wyjściowe będą wyglądać podobnie do poniższego fragmentu kodu. Sprawdź, czy jest wyświetlana definitions_status i up_to_date jest pusta, co oznacza, że definitions_update_fail_reason konfiguracja aktualizacji w trybie offline działa prawidłowo:

user@vm:~$ mdatp health --details definitions
automatic_definition_update_enabled         : true [managed]
definitions_updated                         : Mar 14, 2024 at 12:13:17 PM
definitions_updated_minutes_ago             : 2
definitions_version                         : "1.407.417.0"
definitions_status                          : "up_to_date"
definitions_update_source_uri               : "https://go.microsoft.com/fwlink/?linkid=2144709"
definitions_update_fail_reason              : ""
offline_definition_url_configured           : "http://172.XX.XXX.XX:8000/mac/production/" [managed]
offline_definition_update                   : "enabled" [managed]
offline_definition_update_verify_sig        : "enabled"
offline_definition_update_fallback_to_cloud : false[managed]

Wyzwalanie aktualizacji analizy zabezpieczeń w trybie offline

  • Aktualizacja automatyczna

    automaticDefinitionUpdateEnabled Jeśli pole (które określa, czy Defender dla punktu końcowego próbuje aktualizacji automatycznej definicji, zgodnie z konfiguracją w zarządzanym pliku JSON) i offline_definition_update (zgłoszona nazwa stanu dla zarządzanego offlineDefinitionUpdate pola konfiguracji) w zarządzanym formacie JSON są ustawione na truewartość , wówczas aktualizacje analizy zabezpieczeń w trybie offline są wyzwalane automatycznie w okresowych odstępach czasu.

    Domyślnie ten okresowy interwał wynosi 8 godzin. Można go skonfigurować, ustawiając definitionUpdatesInterval parametr w zarządzanym formacie JSON.

  • Ręczna aktualizacja

    Aby ręcznie uruchomić „aktualizację inteligencji zabezpieczeń w trybie offline” i pobrać sygnatury z serwera lustrzanego na punktach końcowych Mac, uruchom następujące polecenie:

    mdatp definitions update
    

Sprawdzanie stanu aktualizacji

Po wyzwoleniu "aktualizacji analizy zabezpieczeń w trybie offline" za pomocą metody automatycznej lub ręcznej sprawdź, czy aktualizacja zakończyła się pomyślnie, uruchamiając polecenie : mdatp health --details --definitions.

W poniższych przykładowych danych wyjściowych przedstawiono pola kondycji definicji klucza. Upewnij się, że definitions_status wartość jest up_to_date pusta i definitions_update_fail_reason jest pusta:

user@vm:~$ mdatp health --details definitions
...
definitions_status                          : "up_to_date"
...
definitions_update_fail_reason              : ""
...

Typowe kroki rozwiązywania problemów

Jeśli aktualizacje analizy zabezpieczeń offline nie działają zgodnie z oczekiwaniami, wykonaj następujące kroki, aby zdiagnozować i rozwiązać problem.

  • Sprawdź stan funkcji "aktualizacja analizy zabezpieczeń w trybie offline", używając następującego polecenia:

    mdatp health --details definitions
    

    To polecenie zawiera przyjazny dla użytkownika komunikat w sekcji definitions_update_fail_reason .

  • Sprawdź, czy offline_definition_update i offline_definition_update_verify_sig są włączone.

  • Sprawdź, czy definitions_update_source_uri wartość jest równa offline_definition_url_configured.

    • definitions_update_source_uri to źródło, z którego pobrano podpisy.
    • offline_definition_url_configured to źródło, z którego należy pobrać podpisy, wymienione w zarządzanym pliku konfiguracji.
  • Uruchom test łączności, aby potwierdzić, że punkt końcowy może uzyskać dostęp do skonfigurowanego serwera dublowania i innych wymaganych usług:

    mdatp connectivity test
    
  • Jeśli łączność powiedzie się, ale definicje są nadal nieaktualne, ponów próbę aktualizacji definicji ręcznie:

    mdatp definitions update
    

Zobacz też

Aby uzyskać więcej informacji, zobacz następujące artykuły.