Como desabilitar o UDP de entrada para serviços do Azure

Este artigo destina-se somente a agentes de suporte técnico e profissionais de TI. Se você está procurando ajuda para um problema, pergunte à Microsoft Community.

Introdução

O objetivo deste artigo de Ajuda é fornecer diretrizes sobre como reduzir a superfície de ataque de amplificação do protocolo UDP. O artigo contém as seguintes informações:

  • Visão geral dos ataques de amplificação de UDP e UDP.

  • Como configurar um NSG (Grupo de Segurança de Rede) do Azure para ter acesso à Internet com privilégios mínimos para portas e protocolos.

  • Como configurar serviços para remover a superfície de ataque de amplificação de UDP, se a porta for necessária para servidores DNS (Serviço de Nome de Domínio) Recursivo  ou protocolo NTP.

  • Como executar uma verificação de Nmap para verificação da configuração do Grupo de Segurança de Rede.

Os usuários devem seguir as diretrizes deste artigo para fechar as conexões UDP de entrada e reduzir a superfície de ataque.

Resumo

O protocolo UDP é um protocolo sem conexão. Quando o UDP tem o acesso de entrada permitido a seus serviços de nuvem do Azure, ele cria uma superfície de ataque que pode ser usada para um DRDoS (negação de serviço reflexiva distribuída) contra VMs (máquinas virtuais). O ataque de amplificação baseado em UDP é uma forma de ataque de DDoS (negação de serviço distribuída) que depende de serviços UDP acessíveis ao público e BAFs (fatores de amplificação de largura de banda) para sobrecarregar o sistema das vítimas com tráfego UDP.

Observação Por padrão, se você criou um NSG, a configuração fecha todas as portas, incluindo UDP. Além disso, o Azure tem proteção contra DDOS no nível de plataforma. Portanto, os usuários também podem adicionar DDOS em sua camada de serviço.

Para saber mais sobre esse tipo de ataque, consulte https://www.us-cert.gov/ncas/alerts/TA14-017A.

O ataque de amplificação baseado em UDP é uma forma de um ataque de negação de serviço distribuído (DDoS)

As seguintes portas comuns são frequentemente usadas como parte desses ataques de reflexão de UDP: 17 (QOTD), 19 (CharGEN), 53 (DNS), 69 (TFTP), 123(NTP), 161 (SNMP), 389 (CLDAP), 1900 (SSDP), 9987 (Interface de destino DSM/SCM), 11211 (Memcached). Os usuários devem avaliar se devem expor publicamente essas portas à Internet e fechar todas as portas UDP que não são absolutamente necessárias. Em particular, os usuários que precisam ter UDP de entrada para a porta 53 (DNS) ou a porta 123 (NTP) devem ter as configurações vulneráveis (conforme listadas neste artigo) removidas. Isso ocorre porque essas duas portas são usadas extensivamente para esse tipo de ataque.

Protocolo

Porta UDP

Configuração vulnerável

DNS

53

DNS recursivo aberto à Internet pública

NTP

123

Comandos Open query e monlist habilitados

Ação recomendada

As seguintes etapas ajudam a mitigar o efeito do ataque de UDP:

  1. Avalie a necessidade de quais serviços precisam ser expostos à Internet, determine quais portas UDP de entrada são absolutamente necessárias para a operação correta do serviço e feche todas as portas UDP não essenciais.

  2. Os usuários que precisam ter as portas UDP abertas podem consultar seções específicas deste artigo para obter recomendações relacionadas a escuta de NTP e DNS em portas UDP. Para todas as outras portas, siga as instruções da seção Portas UDP a serem fechadas .

