Configurare gli aggiornamenti delle funzionalità di intelligence per la sicurezza offline per Microsoft Defender per endpoint in macOS

Overview

Questo documento descrive la funzionalità di aggiornamento offline dell'intelligence per la sicurezza di Microsoft Defender per endpoint su macOS.

Questa funzionalità consente a un'organizzazione di usare un server di hosting locale (definito server mirror in questo documento) per aggiornare l'intelligence di sicurezza (definita in questo documento definizioni o firme) negli endpoint macOS che hanno un'esposizione limitata o nessuna a Internet.

Un server mirror è qualsiasi server nell'ambiente del cliente che può connettersi al cloud Microsoft per scaricare le firme. Altri endpoint macOS scaricano le firme dal server mirror a intervalli predefiniti.

Prima di iniziare, assicurarsi che Defender per endpoint versione 101.25012.0003 o successiva sia installato negli endpoint macOS, gli endpoint possono raggiungere il server mirror e il server mirror ha accesso a Internet per scaricare le firme. Per l'elenco completo, vedere la sezione prerequisiti per gli aggiornamenti delle funzionalità di intelligence per la sicurezza offline più avanti in questo articolo.

Vantaggi principali

  • Il team di sicurezza può controllare e gestire la frequenza dei download delle firme nel server locale e la frequenza con cui gli endpoint estraggono le firme dal server locale.

  • Si dispone di un ulteriore livello di protezione e controllo, poiché le firme scaricate possono essere testate in un dispositivo di test prima che vengano propagate all'intera flotta.

  • È necessaria una larghezza di banda di rete inferiore, poiché solo un server locale esegue il polling del cloud Microsoft per ottenere le firme più recenti per conto dell'intera flotta.

  • Il server mirror può eseguire Windows, Mac o Linux e non è necessario installare Defender per endpoint in tale server.

  • Si ottiene la protezione antivirus più aggiornata, perché le firme vengono sempre scaricate insieme al motore antivirus compatibile più recente.

  • Le versioni precedenti delle firme (n-1) vengono spostate in una cartella di backup nel server mirror in ogni iterazione. Se si verifica un problema con gli aggiornamenti più recenti, è possibile recuperare la versione n-1 delle firme dalla cartella di backup sui dispositivi.

  • Nel raro caso in cui l'aggiornamento offline non riesca, è possibile configurare un'opzione di fallback per ottenere gli aggiornamenti online dal cloud Microsoft.

Come funziona l'aggiornamento dell'intelligence di sicurezza offline

Le organizzazioni devono configurare un server mirror, ovvero un server Web/NFS locale raggiungibile dal cloud Microsoft.

Le firme vengono scaricate dal cloud Microsoft in questo server mirror eseguendo uno script usando cron job/task scheduler nel server locale.

Gli endpoint macOS che eseguono Defender per endpoint eseguono il pull delle firme scaricate da questo server mirror a un intervallo di tempo definito dall'utente.

Le firme estratte negli endpoint macOS dal server locale vengono prima verificate prima di essere caricate nel motore antivirus.

Per attivare e configurare il processo di aggiornamento, aggiornare il file json di configurazione gestito negli endpoint macOS.

Lo stato dell'aggiornamento offline delle informazioni di sicurezza può essere visualizzato nella CLI di mdatp.

Il diagramma seguente illustra come scaricare gli aggiornamenti di Intelligence per la sicurezza dal cloud Microsoft al server mirror.

Diagramma del flusso di processo nel server mirror per il download degli aggiornamenti di Security Intelligence

Il diagramma seguente illustra come gli endpoint macOS eseguono il pull e la verifica degli aggiornamenti di Intelligence per la sicurezza dal server mirror.

Diagramma del flusso di processo nell'endpoint macOS per gli aggiornamenti di security intelligence

Il server mirror può eseguire uno dei sistemi operativi seguenti:

  • Linux (qualsiasi sapore)
  • Windows (qualsiasi versione)
  • Mac (qualsiasi versione)

Prerequisiti

  • La versione 101.25012.0003 o successiva di Defender for Endpoint deve essere installata sugli endpoint macOS.

  • Gli endpoint macOS devono avere connettività al server mirror.

  • L'endpoint macOS deve eseguire una delle distribuzioni supportate da Defender per endpoint.

  • Il server mirror può essere un server HTTP/HTTPS o un server di condivisione di rete, ad esempio un server NFS.

  • Il server mirror deve avere accesso agli URL seguenti:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • Il server mirror deve supportare bash o PowerShell.

  • Per il server mirror sono necessarie le specifiche di sistema minime seguenti:

    CPU Core RAM Disco libero Swap
    2 core (preferibilmente 4 core) 1 GB min (4 GB preferiti) 2GB Dipendente dal sistema

    Nota

    Questa configurazione può variare a seconda del numero di richieste gestite e del carico che ogni server deve elaborare.

Configurare il server mirror

Nota

La gestione e la proprietà del server mirror spettano esclusivamente al cliente, in quanto risiede nell'ambiente privato del cliente.

Qualsiasi server HTTP può essere usato come server mirror. Per il server mirror non è necessario che Defender per endpoint sia installato.

