Konfigurera uppdateringar av säkerhetsinformation offline för Microsoft Defender för Endpoint på macOS

Översikt

Det här dokumentet beskriver funktionen för uppdatering av säkerhetsinformation offline i Microsoft Defender för Endpoint på macOS.

Den här funktionen gör det möjligt för en organisation att använda en lokal värdserver (kallas för en speglingsserver i det här dokumentet) för att uppdatera säkerhetsinformationen (som i det här dokumentet kallas definitioner eller signaturer) på macOS-slutpunkter som har begränsad eller ingen exponering för Internet.

En speglingsserver är en server i kundens miljö som kan ansluta till Microsoft-molnet för att ladda ned signaturerna. Andra macOS-slutpunkter hämtar signaturerna från speglingsservern med ett fördefinierat intervall.

Innan du börjar kontrollerar du att Defender för Slutpunktsversion 101.25012.0003 eller senare har installerats på macOS-slutpunkterna, att slutpunkterna kan nå speglingsservern och att speglingsservern har internetåtkomst för att ladda ned signaturer. Den fullständiga listan finns i avsnittet krav för uppdateringar av säkerhetsinformation offline senare i den här artikeln.

Viktiga fördelar

  • Säkerhetsteamet kan styra och hantera frekvensen för signaturnedladdningar till den lokala servern och hur ofta slutpunkter hämtar signaturer från den lokala servern.

  • Du har ett extra lager av skydd och kontroll, eftersom de nedladdade signaturerna kan testas på en testenhet innan de sprids till hela flottan.

  • Du behöver mindre nätverksbandbredd eftersom endast en lokal server avsöker Microsoft-molnet för att få de senaste signaturerna för hela flottans räkning.

  • Speglingsservern kan köra Windows, Mac eller Linux och du behöver inte installera Defender för Endpoint på den servern.

  • Du får det senaste antivirusskyddet eftersom signaturer alltid laddas ned tillsammans med den senaste kompatibla antivirusmotorn.

  • Äldre versioner av signaturer (n-1) flyttas till en säkerhetskopieringsmapp på speglingsservern i varje iteration. Om det finns ett problem med de senaste uppdateringarna kan du hämta signaturversionen n-1 från säkerhetskopieringsmappen till dina enheter.

  • Om offlineuppdateringen misslyckas kan du konfigurera ett reservalternativ för att hämta onlineuppdateringar från Microsoft-molnet.

Så här fungerar uppdatering av säkerhetsinformation offline

Organisationer måste konfigurera en speglingsserver, som är en lokal webb-/NFS-server som kan nås av Microsoft-molnet.

Signaturer laddas ned från Microsoft-molnet till den här speglingsservern genom att köra ett skript med cron-jobb/schemaläggaren på den lokala servern.

macOS-slutpunkter som kör Defender för Endpoint hämtar de nedladdade signaturerna från den här speglingsservern med ett användardefinierat tidsintervall.

Signaturer som hämtas till macOS-slutpunkterna från den lokala servern verifieras först innan de läses in i antivirusmotorn.

Om du vill utlösa och konfigurera uppdateringsprocessen uppdaterar du json-filen för hanterad konfiguration på macOS-slutpunkterna.

Status för uppdateringen av offlinesäkerhetsinformation kan visas i mdatp CLI.

Följande diagram visar hur uppdateringar av säkerhetsinformation laddas ned från Microsoft-molnet till speglingsservern.

Processflödesdiagram på speglingsservern för nedladdning av uppdateringar av säkerhetsinformation

Följande diagram visar hur macOS-slutpunkter hämtar och verifierar säkerhetsinformationsuppdateringar från speglingsservern.

Processflödesdiagram på macOS-slutpunkten för uppdateringar av säkerhetsinformation

Speglingsservern kan köra något av följande operativsystem:

  • Linux (valfri smak)
  • Windows (vilken version som helst)
  • Mac (vilken version som helst)

