Compartilhar via


Configurar atualizações de informações de segurança offline para Microsoft Defender para Ponto de Extremidade no macOS

Este documento descreve a funcionalidade Atualização de Informações de Segurança Offline do Microsoft Defender para Ponto de Extremidade no macOS.

Esta funcionalidade permite que uma organização utilize um servidor de alojamento local (referido como um servidor de espelho neste documento) para atualizar as informações de segurança (referidas neste documento como definições ou assinaturas) em pontos finais macOS que tenham ou não exposição à Internet.

Um servidor espelho é qualquer servidor no ambiente do cliente que se pode ligar à cloud da Microsoft para transferir as assinaturas. Outros pontos finais do macOS extraem as assinaturas do servidor espelho num intervalo predefinido.

Principais benefícios

  • A sua equipa de segurança pode controlar e gerir a frequência das transferências de assinaturas para o servidor local e a frequência com que os pontos finais extraem assinaturas do servidor local.

  • Tem uma camada adicional de proteção e controlo, uma vez que as assinaturas transferidas podem ser testadas num dispositivo de teste antes de serem propagadas para toda a frota.

  • Precisa de menos largura de banda de rede, uma vez que apenas um servidor local consulta a microsoft cloud para obter as assinaturas mais recentes em nome de toda a sua frota.

  • O servidor espelho pode executar o Windows, Mac ou Linux e não tem de instalar o Defender para Endpoint nesse servidor.

  • Obtém a proteção antivírus mais atualizada, porque as assinaturas são sempre transferidas juntamente com o motor antivírus compatível mais recente.

  • As versões mais antigas das assinaturas (n-1) são movidas para uma pasta de cópia de segurança no servidor espelho em cada iteração. Se existir um problema com as atualizações mais recentes, pode solicitar a versão de assinatura n-1 da pasta de cópia de segurança para os seus dispositivos.

  • No caso raro de a atualização offline falhar, pode configurar uma opção de contingência para obter atualizações online a partir da cloud da Microsoft.

Como funciona a atualização de informações de segurança offline

As organizações precisam de configurar um servidor espelho, que é um servidor Web/NFS local acessível pela cloud da Microsoft.

As assinaturas são transferidas da cloud da Microsoft para este servidor espelho ao executar um script com o cron job/task scheduler no servidor local.

Os pontos finais do macOS que executam o Defender para Endpoint extraem as assinaturas transferidas deste servidor espelho num intervalo de tempo definido pelo utilizador.

As assinaturas extraídas para os pontos finais do macOS a partir do servidor local são primeiro verificadas antes de serem carregadas para o motor antivírus.

Para acionar e configurar o processo de atualização, atualize o ficheiro json de configuração gerida nos pontos finais do macOS.

A status da atualização pode ser vista na CLI do mdatp.

O fluxo de processo para transferir atualizações de informações de segurança para o servidor espelho é ilustrado no diagrama seguinte.

Diagrama de fluxo de processos no Servidor Espelhado para transferir as atualizações de informações de segurança

O fluxo de processo para atualizações de informações de segurança no ponto final do macOS é ilustrado no diagrama seguinte.

Diagrama de fluxo de processos no ponto final do macOS para atualizações de informações de segurança

O servidor espelho pode executar qualquer um dos seguintes sistemas operativos:

  • Linux (qualquer sabor)
  • Windows (qualquer versão)
  • Mac (qualquer versão)

Pré-requisitos

  • A versão 101.25012.0003 ou posterior do Defender para Endpoint tem de ser instalada nos pontos finais do macOS.

  • Os pontos finais do macOS têm de ter conectividade ao servidor espelho.

  • O ponto final do macOS tem de estar a executar qualquer uma das distribuições suportadas pelo Defender para Endpoint.

  • O servidor espelho pode ser um servidor HTTP/HTTPS ou um servidor de partilha de rede, por exemplo, um servidor NFS.

  • O servidor espelho tem de ter acesso aos seguintes URLs:

    • https://github.com/microsoft/mdatp-xplat.git
    • https://go.microsoft.com/fwlink/?linkid=2144709
  • O servidor espelho deve suportar o bash ou o PowerShell.

  • São necessárias as seguintes especificações mínimas do sistema para o servidor espelho:

    Núcleo da CPU RAM Disco gratuito Trocar
    2 núcleos (Preferencial 4 Núcleos) 1 GB Min (4 GB Preferenciais) 2 GB Dependente do Sistema

    Observação

    Esta configuração pode variar consoante o número de pedidos que são servidos e a carga que cada servidor tem de processar.

