Gerenciando Acesso Just-in-Time (JIT) para Máquinas Virtuais Azure

Gerenciando Acesso Just-in-Time (JIT) para Máquinas Virtuais Azure

01/10/2024

Este artigo técnico e educativo tem como objetivo guiar analistas de segurança, administradores de TI e engenheiros de sistemas na implementação e gerenciamento do Acesso Just-in-Time (JIT) para Máquinas Virtuais (VMs) Azure. O JIT é um recurso de segurança fundamental oferecido pelo Microsoft Defender for Cloud que ajuda a proteger VMs contra ataques de acesso não autorizado, reduzindo drasticamente a superfície de ataque de rede ao limitar o acesso às portas de gerenciamento apenas quando e por quanto tempo for estritamente necessário [1].

Introdução

Em ambientes de nuvem, as Máquinas Virtuais são frequentemente alvos de ataques de força bruta e varreduras de porta, especialmente aquelas com portas de gerenciamento (como RDP 3389 e SSH 22) expostas à internet. Manter essas portas abertas continuamente cria uma superfície de ataque desnecessariamente grande, aumentando o risco de comprometimento. O Acesso JIT resolve esse problema, permitindo que as equipes de segurança bloqueiem o tráfego de entrada para as VMs por padrão e abram as portas de gerenciamento apenas sob demanda, por um período limitado e de endereços IP específicos. Essa abordagem segue o princípio do privilégio mínimo e do Zero Trust, garantindo que o acesso seja concedido apenas quando justificado e pelo menor tempo possível [2].

Este guia prático abordará os pré-requisitos para habilitar o JIT, o processo de configuração através do Microsoft Defender for Cloud, como solicitar e aprovar o acesso JIT, a integração com alertas de segurança e as melhores práticas para o gerenciamento eficaz. Serão fornecidas instruções passo a passo, exemplos de comandos Azure CLI e para que o leitor possa implementar e validar o JIT, fortalecendo a segurança de suas VMs Azure e protegendo-as contra ameaças de acesso não autorizado.

Por que o Acesso Just-in-Time (JIT) é crucial para VMs Azure?

  • Redução da Superfície de Ataque: Fecha as portas de gerenciamento de VMs por padrão, expondo-as apenas quando e por quanto tempo for necessário, minimizando as oportunidades para atacantes.
  • Controle de Acesso Granular: Permite especificar quais usuários podem solicitar acesso, quais portas podem ser abertas, por quanto tempo e de quais endereços IP de origem.
  • Conformidade: Ajuda a atender aos requisitos de conformidade que exigem controle rigoroso sobre o acesso a recursos críticos.
  • Visibilidade e Auditoria: Fornece logs detalhados de todas as solicitações de acesso JIT, aprovações e aberturas/fechamentos de portas, facilitando a auditoria e a investigação de segurança.
  • Integração com Defender for Cloud: Totalmente integrado ao Microsoft Defender for Cloud, aproveitando suas capacidades de gerenciamento de postura de segurança e proteção contra ameaças.
  • Automação: Pode ser automatizado para aprovação de acesso em cenários específicos, como resposta a incidentes ou operações de manutenção agendadas.

Pré-requisitos

Para implementar o Acesso JIT para Máquinas Virtuais Azure, você precisará dos seguintes itens:

  1. Assinatura Azure Ativa: Uma assinatura Azure para criar e gerenciar recursos.
  2. Acesso Administrativo: Uma conta com a função de Proprietário, Colaborador ou Administrador de Segurança na assinatura Azure, ou no grupo de recursos onde as VMs estão localizadas.
  3. Microsoft Defender for Cloud Standard (ou Defender for Servers): O JIT é um recurso premium do Microsoft Defender for Cloud e requer que o plano Defender for Servers esteja habilitado na assinatura que contém as VMs [3].
  4. Máquinas Virtuais Azure Existentes: VMs Azure que você deseja proteger com JIT. Para este tutorial, assumiremos que você já possui VMs implantadas.
  5. Azure CLI ou Azure PowerShell: Ferramentas de linha de comando instaladas e configuradas para interagir com o Azure.

Passo a Passo: Habilitando e Gerenciando o Acesso JIT

Vamos configurar o JIT para suas VMs Azure.

1. Habilitando o Plano Defender for Servers

Conforme mencionado nos pré-requisitos, o JIT requer o plano Defender for Servers ativado.

  1. Abra seu navegador e navegue até o portal do Azure: https://portal.azure.com.
  2. Faça login com uma conta que tenha as permissões necessárias.
  3. No campo de pesquisa superior, digite Defender for Cloud e selecione-o nos resultados.
  4. No painel do Defender for Cloud, selecione Configurações de ambiente no painel de navegação esquerdo.
  5. Selecione a assinatura Azure que contém suas VMs.
  6. Na página de planos do Defender, certifique-se de que o plano Defender for Servers esteja Ativado. Se não estiver, clique em Ativar e siga as instruções para habilitá-lo.

2. Habilitando o Acesso JIT para VMs