O serviço monlist no NTP oferece a capacidade de executar consultas para obter informações de depuração e deve ser habilitado apenas temporariamente para depurar um problema de serviço. Também pode ser usado para realizar ataques de reflexão de UDP. Nos pacotes NTPD (NTP Daemon) anteriores a 4.2.8, esse serviço é habilitado por padrão.  Os usuários deve seguir esta diretriz:

  • Os usuários que precisam do monlist devem configurar um NSG para permitir o acesso apenas aos endereços IP necessários.

  • Os usuários que não precisam do monlist e estão executando pacotes NTPD do Linux anteriores à versão 4.2.8 devem atualizar o pacote para uma versão atual e garantir que o monlist não esteja habilitado. Os usuários que não puderem atualizar o pacote para uma versão mais recente terão que configurar o serviço usando as seguintes etapas de remediação:

  1. Verifique a versão do pacote NTPD:

#sudo -i ntpq -c rv

  1. Se a versão do pacote NTPD for anterior a 4.7p26, siga estas etapas:

#vi /etc/ntp.conf

  1. Se elas ainda não existirem, adicione estas linhas:

restrict -4 default kod nomodify notrap nopeer noquery

restrict -6 default kod nomodify notrap nopeer noquery

  1. Reinicie o serviço NTP:

# service ntp restart [Debian/ Ubuntu]

# service ntpd restart [Redhat/ Centos]

Observação 1: Se você tiver instalado o pacote NTPD no Windows e tiver portas abertas, precisará seguir as etapas da ação de remediação.

Observação 2: Consultehttps://www.us-cert.gov/ncas/alerts/TA14-013A para obter mais detalhes.

Observação 3: Pacotes NTP regulares usados para sincronização de horário (modo 3 e modo 4) não são afetados. Isso significa que é seguro sincronizar o horário e que um servidor forneça somente o horário.

A execução de um resolvedor recursivo de DNS aberto na Internet pode causar um ataque de UDP contra o próprio serviço do usuário e os de outros usuários. Os usuários devem avaliar se eles realmente devem ter um serviço DNS em execução. Caso contrário, eles devem negar todo o acesso à Porta 53 ou desinstalar o serviço DNS seguindo as instruções específicas para o sistema operacional e a implementação do DNS.

O usuário que precisa da execução de um serviço DNS para fornecer resolução autorizada de nomes, mas que não requer recursão de DNS deve desabilitar esse recurso seguindo as instruções específicas para o sistema operacional e a implementação do DNS (conforme fornecido posteriormente neste artigo). Além disso, é altamente recomendável em todos os casos que o acesso à porta 53 no seu NSG seja restrito ao conjunto específico de endereços IP necessários para operar o serviço, com o mínimo de privilégios.

Windows: Desabilite a configuração do resolvedor recursivo de DNS no servidor DNS para o servidor Windows 2012, 2016

  1. Abra o Gerenciador DNS (selecione Iniciar, aponte para Ferramentas Administrativas e selecione DNS).

  2. Na árvore de console, clique com o botão direito do mouse no servidor DNS aplicável e selecione Propriedades.

  3. Selecione a guia Avançado.

  4. Nas Opções do servidor, verifique se a caixa de seleção Desabilitar recursão está marcada.

  5. Reinicie o serviço DNS (no painel de controle Serviços).

Linux: Desabilitar a recursão de DNS no servidor Bind

  1. Conecte-se ao servidor por meio do SSH (Secure Shell) usando as credenciais raiz.

  2. Depois de se conectar ao servidor, verifique se há recursão de DNS no arquivo named.conf e investigue as configurações:

    cat /etc/named.conf | grep "recursion"

  3. Abra o arquivo named.conf usando qualquer editor de texto e verifique as configurações de recursão usando o seguinte comando:

    #vi /etc/named.conf

  4. Altere as configurações apenas para recursão DNS externa e localize a seção chamada “external.” Se a seção não estiver disponível, você poderá adicionar as linhas a seguir ao arquivo named.conf para desabilitar a recursão DNS externa. Inclua as seguintes linhas na seção “options”:

    allow-transfer {"none";};

    allow-recursion {"none";};

    recursion no;

    Se você já tem a seção externa, pode alterar suas configurações alterando o valor recursion para yes ou no, dependendo de suas necessidades.

  5. Depois de configurar as alterações, salve o arquivo.

  6. Reinicie o servidor DNS para que as alterações tenham efeito. Execute o seguinte comando para reiniciar o serviço DNS:

    service named restart

    Observação: Se você estiver usando outro servidor DNS proprietário, consulte a respectiva documentação do produto para desabilitar a configuração recursiva do DNS.

