Compartilhar via


Segurança de extensões

Este artigo descreve os conceitos básicos das extensões de VM para servidores habilitados para Azure Arc e detalha como as configurações de extensão podem ser personalizadas.

Noções básicas de extensão

As extensões de VM para servidores habilitados para Azure Arc são complementos opcionais que permitem outras funcionalidades, como monitoramento, gerenciamento de patch e execução de script. As extensões são publicadas pela Microsoft e selecionam terceiros no Azure Marketplace e armazenadas em contas de armazenamento gerenciadas pela Microsoft. Todas as extensões são verificadas quanto ao malware como parte do processo de publicação. As extensões para servidores habilitados para Azure Arc são idênticas às disponíveis para VMs do Azure, garantindo consistência em seus ambientes operacionais.

As extensões são baixadas diretamente do Armazenamento do Microsoft Azure (*.blob.core.windows.net) no momento em que são instaladas ou atualizadas, a menos que você tenha configurado pontos de extremidade privados. As contas de armazenamento são alteradas regularmente e não podem ser previstas com antecedência. Quando pontos de extremidade privados são usados, as extensões são criadas por meio do URL regional para o serviço do Azure Arc.

Um arquivo de catálogo assinado digitalmente é baixado separadamente do pacote de extensão e usado para verificar a integridade de cada extensão antes que o gerenciador de extensões abra ou execute o pacote de extensão. Se o arquivo ZIP baixado para a extensão não corresponder ao conteúdo no arquivo de catálogo, a operação de extensão será anulada.

As extensões podem usar configurações para personalizar ou configurar a instalação, como URLs de proxy ou chaves de API para conectar um agente de monitoramento ao serviço de nuvem. As configurações de extensão vêm em dois tipos: configurações regulares e configurações protegidas. As configurações protegidas não são mantidas no Azure e são criptografadas em repouso em seu computador local.

Todas as operações de extensão são originadas do Azure por meio de uma chamada à API, CLI, PowerShell ou ação do Portal. Esse design garante que qualquer ação para instalar, atualizar ou atualizar uma extensão em um servidor seja registrada no Log de Atividades do Azure. O agente do Azure Connected Machine permite que as extensões sejam removidas localmente para fins de solução de problemas e limpeza. No entanto, se a extensão for removida localmente e o serviço ainda esperar que o computador tenha a extensão instalada, ela será reinstalada na próxima vez que o gerenciador de extensões sincronizar com o Azure.

Execução do script

O gerenciador de extensões pode ser usado para executar scripts em computadores usando a Extensão de Script Personalizado ou Executar Comando. Por padrão, esses scripts serão executados no contexto do usuário do gerenciador de extensões (Sistema Local no Windows ou raiz no Linux), o que significa que esses scripts terão acesso irrestrito ao computador. Caso não pretenda usar esses recursos, poderá bloqueá-los usando uma lista de permissões ou uma lista de bloqueios. Um exemplo é fornecido na próxima seção.

Controles de segurança do agente local

A partir do Agent versão 1,16, você pode, opcionalmente, limitar as extensões que podem ser instaladas em seu servidor e desabilitar a configuração de convidado. Esses controles podem ser úteis ao conectar servidores ao Azure para uma única finalidade, como coletar logs de eventos, sem permitir que outros recursos de gerenciamento sejam usados no servidor.

Esses controles de segurança só podem ser configurados executando um comando no próprio servidor e não podem ser modificados no Azure. Essa abordagem preserva a intenção do administrador do servidor ao habilitar cenários de gerenciamento remoto com o Azure Arc, mas também significa que a alteração da configuração será mais difícil se você decidir posteriormente alterá-las. Esse recurso é destinado a servidores confidenciais (por exemplo, controladores de Domínio do Active Directory, servidores que lidam com dados de pagamento e servidores sujeitos a medidas rigorosas de controle de alterações). Na maioria dos outros casos, não é necessário modificar essas configurações.

Listas de permissões e listas de bloqueio