Você pode habilitar o JIT para VMs individuais ou para várias VMs de uma vez.

  1. No painel do Defender for Cloud, selecione Proteção de carga de trabalho no painel de navegação esquerdo.
  2. Role para baixo até a seção Proteção avançada e clique em Acesso à VM Just-in-Time.
  3. Na guia Máquinas virtuais, você verá três sub-guias: Configurado, Recomendado e Não configurado.

    • Recomendado: Lista as VMs que o Defender for Cloud recomenda proteger com JIT.
    • Não configurado: Lista as VMs que não estão protegidas por JIT, mas são elegíveis.
  4. Selecione as VMs na guia Recomendado ou Não configurado para as quais você deseja habilitar o JIT.

  5. Clique em Habilitar JIT na VM.

  6. Configurar a Política JIT: Para cada VM selecionada, você pode configurar as seguintes opções:

    • Portas: As portas de gerenciamento que serão protegidas (ex: 22, 3389, 5985, 5986). Você pode adicionar portas personalizadas.
    • Protocolo: O protocolo para cada porta (ex: TCP, UDP).
    • Tempo máximo de solicitação: O tempo máximo (em horas) que uma porta pode ser aberta após uma solicitação aprovada. O padrão é 3 horas.
    • Endereços IP de origem aprovados: Opcional, mas altamente recomendado. Restringe o acesso a IPs ou blocos de IP específicos. Por padrão, é Any (*), o que significa que qualquer IP pode solicitar acesso.
  7. Clique em Salvar para aplicar a política JIT às VMs selecionadas.

3. Solicitando Acesso Just-in-Time a uma VM

Quando um usuário ou administrador precisa acessar uma VM protegida por JIT, ele deve solicitar acesso.

  1. No painel do Defender for Cloud, selecione Proteção de carga de trabalho > Acesso à VM Just-in-Time.
  2. Na guia Máquinas virtuais, selecione a VM que você deseja acessar (ela deve estar na guia Configurado).
  3. Clique em Solicitar acesso.

  4. Na janela Solicitar acesso, especifique:

    • Portas: As portas que você precisa abrir.
    • Endereço IP de origem: O endereço IP público do qual você fará a conexão. Você pode selecionar Meu endereço IP (o IP público atual do seu dispositivo) ou Personalizado para especificar um IP ou CIDR.
    • Período de tempo: A duração do acesso (limitado pelo Tempo máximo de solicitação configurado na política JIT).
    • Justificativa: Uma breve descrição do motivo da solicitação de acesso.
  5. Clique em Abrir portas.

    • Nota: Se a política JIT exigir aprovação, a solicitação será enviada para os aprovadores configurados antes que as portas sejam abertas.

4. Aprovando Solicitações de Acesso JIT (se configurado)

Para cenários onde a aprovação é necessária (via Azure Logic Apps ou Azure Functions), o processo pode variar. Por padrão, o JIT abre as portas imediatamente após a solicitação, a menos que uma automação de fluxo de trabalho seja configurada.

  • Dica: Para fluxos de trabalho de aprovação, você pode usar o Azure Logic Apps para monitorar logs de auditoria do Azure ou eventos do Azure Security Center e acionar um processo de aprovação (ex: enviar um e-mail para um grupo de segurança para aprovação manual).

5. Verificando o Status do Acesso JIT

Após solicitar o acesso, você pode verificar o status no portal.

  1. No painel do Defender for Cloud, selecione Proteção de carga de trabalho > Acesso à VM Just-in-Time.
  2. Na guia Máquinas virtuais, a VM para a qual você solicitou acesso deve mostrar um status indicando que o acesso está Ativo ou Pendente (se houver aprovação).
  3. A coluna Tempo restante mostrará quanto tempo de acesso ainda resta.

6. Desativando o Acesso JIT (Opcional)

Se você precisar desabilitar o JIT para uma VM, siga estes passos:

  1. No painel do Defender for Cloud, selecione Proteção de carga de trabalho > Acesso à VM Just-in-Time.
  2. Na guia Máquinas virtuais, selecione a VM configurada.
  3. Clique em Desabilitar JIT na VM.

Validação e Teste

Validar a eficácia do Acesso JIT é crucial para garantir que suas VMs estão protegidas e que o acesso pode ser concedido quando necessário.

1. Testando o Bloqueio de Acesso Padrão

  1. Tente acessar uma porta de gerenciamento (ex: RDP 3389 ou SSH 22) de uma VM protegida por JIT sem solicitar acesso JIT.
    • Resultado Esperado: A conexão deve ser recusada ou ter um tempo limite, pois as portas estão fechadas por padrão.

2. Testando o Acesso JIT Aprovado

  1. Solicite acesso JIT para a VM e a porta desejada, usando o seu endereço IP público.
  2. Após a aprovação (ou abertura imediata, se não houver aprovação configurada), tente acessar a VM via RDP ou SSH do mesmo endereço IP público.

    • Resultado Esperado: A conexão deve ser bem-sucedida.
  3. Aguarde até que o tempo de acesso JIT expire (ou cancele manualmente o acesso).

  4. Tente acessar a VM novamente.
    • Resultado Esperado: A conexão deve ser recusada novamente.