Os usuários devem fechar as portas UDP de entrada de alto risco seguindo as diretrizes desta seção. Recomendamos que os usuários fechem as conexões de entrada da Internet em todas as portas UDP.

Os usuários que precisam abrir uma porta UDP específica para a Internet devem abrir somente essa porta e restringir novamente o acesso de entrada aos intervalos de IP estritamente necessários (ou seja, não expor as portas UDP a toda a Internet).

Para fechar as portas UDP, os usuários podem executar uma das seguintes ações ou ambas:

  • Atualizar o modelo do ARM para desabilitar o UDP de entrada. Isso requer a reimplantação do modelo NSG. No entanto, garante que futuras implantações que usam esse modelo tenham as configurações de segurança corretas.

  • Atualizar as regras NSG para restringir o acesso à rede. Consulte Portal do Azure, Azure Powershell, CLI do Azure.

Recursos: Informações sobre NSGs , Gerenciar NSG (Grupo de Segurança de Rede)

Verifique se há portas UDP abertas para a Internet

Os usuários devem verificar se os serviços estão configurados para proibir as conexões de entrada UDP examinando suas regras de NSG, seguindo as diretrizes encontradas em Como gerenciar NSGs. Os usuários também podem executar uma verificação de Nmapscan externa para verificar se as portas UDP estão fechadas corretamente.

Etapas para concluir uma verificação de Nmap

Importante

Os usuários devem verificar apenas dentro de seus próprios intervalos de endereços IP para garantir que outros usuários não sejam afetados seguindo a Regra de Engajamento de Teste de Penetração e também para garantir que a verificação esteja em conformidade com os Termos de Serviço Online da Microsoft.

  1. Instale o Nmap.

  2. Verifique as configurações do firewall para garantir que o tráfego UDP de saída execute a verificação.

  3. Siga as instruções de Nmapin nesta seção sobre como executar uma verificação. Os usuários também podem usar a GUI do Zenmap (o ícone é instalado na área de trabalho quando o Windows Nmap é instalado).

    1. Crie um arquivo .csv que tenha uma lista de endereços IP para procurar uma porta específica (por exemplo, Porta 69).

    2. Execute o  comando Nmap: Você pode incluir estas opções: -sUV (portas UDP) -T4 -p {porta a ser verificada} -Pn {tratar todos os hosts como online} -iL {lista de entrada} -oL {lista de saída} & (sinalizador opcional para execução em segundo plano):

      nmap -sUV -T4 -Pn -p 69 -iL filename.csv -oX filename.xml &

    3. Verifique as portas mais usadas em ataques de reflexão:

      nmap -sUV -T4 -Pn -p17,19,53,69,111,123,137,161,389,1900,5353,11211 -iL filename.csv -oX filename.xml &

    4. Examine os resultados para identificar quaisquer portas abertas.

  1. Instale o Nmap por meio do gerenciador de pacotes ou de https://nmap.org/download.html.

Ubuntu/Debian :

sudo apt-get update
sudo apt-get install nmap

Redhat/CentOS:

yum update
yum install nmap [Redhat/ Centos]

  1. Use os seguintes comandos do Nmap para verificar as portas UDP conhecidas:

    1. Crie um arquivo .csv que inclua uma lista de endereços IP para procurar uma porta específica (por exemplo, Porta 69).

    2. Carregue o arquivo .csv na sua VM do Linux usando o comando pscp:

      pscp filename.csv admin@remotehost:filename.csv

    3. Execute o comando sudo nmap incluindo as opções -sUV (portas UDP) -T4 -p {porta a ser verificada} -Pn {tratar todos os hosts como online} -iL {lista de entrada} -oL {lista de saída} & (sinalizador opcional para execução em segundo plano):

      sudo nmap -sUV -T4 -Pn -p 69 -iL filename.csv -oX filename.xml &

    4. Verifique as portas mais usadas em ataques de reflexão:

      sudo nmap -sUV -T4 -Pn -p17,19,53,69,111,123,137,161,389,1900,5353,11211 -iL filename.csv -oX filename.xml &

    5. Quando o processo for concluído, baixe o arquivo usando o comando pscp .

    6. Examine os resultados para identificar quaisquer portas abertas.