O agente do Azure Connected Machine dá suporte a uma lista de permissões e uma lista de bloqueios para restringir quais extensões podem ser instaladas em seu computador. Listas de permissões são exclusivas, o que significa que somente as extensões específicas incluídas na lista podem ser instaladas. Listas de bloqueios são exclusivas, o que significa que qualquer coisa, exceto essas extensões, pode ser instalada. Listas de permissões são preferíveis a listas de bloqueios porque bloqueiam inerentemente quaisquer novas extensões que se tornem disponíveis no futuro. Listas de permissões e listas de bloqueio são configuradas localmente por servidor. Isso garante que ninguém, nem mesmo um usuário com permissões de Proprietário ou Administrador Global no Azure, possa substituir suas regras de segurança tentando instalar uma extensão não autorizada. Se alguém tentar instalar uma extensão não autorizada, o gerenciador de extensões se recusará a instalá-la e marcará o relatório de instalação da extensão como uma falha no Azure. Listas de permissões e listas de bloqueio podem ser configuradas a qualquer momento após a instalação do agente, inclusive antes de o agente ser conectado ao Azure.

Se nenhuma lista de permissões ou lista de bloqueios estiver configurada no agente, todas as extensões serão permitidas.

A opção mais segura é permitir explicitamente as extensões que você espera que sejam instaladas. Qualquer extensão que não esteja na lista de permissão é bloqueada automaticamente. Para configurar o agente Azure Connected Machine para permitir apenas o Agente do Azure Monitor para Linux, execute o seguinte comando em cada servidor:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Aqui está um exemplo de lista de bloqueios que bloqueia todas as extensões com a capacidade de executar scripts arbitrários:

azcmagent config set extensions.blocklist “Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation.HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux”

Especifique as extensões com seu editor e tipo, separados por uma barra /. Consulte a lista das Extensões mais comuns no docs ou liste as extensões de VM já instaladas no seu servidor no Portal, Azure PowerShellou CLI do Azure.

A tabela descreve o comportamento ao executar uma operação de extensão em um agente que tenha a lista de permissões ou a lista de bloqueios configurada.

Operação Na lista de permissões Na lista de bloqueados Nos modos de permissão e de bloqueio Não está em nenhuma lista, mas uma lista de permissão está configurada
Instalar a extensão Permitido Bloqueado Bloqueado Bloqueado
Atualizar a extensão (reconfigurar) Permitido Bloqueado Bloqueado Bloqueado
Atualizar a extensão Permitido Bloqueado Bloqueado Bloqueado
Exclui a extensão Permitido Permitido Permitido Permitido

Importante

Se uma extensão já estiver instalada em seu servidor antes de você configurar uma lista de permissões ou uma lista de bloqueios, ela não será removida automaticamente. É sua responsabilidade excluir a extensão do Azure para removê-la totalmente do computador. As solicitações de exclusão são sempre aceitas para acomodar esse cenário. Uma vez excluídas, a lista de permissões e a lista de bloqueios determinam se devem ou não permitir futuras tentativas de instalação.

A partir da versão 1.35 do agente, há um valor especial da lista de permissões Allow/None, que instrui o gerenciador de extensões a ser executado, mas não permite que nenhuma extensão seja instalada. Essa é a configuração recomendada ao usar o Azure Arc para fornecer Atualizações de Segurança Estendidas (ESU) do Windows Server 2012 sem a intenção de usar outras extensões.

azcmagent config set extensions.allowlist "Allow/None"

As Políticas do Azure também podem ser usadas para restringir quais extensões podem ser instaladas. As Políticas do Azure têm a vantagem de serem configuráveis na nuvem e não exigirem uma alteração em cada servidor individual caso precise alterar a lista de extensões aprovadas. No entanto, qualquer pessoa com permissão para modificar atribuições de política pode substituir ou remover essa proteção. Caso opte por usar as Políticas do Azure para restringir extensões, verifique quais contas em sua organização têm permissão para editar atribuições de política e se as medidas de controle de alteração apropriadas estão em vigor.

Práticas recomendadas do computador bloqueadas

Ao configurar o agente Azure Connected Machine com um conjunto reduzido de recursos, é importante considerar os mecanismos que alguém poderia usar para remover essas restrições e implementar os controles apropriados. Qualquer pessoa capaz de executar comandos como administrador ou usuário raiz no servidor pode alterar a configuração do agente do Azure Connected Machine. As extensões e as políticas de configuração de convidados são executadas em contextos privilegiados em seu servidor e, portanto, podem alterar a configuração do agente. Se você aplicar controles de segurança do agente local para bloquear o agente, a Microsoft recomenda as seguintes melhores práticas para garantir que somente os administradores do servidor local possam atualizar a configuração do agente:

  • Use as listas de permitidos para extensões em vez de bloqueio sempre que possível.
  • Não inclua a extensão de script personalizado na extensão de permissão para impedir a execução de scripts arbitrários que poderiam alterar a configuração do agente.
  • Desabilite a configuração de convidado para impedir o uso de políticas de configuração de convidado personalizadas que podem alterar a configuração do agente.