Förhandskrav

  • Defender för Endpoint version 101.25012.0003 eller senare måste installeras på macOS-slutpunkterna.

  • MacOS-slutpunkterna måste ha anslutning till speglingsservern.

  • MacOS-slutpunkten måste köra någon av de Defender för Endpoint-distributioner som stöds.

  • Speglingsservern kan vara antingen en HTTP/HTTPS-server eller en nätverksresursserver, till exempel en NFS-server.

  • Speglingsservern måste ha åtkomst till följande URL:er:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • Speglingsservern bör ha stöd för bash eller PowerShell.

  • Följande minsta systemspecifikationer krävs för speglingsservern:

    CPU-kärna RAM Kostnadsfri disk Swap
    2 kärnor (prioriterad 4 kärnor) 1 GB minst (helst 4 GB) 2 GB Systemberoende

    Obs!

    Den här konfigurationen kan variera beroende på antalet begäranden som hanteras och vilken belastning varje server måste bearbeta.

Konfigurera speglingsservern

Obs!

Hantering och ägarskap för speglingsservern ligger enbart hos kunden, eftersom den finns i kundens privata miljö.

Alla HTTP-servrar kan användas som en speglingsserver. Speglingsservern behöver inte ha Defender för Endpoint installerat.

Även om hantering och ägarskap för speglingsservern enbart ligger hos kunden, visar följande två Bash-exempelskript hur du använder Python 3 och Caddy för att konfigurera en grundläggande HTTP-filserver på macOS. Dessa skript ges endast i illustrationssyfte och bör anpassas till dina egna specifika behov och miljöer.

Om du vill kontrollera att HTTP-filservern är korrekt konfigurerad går du till "https://localhost:8080".

För produktionsfall eller avancerade användningsfall, se den officiella Python HTTP-servern och Caddy-dokumentationen:

Granska och anpassa alltid skripten efter din miljö och dina säkerhetskrav.

Exempelskript: Konfigurera en grundläggande HTTP-filserver på macOS med Python 3

Följande skript startar en enkel Python 3 HTTP-server som kan vara värd för de nedladdade offlineuppdateringsfilerna från en angiven katalog.

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

Exempelskript: Konfigurera en grundläggande HTTP-filserver på macOS med caddy

Följande skript installerar och konfigurerar Caddy-webbservern på macOS som värd för de nedladdade offlineuppdateringsfilerna.

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

Hämta nedladdningsskriptet för säkerhetsinformation offline

Microsoft är värd för ett nedladdningsskript för säkerhetsinformation offline på följande GitHub-lagringsplats: https://github.com/microsoft/mdatp-xplat.

Utför följande steg för att hämta nedladdningsskriptet:

Alternativ 1: Klona lagringsplatsen (rekommenderas)

Installera Git på speglingsservern.

Navigera till den katalog där du vill klona lagringsplatsen.

Kör kommandot: git clone https://github.com/microsoft/mdatp-xplat.git

Alternativ 2: Ladda ned zip-filen

Ladda ned zip-filen för lagringsplatsen: https://github.com/microsoft/mdatp-xplat/archive/refs/heads/master.zip.

Kopiera zip-filen till mappen där du vill behålla skriptet.

Packa upp den komprimerade mappen.

Obs!

Schemalägg ett cron-jobb eller ett startjobb för att hålla lagringsplatsen/den nedladdade zip-filen uppdaterad till den senaste versionen med jämna mellanrum.

När du har klonat lagringsplatsen eller laddat ned den zippade filen ska den lokala katalogstrukturen matcha följande exempel, som visar nedladdningsskriptet och dess konfigurationsfiler:

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

Obs!

Gå igenom README.md-filen för att få detaljerad information om hur du använder skriptet.

Den settings.json filen består av några variabler som användaren kan konfigurera för att fastställa utdata för skriptkörningen.

