Partager via


Configurer les mises à jour de security intelligence hors connexion pour Microsoft Defender pour point de terminaison sur macOS

Ce document décrit la fonctionnalité de mise à jour du renseignement de sécurité hors connexion de Microsoft Defender pour point de terminaison sur macOS.

Cette fonctionnalité permet à un organization d’utiliser un serveur d’hébergement local (appelé serveur miroir dans ce document) pour mettre à jour les informations de sécurité (appelées définitions ou signatures dans ce document) sur les points de terminaison macOS qui ont une exposition limitée ou nulle à Internet.

Un serveur miroir est tout serveur de l’environnement du client qui peut se connecter au cloud Microsoft pour télécharger les signatures. D’autres points de terminaison macOS extrayent les signatures du serveur miroir à un intervalle prédéfini.

Avantages clés

  • Votre équipe de sécurité peut contrôler et gérer la fréquence des téléchargements de signatures sur le serveur local et la fréquence à laquelle les points de terminaison extrayent les signatures du serveur local.

  • Vous disposez d’une couche supplémentaire de protection et de contrôle, car les signatures téléchargées peuvent être testées sur un appareil de test avant d’être propagées à l’ensemble du parc.

  • Vous avez besoin de moins de bande passante réseau, car un seul serveur local interroge le cloud Microsoft pour obtenir les dernières signatures au nom de l’ensemble de votre flotte.

  • Votre serveur miroir peut exécuter Windows, Mac ou Linux, et vous n’avez pas besoin d’installer Defender pour point de terminaison sur ce serveur.

  • Vous bénéficiez de la protection antivirus la plus récente, car les signatures sont toujours téléchargées avec le dernier moteur antivirus compatible.

  • Les versions antérieures des signatures (n-1) sont déplacées vers un dossier de sauvegarde sur votre serveur miroir dans chaque itération. En cas de problème avec les dernières mises à jour, vous pouvez extraire la version de signature n-1 du dossier de sauvegarde vers vos appareils.

  • Dans les rares cas où la mise à jour hors connexion échoue, vous pouvez configurer une option de secours pour obtenir des mises à jour en ligne à partir du cloud Microsoft.

Fonctionnement de la mise à jour du renseignement de sécurité hors connexion

Les organisations doivent configurer un serveur miroir, qui est un serveur web/NFS local accessible par le cloud Microsoft.

Les signatures sont téléchargées à partir du cloud Microsoft vers ce serveur miroir en exécutant un script à l’aide du planificateur de tâches/travaux cron sur le serveur local.

Les points de terminaison macOS exécutant Defender pour point de terminaison extrayent les signatures téléchargées à partir de ce serveur miroir à un intervalle de temps défini par l’utilisateur.

Les signatures extraites du serveur local vers les points de terminaison macOS sont d’abord vérifiées avant d’être chargées dans le moteur antivirus.

Pour déclencher et configurer le processus de mise à jour, mettez à jour le fichier json de configuration managé sur les points de terminaison macOS.

Les status de la mise à jour sont visibles sur l’interface CLI mdatp.

Le flux de processus de téléchargement des mises à jour de veille de sécurité sur le serveur miroir est illustré dans le diagramme suivant.

Diagramme de flux de processus sur le serveur miroir pour télécharger les mises à jour security intelligence

Le flux de processus pour les mises à jour du renseignement de sécurité sur le point de terminaison macOS est illustré dans le diagramme suivant.

Diagramme de flux de processus sur le point de terminaison macOS pour les mises à jour security intelligence

Le serveur miroir peut exécuter l’un des systèmes d’exploitation suivants :

  • Linux (n’importe quelle saveur)
  • Windows (n’importe quelle version)
  • Mac (n’importe quelle version)

Configuration requise

  • Defender pour point de terminaison version 101.25012.0003 ou ultérieure doit être installé sur les points de terminaison macOS.

  • Les points de terminaison macOS doivent être connectés au serveur miroir.

  • Le point de terminaison macOS doit exécuter l’une des distributions prises en charge par Defender pour point de terminaison.

  • Le serveur miroir peut être un serveur HTTP/HTTPS ou un serveur de partage réseau, par exemple un serveur NFS.

  • Le serveur miroir doit avoir accès aux URL suivantes :

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • Le serveur miroir doit prendre en charge bash ou PowerShell.

  • Les spécifications système minimales suivantes sont requises pour le serveur miroir :

    Cœur du processeur Mémoire RAM Disque libre Swap
    2 cœurs (4 cœurs préférés) 1 Go Min (préféré 4 Go) 2 Go Dépendant du système

    Remarque

    Cette configuration peut varier en fonction du nombre de demandes traitées et de la charge que chaque serveur doit traiter.