Exemplo de configuração para cenários de segurança e monitoramento

É comum usar o Azure ARC para monitorar seus servidores com o Azure Monitor e o Microsoft Sentinel e protegê-los com o Microsoft Defender para nuvem. Esta seção contém exemplos de como bloquear o agente para dar suporte apenas a cenários de monitoramento e segurança.

Somente agente do Azure Monitor

Em seus servidores de Windows, execute os seguintes comandos em um console de comandos com privilégios elevados:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Em todos os servidores Linux, execute os seguintes comandos:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Log Analytics e dependência (Azure Monitor Insights VM) somente

Essa configuração é para os agentes de Log Analytics herdados e o agente de dependência.

Em seus servidores de Windows, execute os seguintes comandos em um console com privilégios elevados:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Em todos os servidores Linux, execute os seguintes comandos:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

Monitoramento e segurança

O Microsoft Defender para Nuvem implanta extensões em seu servidor para identificar softwares vulneráveis em seu servidor e habilitar o Microsoft Defender para Ponto de Extremidade (se configurado). O Microsoft Defender para Nuvem também usa a configuração de convidado para seu recurso de conformidade regulatória. Como uma atribuição de configuração de convidado personalizada pode ser usada para desfazer as limitações do agente, você deve avaliar cuidadosamente se precisa ou não do recurso de conformidade regulatória e, como resultado, a configuração do convidado a ser habilitada no computador.

Em seus servidores de Windows, execute os seguintes comandos em um console de comandos com privilégios elevados:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Em todos os servidores Linux, execute os seguintes comandos:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Modos de agente

Uma maneira mais simples de configurar controles de segurança locais para monitoramento e cenários de segurança é usar o modo monitor, disponível com o agente versão 1.18 e mais recente. Os modos são configurações predefinidas da lista de permissões de extensão e do agente de configuração de convidado mantidos pela Microsoft. À medida que forem disponibilizadas novas extensões que permitem cenários de monitoramento, a Microsoft atualizará a lista de permissões e a configuração do agente para incluir ou excluir a nova funcionalidade, conforme apropriado.

Existem dois modos para escolher:

  1. cheio - o modo padrão. Isso permite todas as funcionalidades do agente.
  2. monitor - um modo restrito que desabilita o agente de política de configuração de convidado e permite apenas o uso de extensões relacionadas a monitoramento e segurança.

Para habilitar o modo monitor, execute o seguinte comando:

azcmagent config set config.mode monitor

Você pode verificar o modo atual do agente e as extensões permitidas com o seguinte comando:

azcmagent config list

Enquanto estiver no modo monitor, você não poderá modificar a lista de permissões ou a lista de bloqueios de extensão. Se você precisar alterar qualquer uma das listas, altere o agente de volta para o modo completo e especifique sua própria lista de permissões e lista de bloqueio.

Para alterar o agente de volta para o modo completo, execute o seguinte comando:

azcmagent config set config.mode full

Desabilitar o gerenciador de extensões

Caso não precise usar extensões com o Azure Arc, também poderá desabilitar totalmente o gerenciador de extensões. É possível desabilitar o gerenciador de extensões com o seguinte comando (executado localmente em cada computador):

azcmagent config set extensions.enabled false

A desabilitação do gerenciador de extensões não removerá nenhuma extensão já instalada em seu servidor. As extensões hospedadas em seus próprios serviços Windows ou Linux, como o Agente do Log Analytics, podem continuar a ser executadas mesmo que o gerenciador de extensões esteja desabilitado. Outras extensões que são hospedadas pelo próprio gerenciador de extensões, como o Agente do Azure Monitor, não são executadas se o gerenciador de extensões estiver desabilitado. Você deve remover todas as extensões antes de desabilitar o gerenciador de extensões a fim de garantir que nenhuma extensão continue sendo executada no servidor.