Configurar o servidor espelho

Observação

A gestão e propriedade do servidor espelho reside apenas no cliente, uma vez que reside no ambiente privado do cliente.

Qualquer servidor HTTP pode ser utilizado como um servidor espelho. O servidor espelho não precisa de ter o Defender para Endpoint instalado.

Embora a gestão e a propriedade do servidor espelho estejam exclusivamente no cliente, esta secção apresenta dois scripts Bash de exemplo que demonstram como utilizar o Python 3 e o Caddy para configurar um servidor de ficheiros HTTP básico no macOS. Estes scripts são fornecidos apenas para fins de ilustração e devem ser adaptados às suas necessidades e ambiente específicos.

  • python_http_server.sh: utiliza o módulo de servidor HTTP incorporado do Python 3 para servir ficheiros de um diretório especificado.
  • caddy_http_server.sh: instala e configura o servidor Web da Caddy para servir ficheiros a partir de um diretório especificado.

Para marcar que o serviço está configurado corretamente depois de configurar o servidor, navegue para "https://localhost:8080".

Para casos de produção ou utilização avançada, veja a documentação oficial de cada servidor:

Reveja e adapte sempre os scripts ao seu ambiente e requisitos de segurança.

Script de exemplo: Configurar um servidor de ficheiros HTTP básico no macOS com o 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 de exemplo: configurar um servidor de ficheiros HTTP básico no macOS com o 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

Obter o script do transferidor de informações de segurança offline

A Microsoft aloja um script do transferidor de informações de segurança offline no seguinte repositório do GitHub: https://github.com/microsoft/mdatp-xplat.

Execute os seguintes passos para obter o script do downloader:

Opção 1: Clonar o repositório (preferencial)

Instale o git no servidor espelho.

Navegue para o diretório onde pretende clonar o repositório.

Execute o comando: git clone https://github.com/microsoft/mdatp-xplat.git

Opção 2: Transferir o ficheiro zip

Transfira o ficheiro zip do repositório: https://github.com/microsoft/mdatp-xplat/archive/refs/heads/master.zip.

Copie o ficheiro zip para a pasta onde pretende manter o script.

Extraia a pasta zipada.

Observação

Agende uma tarefa cron ou uma tarefa iniciada para manter o ficheiro zip repositório/transferido atualizado para a versão mais recente em intervalos regulares.

Depois de clonar o repositório ou transferir o ficheiro zipado, a estrutura do diretório local deve ser a seguinte:

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

Observação

Percorra o ficheiro README.md para compreender detalhadamente como utilizar o script.

O ficheiro settings.json consiste em algumas variáveis que o utilizador pode configurar para determinar o resultado da execução do script.

Nome do Campo Valor Descrição
downloadFolder string Mapeia para a localização para onde o script transfere os ficheiros.
downloadLinuxUpdates bool Quando definido como true, o script transfere as atualizações específicas do Linux para o downloadFolder.
logFilePath string Configura os registos de diagnóstico numa determinada pasta. Este ficheiro pode ser partilhado com a Microsoft para depurar o script, caso existam problemas.
downloadMacUpdates bool O script transfere as atualizações específicas do Mac para o downloadFolder.
downloadPreviewUpdates bool Transfere a versão de pré-visualização das atualizações disponíveis para o SO específico.
backupPreviousUpdates bool Permite que o script copie a atualização anterior na _back pasta e as novas atualizações são transferidas para downloadFolder.

Executar o script do transferidor de informações de segurança offline

Para executar manualmente o script do transferidor, configure os parâmetros no ficheiro settings.json de acordo com a descrição na secção anterior e utilize um dos seguintes comandos com base no SO do servidor espelho:

Bash:

./xplat_offline_updates_download.sh

PowerShell:

./xplat_offline_updates_download.ps1

Observação

Agende uma tarefa cron ou uma tarefa iniciada para executar este script para transferir as atualizações de informações de segurança mais recentes para o servidor de espelho em intervalos regulares.

Alojar as atualizações de informações de segurança offline no servidor espelho

Depois de o script ser executado, as assinaturas mais recentes são transferidas para a pasta configurada no ficheiro de settings.json (updates.zip).