Fältnamn Värde Beskrivning
downloadFolder sträng Mappar till den plats där skriptet laddar ned filerna till.
downloadLinuxUpdates bool När det är inställt på truehämtar skriptet Linux specifika uppdateringar av downloadFolder.
logFilePath sträng Konfigurerar diagnostikloggarna i en viss mapp. Den här filen kan delas med Microsoft för felsökning av skriptet om det finns några problem.
downloadMacUpdates bool Skriptet laddar ned de Mac-specifika uppdateringarna till downloadFolder.
downloadPreviewUpdates bool Laddar ned förhandsversionen av de uppdateringar som är tillgängliga för det specifika operativsystemet.
backupPreviousUpdates bool Tillåter att skriptet kopierar den tidigare uppdateringen i _back mappen och nya uppdateringar laddas ned till downloadFolder.

Kör nedladdningsskriptet för säkerhetsinformation offline

Om du vill köra nedladdningsskriptet manuellt konfigurerar du parametrarna i filen settings.json (till exempel downloadFolder, downloadMacUpdatesoch backupPreviousUpdates) med hjälp av fältbeskrivningarna i nedladdningsskriptet settings.json fältbeskrivningar och använder något av följande kommandon baserat på operativsystemet på speglingsservern:

På en Bash-baserad speglingsserver (Linux eller macOS) kör du shell-skriptet för att ladda ned det senaste offlinedefinitionspaketet:

./xplat_offline_updates_download.sh

På en Windows-baserad speglingsserver använder du PowerShell-versionen av skriptet för att ladda ned offlinedefinitionspaketet:

./xplat_offline_updates_download.ps1

Obs!

Schemalägg ett cron-jobb eller ett startjobb för att köra det här skriptet för att ladda ned de senaste uppdateringarna av säkerhetsinformationen till speglingsservern med jämna mellanrum.

Lagra offlineuppdateringar av säkerhetsunderrättelser på speglingsservern

När skriptet har körts laddas de senaste signaturerna ned till mappen som konfigurerats i settings.json -filen (updates.zip).

När zip-filen med signaturer har laddats ned kan speglingsservern användas för att vara värd för den. Speglingsservern kan hanteras med någon av HTTP/HTTPS/nätverksresursservrarna.

När servern har lagts upp kopierar du den absoluta sökvägen till den hostade servern (fram till men inte inklusive katalogen arch_*).

Om skriptet till exempel körs med downloadFolder=/tmp/wdav-updateoch HTTP-servern (www.example.server.com:8000) är värd för sökvägen /tmp/wdav-update är motsvarande URI: www.example.server.com:8000/mac/production/.

Vi kan också använda katalogens absoluta sökväg (lokal/fjärrmonteringspunkt), till exempel /tmp/wdav-update/mac/production.

När speglingsservern har konfigurerats sprider du url:en till Mac-slutpunkterna genom att ange den offlineDefinitionUpdateUrl som värdet i den hanterade konfigurationsfilen (mdatp_managed.json) enligt beskrivningen i Konfigurera macOS-slutpunkter för offlineuppdateringar.

Konfigurera slutpunkterna

Important

Defender för Endpoint måste redan vara installerat på macOS-enheten, och du behöver root- eller sudo-behörighet för att skriva till /etc/opt/microsoft/mdatp/managed/.

