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:
- Assinatura Azure Ativa: Uma assinatura Azure para criar e gerenciar recursos.
- Acesso Administrativo: Uma conta com a função de
Proprietário,ColaboradorouAdministrador de Segurançana assinatura Azure, ou no grupo de recursos onde as VMs estão localizadas. - 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].
- Máquinas Virtuais Azure Existentes: VMs Azure que você deseja proteger com JIT. Para este tutorial, assumiremos que você já possui VMs implantadas.
- 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.
- Abra seu navegador e navegue até o portal do Azure:
https://portal.azure.com. - Faça login com uma conta que tenha as permissões necessárias.
- No campo de pesquisa superior, digite
Defender for Cloude selecione-o nos resultados. - No painel do Defender for Cloud, selecione Configurações de ambiente no painel de navegação esquerdo.
- Selecione a assinatura Azure que contém suas VMs.
- Na página de planos do Defender, certifique-se de que o plano Defender for Servers esteja
Ativado. Se não estiver, clique emAtivare 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.
- No painel do Defender for Cloud, selecione Proteção de carga de trabalho no painel de navegação esquerdo.
- Role para baixo até a seção
Proteção avançadae clique em Acesso à VM Just-in-Time. -
Na guia
Máquinas virtuais, você verá três sub-guias:Configurado,RecomendadoeNã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.
-
Selecione as VMs na guia
RecomendadoouNão configuradopara as quais você deseja habilitar o JIT. -
Clique em Habilitar JIT na VM.
-
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.
-
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.
- No painel do Defender for Cloud, selecione Proteção de carga de trabalho > Acesso à VM Just-in-Time.
- Na guia
Máquinas virtuais, selecione a VM que você deseja acessar (ela deve estar na guiaConfigurado). -
Clique em Solicitar acesso.
-
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) ouPersonalizadopara especificar um IP ou CIDR. - Período de tempo: A duração do acesso (limitado pelo
Tempo máximo de solicitaçãoconfigurado na política JIT). - Justificativa: Uma breve descrição do motivo da solicitação de acesso.
-
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.
- No painel do Defender for Cloud, selecione Proteção de carga de trabalho > Acesso à VM Just-in-Time.
- Na guia
Máquinas virtuais, a VM para a qual você solicitou acesso deve mostrar um status indicando que o acesso estáAtivoouPendente(se houver aprovação). - A coluna
Tempo restantemostrará quanto tempo de acesso ainda resta.
6. Desativando o Acesso JIT (Opcional)
Se você precisar desabilitar o JIT para uma VM, siga estes passos:
- No painel do Defender for Cloud, selecione Proteção de carga de trabalho > Acesso à VM Just-in-Time.
- Na guia
Máquinas virtuais, selecione a VM configurada. - 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
- 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
- Solicite acesso JIT para a VM e a porta desejada, usando o seu endereço IP público.
-
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.
-
Aguarde até que o tempo de acesso JIT expire (ou cancele manualmente o acesso).
- 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.
- No portal do Azure, navegue até o seu grupo de recursos ou a VM específica.
- No painel de navegação esquerdo, selecione Log de atividades.
- Filtre por eventos relacionados ao
Just-in-Time VM AccessouMicrosoft.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) eJIT network access policy closed.
- Você verá eventos como
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:
ColaboradorouOperador 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