Mentre la gestione e la proprietà del server mirror si trova esclusivamente con il cliente, i due script Bash di esempio seguenti illustrano come usare Python 3 e Caddy per configurare un file server HTTP di base in macOS. Questi script vengono forniti solo a scopo illustrativo e devono essere adattati alle esigenze e all'ambiente specifici.

Per verificare che il file server HTTP sia configurato correttamente, passare a "https://localhost:8080".

Per i casi d'uso avanzati o di produzione, vedere la documentazione ufficiale del server HTTP Python e caddy:

Esaminare e adattare sempre gli script all'ambiente e ai requisiti di sicurezza.

Script di esempio: configurazione di un file server HTTP di base in macOS con Python 3

Lo script seguente avvia un server HTTP leggero Python 3 in grado di ospitare i file di aggiornamento offline scaricati da una directory specificata.

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

Script di esempio: configurazione di un file server HTTP di base in macOS usando Caddy

Lo script seguente installa e configura il server Web Caddy in macOS per ospitare i file di aggiornamento offline scaricati.

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

Ottieni lo script per il download offline dell'intelligence per la sicurezza

Microsoft mette a disposizione uno script per il download offline delle informazioni di sicurezza nel seguente repository GitHub: https://github.com/microsoft/mdatp-xplat.

Per ottenere lo script del downloader, seguire questa procedura:

Opzione 1: Clonare il repository (preferito)

Installare Git nel server mirror.

Passa alla directory in cui vuoi clonare il repo.

Eseguire il comando : git clone https://github.com/microsoft/mdatp-xplat.git

Opzione 2: Scaricare il file ZIP

Scaricare il file ZIP del repository: https://github.com/microsoft/mdatp-xplat/archive/refs/heads/master.zip.

Copiare il file ZIP nella cartella in cui si vuole mantenere lo script.

Estrarre la cartella compressa.

Nota

Pianificare un processo cron o un processo avviato per mantenere il file ZIP repo/scaricato aggiornato alla versione più recente a intervalli regolari.

Dopo aver clonato il repository o scaricato il file compresso, la struttura di directory locale deve corrispondere all'esempio seguente, che mostra lo script downloader e i relativi file di configurazione:

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

Nota

Esaminare il file README.md per comprendere in dettaglio come usare lo script.

Il file settings.json è costituito da alcune variabili che l'utente può configurare per determinare l'output dell'esecuzione dello script.

Nome campo Valore Descrizione
downloadFolder stringa Corrisponde al percorso in cui lo script scarica i file.
downloadLinuxUpdates bool Se impostato su true, lo script scarica gli aggiornamenti specifici di Linux nel downloadFolder.
logFilePath stringa Configura i log di diagnostica in una determinata cartella. Questo file può essere condiviso con Microsoft per il debug dello script in caso di problemi.
downloadMacUpdates bool Lo script scarica gli aggiornamenti specifici per Mac su downloadFolder.
downloadPreviewUpdates bool Scarica la versione di anteprima degli aggiornamenti disponibili per il sistema operativo specifico.
backupPreviousUpdates bool Consente allo script di copiare l'aggiornamento precedente nella cartella _back e i nuovi aggiornamenti vengono scaricati in downloadFolder.

Esegui lo script di download offline dell'intelligence per la sicurezza

Per eseguire manualmente lo script downloader, configurare i parametri nel file settings.json (ad esempio downloadFolder, downloadMacUpdatese backupPreviousUpdates) usando le descrizioni dei campi nello script downloader settings.json descrizioni dei campi e usare uno dei comandi seguenti in base al sistema operativo del server mirror:

In un server mirror basato su Bash (Linux o macOS), eseguire lo script della shell per scaricare il pacchetto di definizione offline più recente:

./xplat_offline_updates_download.sh

In un server mirror basato su Windows usare la versione di PowerShell dello script per scaricare il pacchetto di definizione offline:

./xplat_offline_updates_download.ps1

Nota

Pianifica un job cron o un job launchd in modo che esegua questo script e scarichi sul server mirror gli aggiornamenti più recenti dell’intelligence di sicurezza a intervalli regolari.

Ospitare gli aggiornamenti dell'intelligence di sicurezza offline nel server mirror

Dopo l'esecuzione dello script, le firme più recenti vengono scaricate nella cartella configurata nel file settings.json (updates.zip).

Dopo aver scaricato il file ZIP delle firme, è possibile usare il server mirror per ospitarlo. Il server mirror può essere ospitato usando uno qualsiasi dei server di condivisione HTTP/HTTPS/di rete.

Una volta che il server è ospitato, copiare il percorso assoluto del server ospitato (fino a, ma senza includere, la directory arch_*).

Ad esempio, se lo script viene eseguito con downloadFolder=/tmp/wdav-updatee il server HTTP (www.example.server.com:8000) ospita il percorso /tmp/wdav-update, l'URI corrispondente è: www.example.server.com:8000/mac/production/.

È anche possibile usare il percorso assoluto della directory (punto di montaggio locale/remoto) come /tmp/wdav-update/mac/production.

