Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Visão geral
Este documento descreve o recurso Atualização offline da inteligência de segurança 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 possa se conectar à nuvem da Microsoft para baixar as assinaturas. Outros pontos finais do macOS extraem as assinaturas do servidor espelho num intervalo predefinido.
Antes de começar, verifique se Defender para o Ponto de Extremidade versão 101.25012.0003 ou posterior está instalado nos pontos de extremidade do macOS, os pontos de extremidade podem alcançar o servidor espelho e o servidor espelho tem acesso à Internet para baixar assinaturas. Para obter a lista completa, consulte a seção de pré-requisitos para atualizações de inteligência de segurança offline mais adiante neste artigo.
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.
Você obtém a proteção antivírus mais atualizada, porque as assinaturas são sempre baixadas junto com a versão mais recente compatível do mecanismo antivírus.
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 houver algum problema com as atualizações mais recentes, você pode recuperar da pasta de backup a versão n-1 da assinatura para 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.
O status da atualização de inteligência de segurança offline pode ser visto na CLI do mdatp.
O diagrama a seguir mostra como as atualizações de inteligência de segurança são baixadas da nuvem Microsoft para o servidor espelho.
O diagrama a seguir mostra como os pontos de extremidade do macOS efetuam pull e verificam as atualizações de inteligência de segurança do servidor espelho.
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.githttps://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 mín. (4 GB recomendado) 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 o gerenciamento e a propriedade do servidor espelho residem apenas no cliente, os dois scripts bash de exemplo a seguir demonstram como usar Python 3 e Caddy para configurar um servidor de arquivos 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.
-
Exemplo Python script de servidor HTTP (
python_http_server.sh): usa o módulo interno do servidor HTTP do Python 3 para fornecer arquivos de um diretório especificado. -
Exemplo de script de servidor HTTP do Caddy (
caddy_http_server.sh): instala e configura o servidor Web Caddy para fornecer arquivos de um diretório especificado.
Para verificar se o servidor de arquivos HTTP está configurado corretamente, navegue até "https://localhost:8080".
Para casos de produção ou de uso avançado, consulte a documentação oficial do Python http e da documentação do Caddy:
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
O script a seguir inicia um servidor HTTP Python 3 leve que pode hospedar os arquivos de atualização offline baixados de um diretório especificado.
#!/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
O script a seguir instala e configura o servidor Web Caddy no macOS para hospedar os arquivos de atualização offline baixados.
#!/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
Baixe o script de download offline da inteligência de segurança
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
Baixe o arquivo 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 recortada.
Observação
Agende uma tarefa cron ou uma tarefa do launchd para manter o repositório ou o arquivo ZIP baixado sempre atualizados para a versão mais recente, em intervalos regulares.
Depois de clonar o repositório ou baixar o arquivo compactado, a estrutura do diretório local deve corresponder ao exemplo a seguir, que mostra o script do downloader e seus arquivos de configuração:
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 |
cadeia | Mapeia para a localização para onde o script transfere os ficheiros. |
downloadLinuxUpdates |
bool | Quando definido como true, o script baixa as atualizações específicas do Linux para o downloadFolder. |
logFilePath |
cadeia | 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 | Baixa a versão de pré-visualização das atualizações disponíveis para o sistema operacional 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 downloader, configure os parâmetros no arquivo settings.json (como downloadFolder, downloadMacUpdatese backupPreviousUpdates) usando as descrições de campo no script do downloader settings.json descrições de campo e use um dos seguintes comandos com base no sistema operacional do servidor espelho:
Em um servidor espelho baseado em Bash (Linux ou macOS), execute o script de shell para baixar o pacote de definição offline mais recente:
./xplat_offline_updates_download.sh
Em um servidor espelho baseado em Windows, use a versão do PowerShell do script para baixar o pacote de definição offline:
./xplat_offline_updates_download.ps1
Observação
Agende uma tarefa cron ou uma tarefa do launchd para executar este script e baixar as atualizações mais recentes de inteligência de segurança para o servidor espelho em intervalos regulares.
Hospedar as atualizações offline de inteligência de segurança 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 hospedado em qualquer um dos servidores HTTP/HTTPS/de compartilhamento de rede.
Depois de hospedar o servidor, copie o caminho absoluto do servidor hospedado (até, mas sem incluir, o 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.
Depois que o servidor espelho for configurado, propague essa URL para os pontos de extremidade do Mac definindo-a como o offlineDefinitionUpdateUrl valor no arquivo de configuração gerenciada (mdatp_managed.json), conforme descrito em Configurar os pontos de extremidade do macOS para atualizações offline.
Configurar os pontos finais
Importante
O Defender para Ponto de Extremidade já deve estar instalado no dispositivo macOS, e você precisa de permissões de root ou sudo para gravar em /etc/opt/microsoft/mdatp/managed/.
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 |
cadeia | 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 qual abordagem de atualização de inteligência de segurança do Defender para Endpoint deve ser usada quando o "servidor espelho offline" não conseguir atender à solicitação 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 configurações são aplicadas corretamente nos pontos de extremidade do macOS, use o seguinte comando para exibir os campos de status de atualização de definição, incluindo a URL offline configurada e a fonte de atualização:
mdatp health --details definitions
Uma saída de exemplo se pareceria com o snippet de código a seguir. Verifique se isso definitions_status mostra up_to_date e definitions_update_fail_reason está vazio, o que indica que a configuração de atualização offline está funcionando corretamente:
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 o
automaticDefinitionUpdateEnabledcampo (que controla se Defender para endpoint tenta atualizações de definição automática, conforme configurado no arquivo JSON gerenciado) e ooffline_definition_update(o nome de status relatado para oofflineDefinitionUpdatecampo de configuração gerenciado) no json gerenciado são definidos comotrue, em seguida, as "atualizações de inteligência de segurança offline" são disparadas automaticamente em intervalos periódicos.Por predefinição, este intervalo periódico é de 8 horas. Pode ser configurado ao definir o
definitionUpdatesIntervalparâ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.
A saída de exemplo a seguir mostra os campos de integridade da definição de chave. Confirme se definitions_status está up_to_date e definitions_update_fail_reason está vazio:
user@vm:~$ mdatp health --details definitions
...
definitions_status : "up_to_date"
...
definitions_update_fail_reason : ""
...
Etapas comuns de solução de problemas
Se as atualizações de inteligência de segurança offline não estiverem funcionando conforme o esperado, use as etapas a seguir para diagnosticar e resolver o problema.
Verifique a status da funcionalidade "atualização de informações de segurança offline" com o seguinte comando:
mdatp health --details definitionsEste comando fornece uma mensagem amigável na seção definitions_update_fail_reason.
Verifique se
offline_definition_updateeoffline_definition_update_verify_sigestão ativados.Verifique se
definitions_update_source_urié igual aoffline_definition_url_configured.-
definitions_update_source_urié a fonte da qual as assinaturas foram baixadas. -
offline_definition_url_configuredé a fonte da qual as assinaturas devem ser baixadas, a mencionada no arquivo de configuração gerenciado.
-
Execute um teste de conectividade para confirmar se o ponto de extremidade pode alcançar o servidor espelho configurado e outros serviços necessários:
mdatp connectivity testSe a conectividade for bem-sucedida, mas as definições ainda estiverem desatualizadas, repita a atualização de definição manualmente:
mdatp definitions update
Confira também
Para obter mais detalhes, consulte os artigos a seguir.