Assim que o zip de assinaturas for transferido, o servidor espelho pode ser utilizado para alojá-lo. O servidor espelho pode ser alojado com qualquer um dos servidores de partilha http/HTTPS/rede.

Depois de alojado, copie o caminho absoluto do servidor alojado (até ao diretório arch_*).

Por exemplo, se o script for executado com downloadFolder=/tmp/wdav-updatee o servidor HTTP (www.example.server.com:8000) estiver a alojar o caminho /tmp/wdav-update, o URI correspondente será: www.example.server.com:8000/mac/production/.

Também podemos utilizar o caminho absoluto do diretório (ponto de montagem local/remoto) como /tmp/wdav-update/mac/production.

Assim que o servidor espelho estiver configurado, temos de propagar este URL para os pontos finais do Mac como no offlineDefinitionUpdateUrl na Configuração Gerida, conforme descrito na secção seguinte.

Configurar os pontos finais

Utilize o seguinte exemplo mdatp_managed.json ficheiro e atualize os parâmetros de acordo com a configuração e, em seguida, copie o ficheiro para a localização /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 do Campo Valores Comentários
automaticDefinitionUpdateEnabled true/false Determina o comportamento do Defender para Endpoint ao tentar efetuar atualizações automaticamente, é ativado ou desativado, respetivamente.
definitionUpdatesInterval numérico Tempo de intervalo entre cada atualização automática de assinaturas (em segundos).
offlineDefinitionUpdateUrl string Valor do URL gerado como parte da configuração do servidor espelho. Isto pode ser em termos do URL do servidor remoto ou de um diretório (ponto de montagem local/remoto).
offlineDefinitionUpdate enabled/disabled Quando definida como enabled, a funcionalidade "atualização de informações de segurança offline" está ativada e vice-versa.
offlineDefinitionUpdateFallbackToCloud true/false Determine a abordagem de atualização de informações de segurança do Defender para Endpoint quando o "servidor espelho offline" não conseguir cumprir o pedido de atualização. Se estiver definida como true, a atualização será repetida através da cloud da Microsoft quando a "atualização de informações de segurança offline" falhou; caso contrário, vice-versa.
offlineDefinitionUpdateVerifySig enabled/disabled Quando definidas como enabled, as definições transferidas são verificadas nos pontos finais; caso contrário, vice-versa.

Verificar a configuração

Para testar se as definições são aplicadas corretamente nos pontos finais do macOS, execute o seguinte comando:

mdatp health --details definitions

Uma saída de exemplo teria um aspeto semelhante ao seguinte fragmento de código:

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]

Acionar as atualizações de informações de segurança offline

  • Atualização automática

    Se os campos automaticDefinitionUpdateEnabled e offline_definition_update no json gerido estiverem definidos como true, as "atualizações de informações de segurança offline" são acionadas automaticamente em intervalos periódicos.

    Por predefinição, este intervalo periódico é de 8 horas. Pode ser configurado ao definir o definitionUpdatesInterval parâmetro no json gerido.

  • Atualização Manual

    Para acionar a "atualização de informações de segurança offline" manualmente para transferir as assinaturas do servidor espelho nos pontos finais do Mac, execute o seguinte comando:

    mdatp definitions update
    

Verificar status de atualização

Depois de acionar a "atualização de informações de segurança offline" através do método automático ou manual, verifique se a atualização foi efetuada com êxito ao executar o comando: mdatp health --details --definitions.

Verifique os seguintes campos:

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

Etapas comuns de solução de problemas

  • Verifique a status da funcionalidade "atualização de informações de segurança offline" com o seguinte comando:

    mdatp health --details definitions
    

    Este comando fornece uma mensagem amigável na secção definitions_update_fail_reason .

  • Verifique se offline_definition_update e offline_definition_update_verify_sig estão ativados.

  • Verifique se definitions_update_source_uri é igual a offline_definition_url_configured.

    • definitions_update_source_uri é a origem de onde as assinaturas foram transferidas.
    • offline_definition_url_configured é a origem de onde as assinaturas devem ser transferidas, a mencionada no ficheiro de configuração gerida.
  • Experimente executar o teste de conectividade para marcar se espelho servidor estiver acessível a partir do anfitrião:

    mdatp connectivity test
    
  • Tente acionar uma atualização manual com o seguinte comando:

    mdatp definitions update
    

Confira também