Använd följande exempel mdatp_managed.json fil och uppdatera parametrarna enligt konfigurationen och kopiera sedan filen till platsen /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"
  }
}
Fältnamn Värden Kommentarer
automaticDefinitionUpdateEnabled true/false Avgör om Defender for Endpoints beteende att försöka utföra uppdateringar automatiskt är aktiverat eller inaktiverat.
definitionUpdatesInterval Numeriska Tidsintervall mellan varje automatisk uppdatering av signaturer (i sekunder).
offlineDefinitionUpdateUrl sträng URL-värde som genereras som en del av konfigurationen av speglingsservern. Detta kan vara antingen när det gäller fjärrserverns URL eller en katalog (lokal/fjärrmonteringspunkt).
offlineDefinitionUpdate enabled/disabled När den är inställd på enabledaktiveras funktionen "uppdatering av säkerhetsinformation offline" och vice versa.
offlineDefinitionUpdateFallbackToCloud true/false Fastställ metoden för säkerhetsinformationsuppdatering för Defender for Endpoint när "offline-speglingsserver" inte kan betjäna uppdateringsbegäran. Om inställningen är inställd truepå görs ett nytt försök med uppdateringen via Microsoft-molnet när "offlineuppdatering av säkerhetsinformation" misslyckades, annars vice versa.
offlineDefinitionUpdateVerifySig enabled/disabled När värdet är enabled verifieras de nedladdade definitionerna på slutenheterna; i annat fall gäller det omvända.

Kontrollera konfigurationen

Om du vill testa om inställningarna tillämpas korrekt på macOS-slutpunkterna använder du följande kommando för att visa statusfälten för definitionsuppdatering, inklusive den konfigurerade offline-URL:en och uppdateringskällan:

mdatp health --details definitions

Ett exempelutdata skulle se ut som följande kodfragment. Kontrollera att definitions_status visar up_to_date och att definitions_update_fail_reason är tom, vilket indikerar att konfigurationen för offlineuppdatering fungerar korrekt:

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]

Starta offlineuppdateringar av säkerhetsunderrättelser

  • Automatisk uppdatering

    automaticDefinitionUpdateEnabled Om fältet (som styr om Defender för Slutpunkt försöker utföra automatiska definitionsuppdateringar, enligt konfigurationen i den hanterade JSON-filen) och offline_definition_update (det rapporterade statusnamnet för det offlineDefinitionUpdate hanterade konfigurationsfältet) i det hanterade json-fältet anges till true, utlöses "uppdateringar av säkerhetsinformation offline" automatiskt med jämna mellanrum.

    Som standard är det här periodiska intervallet 8 timmar. Den kan konfigureras genom att ange parametern definitionUpdatesInterval i den hanterade json-filen.

  • Manuell uppdatering

    Kör följande kommando för att utlösa "uppdatering av säkerhetsinformation offline" manuellt för att ladda ned signaturer från speglingsservern på Mac-slutpunkterna:

    mdatp definitions update
    

Kontrollera uppdateringsstatus

När du har utlöst "uppdatering av säkerhetsinformation offline" antingen med den automatiska eller manuella metoden kontrollerar du att uppdateringen lyckades genom att köra kommandot: mdatp health --details --definitions.

Följande exempelutdata visar nyckeldefinitionens hälsofält. Bekräfta att definitions_status är up_to_date och att definitions_update_fail_reason är tom:

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

Vanliga felsökningssteg

Om uppdateringar av säkerhetsinformation offline inte fungerar som förväntat använder du följande steg för att diagnostisera och lösa problemet.

  • Kontrollera statusen för funktionen "uppdatering av säkerhetsinformation offline" med hjälp av följande kommando:

    mdatp health --details definitions
    

    Det här kommandot innehåller ett användarvänligt meddelande i avsnittet definitions_update_fail_reason .

  • Kontrollera om offline_definition_update och offline_definition_update_verify_sig är aktiverade.

  • Kontrollera om definitions_update_source_uri är lika med offline_definition_url_configured.

    • definitions_update_source_uri är källan där signaturerna laddades ned.
    • offline_definition_url_configured är källan där signaturer ska laddas ned, den som nämns i den hanterade konfigurationsfilen.
  • Kör ett anslutningstest för att bekräfta att slutpunkten kan nå den konfigurerade speglingsservern och andra nödvändiga tjänster:

    mdatp connectivity test
    
  • Om anslutningen lyckas men definitionerna fortfarande är inaktuella kan du försöka uppdatera definitionen manuellt:

    mdatp definitions update
    

Se även

Mer information finns i följande artiklar.