3. Verificando Logs de Auditoria

Todas as operações de JIT são registradas nos logs de auditoria do Azure, fornecendo uma trilha completa de quem solicitou o quê, quando e de onde.

  1. No portal do Azure, navegue até o seu grupo de recursos ou a VM específica.
  2. No painel de navegação esquerdo, selecione Log de atividades.
  3. Filtre por eventos relacionados ao Just-in-Time VM Access ou Microsoft.Security/locations/jitNetworkAccessPolicies.
    • Você verá eventos como JIT network access policy created, JIT network access policy requested, JIT network access policy approved (se aplicável) e JIT network access policy closed.

Dicas de Segurança e Melhores Práticas

  • Princípio do Privilégio Mínimo: Configure as políticas JIT para conceder o menor privilégio possível – as portas exatas necessárias, pelo menor tempo possível e dos IPs de origem mais restritos.
  • Restrinja Endereços IP de Origem: Sempre que possível, especifique endereços IP de origem na política JIT e nas solicitações de acesso. Evite usar Any (*) para IPs de origem.
  • Períodos de Tempo Curtos: Defina o tempo máximo de solicitação para o menor período de tempo razoável (ex: 1-2 horas), forçando os usuários a reavaliar a necessidade de acesso.
  • Monitoramento e Alertas: Configure alertas no Azure Monitor para solicitações de acesso JIT, especialmente para portas críticas ou de IPs inesperados. Integre esses alertas com seu SIEM (ex: Microsoft Sentinel).
  • Automação de Fluxo de Trabalho: Para ambientes com requisitos de aprovação rigorosos, utilize o Azure Logic Apps ou Azure Functions para criar fluxos de trabalho de aprovação personalizados para as solicitações JIT.
  • Documentação e Treinamento: Documente claramente as políticas de acesso JIT e treine os usuários sobre como solicitar acesso e a importância de seguir as melhores práticas de segurança.
  • Revisão Periódica: Revise regularmente as políticas JIT e os logs de acesso para garantir que elas permaneçam relevantes e eficazes.
  • Combine com NSGs e Azure Firewall: O JIT complementa outras camadas de segurança de rede, como Network Security Groups (NSGs) e Azure Firewall. Use-os em conjunto para uma defesa em profundidade.

Troubleshooting Comum

  • Não é possível habilitar JIT para uma VM: Verifique se o plano Defender for Servers está habilitado para a assinatura da VM. Certifique-se de que a VM não está em um estado inválido ou que não há configurações conflitantes.
  • Não é possível solicitar acesso JIT: Verifique se você tem as permissões necessárias (ex: Colaborador ou Operador de Acesso Just-in-Time da Máquina Virtual) para solicitar acesso. Certifique-se de que a VM está configurada para JIT e que as portas estão definidas na política.
  • Conexão recusada após solicitar JIT: Verifique se o endereço IP de origem que você especificou na solicitação JIT corresponde ao IP público do seu dispositivo. Confirme se o período de tempo não expirou. Verifique se não há NSGs ou regras de firewall adicionais bloqueando o tráfego após a abertura da porta JIT.
  • Portas erradas abertas: Verifique a política JIT configurada para a VM para garantir que as portas corretas estão listadas. Se você estiver usando o Azure CLI, verifique os parâmetros de porta.
  • Alertas de segurança sobre acesso JIT: Investigue qualquer alerta de segurança relacionado ao JIT. Isso pode indicar uma tentativa de acesso não autorizado ou uma configuração incorreta.
  • Desempenho da VM afetado: O JIT em si não deve afetar o desempenho da VM. Se houver problemas, investigue outros componentes da VM ou da rede.

Conclusão

O gerenciamento de Acesso Just-in-Time (JIT) para Máquinas Virtuais Azure é uma estratégia de segurança essencial para proteger seus recursos de nuvem contra ameaças de acesso não autorizado. Ao fechar as portas de gerenciamento por padrão e abri-las apenas sob demanda, o JIT reduz significativamente a superfície de ataque, fortalece a postura de segurança e ajuda a cumprir os requisitos de conformidade. A implementação eficaz do JIT, combinada com as melhores práticas de segurança e monitoramento contínuo, garante que suas VMs permaneçam seguras e acessíveis apenas para usuários e propósitos legítimos. Com este guia prático, os profissionais de segurança estarão bem equipados para configurar, validar e gerenciar o Acesso JIT, tornando suas Máquinas Virtuais Azure mais resilientes e protegidas.


Referências:

[1] Microsoft Learn. O que é o acesso JIT (just-in-time) à VM?. Disponível em: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-overview [2] Microsoft Learn. Habilitar o acesso just-in-time em VMs. Disponível em: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-usage [3] Microsoft Learn. Gerenciar a segurança do servidor com o Microsoft Defender for Cloud. Disponível em: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/tutorial-enable-servers-plan [4] Microsoft Learn. Gerenciar o acesso JIT (just-in-time) para suas VMs usando o PowerShell. Disponível em: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-powershell