Dopo aver configurato il server mirror, propagare questo URL agli endpoint Mac impostandolo come offlineDefinitionUpdateUrl valore nel file di configurazione gestito (mdatp_managed.json) come descritto in Configurare gli endpoint macOS per gli aggiornamenti offline.

Configurare gli endpoint

Importante

Defender per Endpoint deve già essere installato sull'endpoint macOS ed è necessario disporre di autorizzazioni di root o sudo per scrivere in /etc/opt/microsoft/mdatp/managed/.

Usare il file di mdatp_managed.json di esempio seguente e aggiornare i parametri in base alla configurazione, quindi copiare il file nel percorso /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"
  }
}
Nome campo Valori Commenti
automaticDefinitionUpdateEnabled true/false Determina il comportamento di Defender per endpoint che tenta di eseguire gli aggiornamenti automaticamente, è attivato o disattivato rispettivamente.
definitionUpdatesInterval Numerico Tempo di intervallo tra ogni aggiornamento automatico delle firme (in secondi).
offlineDefinitionUpdateUrl stringa Valore URL generato come parte dell'installazione del server mirror. Può trattarsi dell'URL del server remoto o di una directory (punto di montaggio locale/remoto).
offlineDefinitionUpdate enabled/disabled Se impostato su enabled, la funzionalità "aggiornamento offline dell'intelligence di sicurezza" è abilitata e viceversa.
offlineDefinitionUpdateFallbackToCloud true/false Determinare l'approccio di aggiornamento di Defender per endpoint security intelligence quando "server mirror offline" non riesce a gestire la richiesta di aggiornamento. Se impostato su true, l'aggiornamento viene ritentato tramite il cloud Microsoft quando l'aggiornamento dell'intelligence di sicurezza offline non è riuscito. In caso contrario, viceversa.
offlineDefinitionUpdateVerifySig enabled/disabled Se impostato su enabled, le definizioni scaricate vengono verificate negli endpoint; in caso contrario, viceversa.

Verificare la configurazione

Per verificare se le impostazioni vengono applicate correttamente negli endpoint macOS, usare il comando seguente per visualizzare i campi di stato dell'aggiornamento delle definizioni, inclusi l'URL offline configurato e l'origine dell'aggiornamento:

mdatp health --details definitions

Un output di esempio sarà simile al frammento di codice seguente. Verificare che mostra definitions_status e up_to_date sia vuoto, che indica che definitions_update_fail_reason la configurazione dell'aggiornamento offline funziona correttamente:

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]

Attivare gli aggiornamenti delle funzionalità di intelligence per la sicurezza offline

  • Aggiornamento automatico

    Se il automaticDefinitionUpdateEnabled campo (che controlla se Defender per Endpoint tenta gli aggiornamenti automatici delle definizioni, come configurato nel file JSON gestito) e il offline_definition_update (nome di stato segnalato per il offlineDefinitionUpdate campo di configurazione gestita) nel file JSON gestito vengono impostati su true, gli "aggiornamenti di intelligence per la sicurezza offline" vengono attivati automaticamente a intervalli periodici.

    Per impostazione predefinita, questo intervallo periodico è di 8 ore. Può essere configurato impostando il definitionUpdatesInterval parametro nel file json gestito.

  • Aggiornamento manuale

    Per attivare manualmente l'aggiornamento dell'intelligence di sicurezza offline per scaricare le firme dal server mirror negli endpoint Mac, eseguire il comando seguente:

    mdatp definitions update
    

Controllare lo stato dell'aggiornamento

Dopo aver attivato l'"aggiornamento dell'intelligence per la sicurezza offline" tramite il metodo automatico o manuale, verificare che l'aggiornamento sia riuscito eseguendo il comando : mdatp health --details --definitions.

L'output di esempio seguente mostra i campi di integrità della definizione chiave. Verificare che definitions_status sia up_to_date e definitions_update_fail_reason sia vuoto:

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

Procedura per la risoluzione dei problemi comuni

Se gli aggiornamenti di Intelligence per la sicurezza offline non funzionano come previsto, seguire questa procedura per diagnosticare e risolvere il problema.

  • Controlla lo stato della funzionalità "aggiornamento dell'intelligence di sicurezza offline" utilizzando il comando seguente:

    mdatp health --details definitions
    

    Questo comando fornisce un messaggio di facile comprensione nella sezione definitions_update_fail_reason.

  • Verificare se offline_definition_update e offline_definition_update_verify_sig sono abilitati.

  • Controllare se definitions_update_source_uri è uguale a offline_definition_url_configured.

    • definitions_update_source_uri è l'origine da cui sono state scaricate le firme.
    • offline_definition_url_configured è l'origine da cui scaricare le firme, quella indicata nel file di configurazione gestito.
  • Eseguire un test di connettività per verificare che l'endpoint possa raggiungere il server mirror configurato e altri servizi necessari:

    mdatp connectivity test
    
  • Se la connettività ha esito positivo, ma le definizioni sono ancora obsolete, riprovare a aggiornare manualmente la definizione:

    mdatp definitions update
    

Vedere anche

Per altri dettagli, vedere gli articoli seguenti.