Udostępnij przez


Konfigurowanie aktualizacji analizy zabezpieczeń w trybie offline dla Ochrona punktu końcowego w usłudze Microsoft Defender w systemie macOS

W tym dokumencie opisano funkcję aktualizacji analizy zabezpieczeń w trybie offline Ochrona punktu końcowego w usłudze Microsoft Defender 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 punkty końcowe systemu macOS ściągają podpisy z serwera dublowanego w wstępnie zdefiniowanym interwale.

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 działać w systemach Windows, Mac lub Linux i nie trzeba instalować usługi Defender for Endpoint na tym serwerze.

  • Uzyskujesz najbardziej aktualną ochronę antywirusową, ponieważ podpisy są zawsze pobierane wraz z najnowszym zgodnym aparatem antywirusowym.

  • Starsze wersje podpisów (n-1) są przenoszone do folderu kopii zapasowej na serwerze dublowania w 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 firmy Microsoft na ten serwer dublowany przez wykonanie skryptu przy użyciu harmonogramu zadań/zadań cron 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.

Podpisy pobierane do punktów końcowych systemu macOS z serwera lokalnego są najpierw weryfikowane przed załadowaniem do aparatu antywirusowego.

Aby wyzwolić i skonfigurować proces aktualizacji, zaktualizuj zarządzany plik json konfiguracji w punktach końcowych systemu macOS.

Stan aktualizacji można wyświetlić w interfejsie wiersza polecenia mdatp.

Przepływ procesu pobierania aktualizacji analizy zabezpieczeń na serwerze dublowanym został zilustrowany na poniższym diagramie.

Diagram przepływu procesów na serwerze dublowania na potrzeby pobierania aktualizacji analizy zabezpieczeń

Przepływ procesu aktualizacji analizy zabezpieczeń w punkcie końcowym systemu macOS został zilustrowany na poniższym diagramie.

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 dublowania może być serwerem HTTP/HTTPS lub serwerem udziału sieciowego, 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 dublowania powinien obsługiwać powłokę bash lub program PowerShell.

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

    Rdzenie procesora CPU Pamięci 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 serwerem dublowania i jego własność spoczywa wyłącznie na kliencie, w tej sekcji przedstawiono dwa przykładowe skrypty powłoki Bash, które pokazują, jak za pomocą języka Python 3 i caddy skonfigurować podstawowy serwer 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.

  • python_http_server.sh: używa wbudowanego modułu serwera HTTP języka Python 3 do obsługi plików z określonego katalogu.
  • caddy_http_server.sh: instaluje i konfiguruje serwer internetowy Caddy tak, aby obsługiwał pliki z określonego katalogu.

Aby sprawdzić, czy usługa jest poprawnie skonfigurowana po skonfigurowaniu serwera, przejdź do pozycji "https://localhost:8080".

W przypadku produkcyjnych lub zaawansowanych przypadków użycia zapoznaj się z oficjalną dokumentacją każdego serwera:

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

#!/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

#!/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 folder spakowany.

Uwaga

Zaplanuj zadanie cron lub uruchomione zadanie , aby zachować aktualizację repozytorium/pobranego pliku zip do najnowszej wersji w regularnych odstępach czasu.

Po sklonowaniu repozytorium lub pobraniu spakowanego pliku struktura katalogów lokalnych powinna wyglądać następująco:

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 na truewartość skrypt pobiera aktualizacje specyficzne dla systemu Linux do downloadFolderelementu .
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 specyficzne dla komputerów Mac do downloadFolderpliku .
downloadPreviewUpdates Bool Pobiera wersję zapoznawczą aktualizacji dostępnych dla określonego systemu operacyjnego.
backupPreviousUpdates Bool Umożliwia skryptowi skopiowanie poprzedniej aktualizacji w folderze _back , a nowe aktualizacje są pobierane do downloadFolderprogramu .

Wykonywanie skryptu pobierania analizy zabezpieczeń w trybie offline

Aby ręcznie wykonać skrypt pobierania, skonfiguruj parametry w pliku settings.json zgodnie z opisem w poprzedniej sekcji i użyj jednego z następujących poleceń opartych na systemie operacyjnym serwera dublowanego:

Bash:

./xplat_offline_updates_download.sh

Powershell:

./xplat_offline_updates_download.ps1

Uwaga

Zaplanuj zadanie cron lub uruchomione zadanie , aby wykonać ten skrypt, aby pobrać najnowsze aktualizacje analizy zabezpieczeń na serwer dublowania w regularnych odstępach czasu.

Hostowanie aktualizacji analizy zabezpieczeń w trybie offline na serwerze dublowania

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

Po pobraniu pliku zip sygnatur można go hostować na serwerze dublowanym. Serwer dublowany może być hostowany przy użyciu dowolnego serwera HTTP/HTTPS/udziału sieciowego.

Po zakończeniu hostowania skopiuj ścieżkę bezwzględną hostowanego serwera (maksymalnie do katalogu arch_*.

Jeśli na przykład skrypt jest wykonywany za pomocą downloadFolder=/tmp/wdav-updatepolecenia , a serwer HTTP (www.example.server.com:8000) hostuje ścieżkę /tmp/wdav-update, odpowiedni identyfikator URI to: www.example.server.com:8000/mac/production/.

Możemy również użyć ścieżki bezwzględnej katalogu (lokalnego/zdalnego punktu instalacji), takiego jak /tmp/wdav-update/mac/production.

Po skonfigurowaniu serwera dublowania musimy propagować ten adres URL do punktów końcowych komputerów Mac, tak jak offlineDefinitionUpdateUrl w sekcji Konfiguracja zarządzana zgodnie z opisem w następnej sekcji.

Konfigurowanie punktów końcowych

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 na enabledwartość włączono funkcję "aktualizacja analizy zabezpieczeń w trybie offline" i na odwrót.
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 na enabledwartość pobrane definicje są weryfikowane w punktach końcowych; w przeciwnym razie na odwrót.

Weryfikowanie konfiguracji

Aby sprawdzić, czy ustawienia są prawidłowo stosowane w punktach końcowych systemu macOS, uruchom następujące polecenie:

mdatp health --details definitions

Przykładowe dane wyjściowe będą wyglądać podobnie do następującego fragmentu kodu:

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

    Jeśli pola automaticDefinitionUpdateEnabled i offline_definition_update w zarządzanym formacie json są ustawione na truewartość , "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 wyzwolić aktualizację "analizy zabezpieczeń w trybie offline", aby pobrać podpisy z serwera dublowanego w punktach końcowych komputerów 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.

Sprawdź następujące pola:

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

Typowe kroki rozwiązywania problemów

  • 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.
  • Spróbuj wykonać test łączności, aby sprawdzić, czy serwer dublowania jest osiągalny z hosta:

    mdatp connectivity test
    
  • Spróbuj wyzwolić aktualizację ręczną przy użyciu następującego polecenia:

    mdatp definitions update
    

Zobacz też