Condividi tramite


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

Questo documento descrive la funzionalità di aggiornamento di Intelligence per la sicurezza offline di Microsoft Defender per endpoint in 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 eseguono il pull delle firme dal server mirror a un intervallo predefinito.

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 eseguire il pull della versione della firma n-1 dalla cartella di backup ai 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.

Funzionamento dell'aggiornamento dell'intelligence per la 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 può essere visualizzato nell'interfaccia della riga di comando di mdatp.

Il flusso di processo per il download degli aggiornamenti dell'intelligence di sicurezza nel server mirror è illustrato nel diagramma seguente.

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

Il flusso di processo per gli aggiornamenti dell'intelligence di sicurezza nell'endpoint macOS è illustrato nel diagramma seguente.

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

  • Defender per endpoint versione 101.25012.0003 o successiva deve essere installato negli 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 (4 core preferiti) 1 GB min (4 GB preferiti) 2 GB 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 spettano esclusivamente al cliente, questa sezione presenta due script Bash di esempio che 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.

  • python_http_server.sh: usa il modulo server HTTP predefinito di Python 3 per gestire i file da una directory specificata.
  • caddy_http_server.sh: installa e configura il server Web Caddy per gestire i file da una directory specificata.

Per verificare che il servizio sia configurato correttamente dopo aver configurato il server, passare a "https://localhost:8080".

Per i casi d'uso di produzione o avanzati, vedere la documentazione ufficiale per ogni server:

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

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

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

Ottenere lo script del downloader di intelligence per la sicurezza offline

Microsoft ospita uno script di downloader di intelligence per la sicurezza offline nel repository GitHub seguente: 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.

Passare alla directory in cui si vuole clonare il repository.

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 la clonazione del repository o il download del file compresso, la struttura di directory locale deve essere la seguente:

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 Esegue il mapping al percorso in cui lo script scarica i file.
downloadLinuxUpdates bool Se impostato su true, lo script scarica gli aggiornamenti specifici di Linux in 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 di Mac in 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 _back cartella e i nuovi aggiornamenti vengono scaricati downloadFolderin .

Eseguire lo script del downloader di intelligence per la sicurezza offline

Per eseguire manualmente lo script del downloader, configurare i parametri nel file settings.json in base alla descrizione nella sezione precedente e usare uno dei comandi seguenti in base al sistema operativo del server mirror:

Bash:

./xplat_offline_updates_download.sh

Powershell:

./xplat_offline_updates_download.ps1

Nota

Pianificare un processo cron o un processo avviato per eseguire questo script per scaricare gli aggiornamenti di Security Intelligence più recenti nel server mirror 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 ospitato, copiare il percorso assoluto del server ospitato (fino alla directory arch_*, ma non inclusa).

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, è necessario propagare questo URL agli endpoint Mac come offlineDefinitionUpdateUrl in Configurazione gestita, come descritto nella sezione successiva.

Configurare gli endpoint

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 dell'intelligence per la sicurezza offline" è 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, eseguire il comando seguente:

mdatp health --details definitions

Un output di esempio sarà simile al frammento di codice seguente:

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 i campi automaticDefinitionUpdateEnabled e offline_definition_update nel json gestito sono impostati su true, gli "aggiornamenti dell'intelligence di 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.

Verificare i campi seguenti:

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

Procedura per la risoluzione dei problemi comuni

  • Controllare lo stato della funzionalità "aggiornamento dell'intelligence per la sicurezza offline" usando il comando seguente:

    mdatp health --details definitions
    

    Questo comando fornisce un messaggio descrittivo 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.
  • Provare a eseguire il test di connettività per verificare se il server mirror è raggiungibile dall'host:

    mdatp connectivity test
    
  • Provare a attivare un aggiornamento manuale usando il comando seguente:

    mdatp definitions update
    

Vedere anche