Exemplos de verificações de Nmap

Observação

Se você planeja automatizar o processo de verificação usando os comandos desses exemplos, lembre-se de que as verificações de UDP podem levar muito tempo para serem executadas, pois o verificador às vezes deve esperar para detectar se o tráfego é retornado (isso não é garantido). Para obter o melhor desempenho, crie uma verificação para cada porta.

Execute uma verificação do Windows na linha de comando, fechando todas as portas.

Observação Por se tratar de uma verificação Nmap UDP, "open|filtered" pode ser interpretado como "closed".

O seguinte comando executa uma verificação do Windows:

C:\Users\user\DeskTop>nmap -sUV -T4 -Pn -p17,19,53,69,111,123,137,161,389,1900,5353,11211 23.36.53.224

Verificação de Nmap do Windows

Execute uma verificação do Linux para 1.1.1.1, com o DNS aberto. Observe que a porta DNS 53 não diz "open|filtered" porque isso indica que a porta está fechada. No entanto, as outras portas são mostradas como "open|filtered". Isso indica que estão fechadas.

O seguinte comando executa uma verificação do Linux:

testuser@testUbuntu:~$ sudo nmap -sUV -T4 -Pn -p17,19,53,69,111,123,137,161,389,1900,5353,11211 1.1.1.1

Verificação de Nmap do Linux

Além disso, execute os seguintes scripts para verificar se os serviços nas portas 53, 123 e 389 estão configurados incorretamente.

Para usuários do Linux, cada comando deve ser seguido de sudo.

Para procurar por resolvedores recursivos de DNS abertos:

nmap -sUV -Pn -T4 -p 53 --script=dns-recursion -iL <input_file> -oX <output_file>

Para um único endereço IP:

nmap –sU –p53 –script=dns-recursion <Public IP address>

Versões de pacote NTPD anteriores a 4.2.8 são vulneráveis a ataques de reflexão UDP por meio de um comando monlist. Se “restrict noquery” for configurado, um ataque de reflexão de monlist não funcionará.

Script Nmap para identificar a vulnerabilidade:

nmap -sUV -Pn -T4 -p 123 --script= ntp-monlist -iL <input_file> -oX <output_file>

Para um único endereço IP:

nmap -sU -pU:123 -Pn -n --script=ntp-monlist <Public IP address>

nmap -sU -p389 -v -n -Pn <Public IP address>

Mostrar informações LDAP publicamente expostas:

nmap -p 389 --script ldap-rootdse <Public IP address>

Perguntas frequentes

Essa não é uma configuração recomendada. No entanto, se o usuário tiver um serviço dependente, ele deverá adicionar segurança usando a assinatura conforme as seguintes diretrizes:

Os usuários devem usar os documentos a seguir para saber como configurar a Sincronização de Horário para suas VMs do Azure. Se o usuário usar um pacote vulnerável para Linux ou Windows NTPD, ele deverá atualizar para a versão atual.

Saiba como solucionar problemas usando o Azure Network Watcher: https://docs.microsoft.com/pt-br/azure/network-watcher/network-watcher-connectivity-overview

Não. Elas são as portas padrão para os serviços UDP. No entanto, os serviços podem estar escutando em outro número de porta ou o servidor pode existir atrás de um balanceador de carga que é encaminhado de outra porta de origem.

Consulte Amplificação UDP: https://www.us-cert.gov/ncas/alerts/TA14-017A

Precisa de mais ajuda?

Expanda suas habilidades
Explore o treinamento
Obtenha novos recursos primeiro
Ingressar no Microsoft Insider

Estas informações foram úteis?

Obrigado por seus comentários!

×