Configurer le serveur miroir

Remarque

La gestion et la propriété du serveur miroir appartiennent uniquement au client, car il réside dans l’environnement privé du client.

N’importe quel serveur HTTP peut être utilisé comme serveur miroir. Defender pour point de terminaison n’a pas besoin d’être installé sur le serveur miroir.

Bien que la gestion et la propriété du serveur miroir incombent uniquement au client, cette section présente deux exemples de scripts Bash qui montrent comment utiliser Python 3 et Caddy pour configurer un serveur de fichiers HTTP de base sur macOS. Ces scripts sont donnés à titre d’illustration uniquement et doivent être adaptés à vos besoins et à votre environnement spécifiques.

  • python_http_server.sh: utilise le module serveur HTTP intégré de Python 3 pour traiter les fichiers à partir d’un répertoire spécifié.
  • caddy_http_server.sh: installe et configure le serveur web Caddy pour traiter les fichiers à partir d’un répertoire spécifié.

Pour case activée que le service est correctement configuré une fois que vous avez configuré le serveur, accédez à «https://localhost:8080" ;.

Pour les cas d’usage de production ou avancés, reportez-vous à la documentation officielle de chaque serveur :

Examinez et adaptez toujours les scripts à votre environnement et à vos exigences de sécurité.

Exemple de script : Configuration d’un serveur de fichiers HTTP de base sur macOS à l’aide de 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"

Exemple de script : Configuration d’un serveur de fichiers HTTP de base sur macOS à l’aide de 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

Obtenir le script du téléchargeur security intelligence hors connexion

Microsoft héberge un script de téléchargement de security intelligence hors connexion dans le dépôt GitHub suivant : https://github.com/microsoft/mdatp-xplat.

Pour obtenir le script du téléchargeur, procédez comme suit :

Option 1 : Cloner le dépôt (recommandé)

Installez git sur le serveur miroir.

Accédez au répertoire dans lequel vous souhaitez cloner le dépôt.

Exécutez la commande : git clone https://github.com/microsoft/mdatp-xplat.git

Option 2 : Télécharger le fichier zip

Téléchargez le fichier zip du référentiel : https://github.com/microsoft/mdatp-xplat/archive/refs/heads/master.zip.

Copiez le fichier zip dans le dossier dans lequel vous souhaitez conserver le script.

Extrayez le dossier compressé.

Remarque

Planifiez un travail cron ou un travail lancé pour que le dépôt/le fichier zip téléchargé reste à jour vers la dernière version à intervalles réguliers.

Après avoir cloné le référentiel ou téléchargé le fichier compressé, la structure du répertoire local doit être la suivante :

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

Remarque

Parcourez le fichier README.md pour comprendre en détail comment utiliser le script.

Le fichier settings.json se compose de quelques variables que l’utilisateur peut configurer pour déterminer la sortie de l’exécution du script.

Nom du champ Valeur Description
downloadFolder string Mappe à l’emplacement où le script télécharge les fichiers.
downloadLinuxUpdates bool Quand la valeur est truedéfinie sur , le script télécharge les mises à jour spécifiques à Linux pour .downloadFolder
logFilePath string Configure les journaux de diagnostic dans un dossier donné. Ce fichier peut être partagé avec Microsoft pour déboguer le script en cas de problème.
downloadMacUpdates bool Le script télécharge les mises à jour spécifiques à Mac pour .downloadFolder
downloadPreviewUpdates bool Télécharge la préversion des mises à jour disponibles pour le système d’exploitation spécifique.
backupPreviousUpdates bool Permet au script de copier la mise à jour précédente dans le _back dossier , et les nouvelles mises à jour sont téléchargées downloadFoldersur .

Exécuter le script du téléchargeur security intelligence hors connexion

Pour exécuter manuellement le script du téléchargeur, configurez les paramètres dans le fichier settings.json conformément à la description de la section précédente et utilisez l’une des commandes suivantes basées sur le système d’exploitation du serveur miroir :

Bash:

./xplat_offline_updates_download.sh

Powershell:

./xplat_offline_updates_download.ps1

Remarque

Planifiez un travail cron ou un travail lancé pour exécuter ce script afin de télécharger les dernières mises à jour security intelligence sur le serveur miroir à intervalles réguliers.

Héberger les mises à jour du renseignement de sécurité hors connexion sur le serveur miroir

Une fois le script exécuté, les dernières signatures sont téléchargées dans le dossier configuré dans le fichier settings.json (updates.zip).

Une fois le fichier zip de signatures téléchargé, le serveur miroir peut être utilisé pour l’héberger. Le serveur miroir peut être hébergé à l’aide de n’importe quel serveur de partage http/HTTPS/réseau.

Une fois hébergé, copiez le chemin d’accès absolu du serveur hébergé (jusqu’au répertoire arch_* sans l’inclure).

Par exemple, si le script est exécuté avec downloadFolder=/tmp/wdav-updateet que le serveur HTTP (www.example.server.com:8000) héberge le chemin /tmp/wdav-update, l’URI correspondant est : www.example.server.com:8000/mac/production/.

Nous pouvons également utiliser le chemin d’accès absolu du répertoire (point de montage local/distant) comme /tmp/wdav-update/mac/production.

Une fois le serveur miroir configuré, nous devons propager cette URL aux points de terminaison Mac en tant que offlineDefinitionUpdateUrl dans la configuration managée, comme décrit dans la section suivante.

Configurer les points de terminaison

Utilisez l’exemple de fichier mdatp_managed.json suivant et mettez à jour les paramètres en fonction de la configuration, puis copiez le fichier à l’emplacement /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"
  }
}
Nom du champ Valeurs Commentaires
automaticDefinitionUpdateEnabled true/false Détermine le comportement de Defender pour point de terminaison qui tente d’effectuer des mises à jour automatiquement, est activé ou désactivé respectivement.
definitionUpdatesInterval Numérique Intervalle entre chaque mise à jour automatique des signatures (en secondes).
offlineDefinitionUpdateUrl string Valeur d’URL générée dans le cadre de la configuration du serveur miroir. Il peut s’agir de l’URL du serveur distant ou d’un répertoire (point de montage local/distant).
offlineDefinitionUpdate enabled/disabled enabledQuand la valeur est définie sur , la fonctionnalité « mise à jour du renseignement de sécurité hors connexion » est activée, et vice versa.
offlineDefinitionUpdateFallbackToCloud true/false Déterminez l’approche de mise à jour du renseignement de sécurité defender pour point de terminaison lorsque « serveur miroir hors connexion » ne parvient pas à traiter la demande de mise à jour. Si la truevaleur est définie sur , la mise à jour est retentée via le cloud Microsoft en cas d’échec de la « mise à jour du renseignement de sécurité hors connexion » ; sinon, inversement.
offlineDefinitionUpdateVerifySig enabled/disabled enabledQuand la valeur est définie sur , les définitions téléchargées sont vérifiées sur les points de terminaison ; sinon, inversement.

Vérifier la configuration

Pour tester si les paramètres sont appliqués correctement sur les points de terminaison macOS, exécutez la commande suivante :

mdatp health --details definitions

Un exemple de sortie ressemble à l’extrait de code suivant :

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]

Déclencher les mises à jour du renseignement de sécurité hors connexion

  • Mise à jour automatique

    Si les champs automaticDefinitionUpdateEnabled et offline_definition_update dans le json managé sont définis sur true, les « mises à jour de veille de sécurité hors connexion » sont déclenchées automatiquement à intervalles réguliers.

    Par défaut, cet intervalle périodique est de 8 heures. Il peut être configuré en définissant le definitionUpdatesInterval paramètre dans le json managé.

  • Mise à jour manuelle

    Pour déclencher manuellement la « mise à jour de security intelligence hors connexion » afin de télécharger les signatures à partir du serveur miroir sur les points de terminaison Mac, exécutez la commande suivante :

    mdatp definitions update
    

Vérifier les status de mise à jour

Après avoir déclenché la « mise à jour du renseignement de sécurité hors connexion » par la méthode automatique ou manuelle, vérifiez que la mise à jour a réussi en exécutant la commande : mdatp health --details --definitions.

Vérifiez les champs suivants :

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

Étapes communes de dépannage

  • Vérifiez la status de la fonctionnalité « mise à jour du renseignement de sécurité hors connexion » à l’aide de la commande suivante :

    mdatp health --details definitions
    

    Cette commande fournit un message convivial dans la section definitions_update_fail_reason .

  • Vérifiez si offline_definition_update et offline_definition_update_verify_sig sont activés.

  • Vérifiez si definitions_update_source_uri est égal à offline_definition_url_configured.

    • definitions_update_source_uri est la source à partir de laquelle les signatures ont été téléchargées.
    • offline_definition_url_configured est la source à partir de laquelle les signatures doivent être téléchargées, celle mentionnée dans le fichier de configuration managé.
  • Essayez d’effectuer le test de connectivité à case activée si miroir serveur est accessible à partir de l’hôte :

    mdatp connectivity test
    
  • Essayez de déclencher une mise à jour manuelle à l’aide de la commande suivante :

    mdatp definitions update
    

Voir aussi