O que é um resolvedor de DNS aberto e como posso proteger meu servidor contra uso indevido por hackers?

15

Eu não tenho o histórico mais strong em segurança de computadores, mas ontem um dos servidores da minha empresa foi desativado pelo nosso host.

É um servidor atribuído a um IP público, onde eu hospedo vários aplicativos de serviço da web, incluindo sites e APIs. Foi-me dito que meu servidor "está executando um resolvedor de DNS aberto que está sendo usado para retransmitir o ataque de negação de serviço a uma entidade externa".

O que isso significa? Como esse ataque funciona? E como posso proteger meu sistema de ser abusado assim?

No meu caso específico, o servidor em questão está no Windows Server 2012 e está servindo DNS para um domínio do Active Directory.

    
por JSideris 05.02.2014 / 20:16

1 resposta

26

Um "resolvedor de DNS aberto" é um servidor DNS que está disposto a resolver pesquisas de DNS recursivas para qualquer pessoa na Internet. É muito parecido com um retransmissor SMTP aberto, em que a simples falta de autenticação permite que terceiros maliciosos propaguem suas cargas usando seu equipamento não seguro. Com os retransmissores SMTP abertos, o problema é que eles encaminham spam. Com os resolvedores de DNS abertos, o problema é que eles permitem um ataque de negação de serviço conhecido como um ataque de amplificação de DNS.

A maneira como este ataque funciona é bastante simples - porque o seu servidor irá resolver consultas DNS recursivas de qualquer pessoa, um invasor pode fazer com que ele participe de um DDoS enviando ao seu servidor uma consulta DNS recursiva que retornará uma grande quantidade de dados. muito maior que o pacote original de solicitação de DNS. Ao falsificar (falsificar) seu endereço IP, eles direcionarão esse tráfego extra para os computadores de suas vítimas em vez dos seus próprios, e, é claro, eles farão o maior número de solicitações o mais rápido possível para o seu servidor e qualquer outro DNS aberto resolvedores eles podem encontrar. Dessa maneira, alguém com um pipe relativamente pequeno pode "ampliar" um ataque de negação de serviço usando toda a largura de banda do canal para direcionar um volume muito maior de tráfego para suas vítimas.

ArsTechnica fez um artigo decente sobre o recente ataque DDoS de Amplificação de DNS contra o Spamhaus , e vale a pena uma leitura rápida para obter o básico (e um bom visual da amplificação).

A maneira mais simples de proteger o seu sistema de ser abusado assim é limitar os endereços para os quais o seu servidor realizará buscas recursivas em suas sub-redes locais. (As especificações dependem do servidor DNS que você está usando, é claro).

Por exemplo, se eu estivesse usando o BIND 9 e quisesse simplesmente impedir a recursão de DNS de endereços externos, usaria o seguinte código em minha configuração:

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };

Essa linha de código informa ao meu servidor BIND para processar somente solicitações DNS recursivas para o endereço de loopback local (que eu acho que poderia / deveria definir para o bloco de auto-retorno local, o inteiro / 8) e os 3 espaços de endereçamento IPv4 privados.

Para o Windows Server 2012, que você diz estar usando, você tem as opções abaixo.

1. Separe seu servidor DNS de seu servidor IIS.

  • Pelo menos em um mundo perfeito, não há motivo para você estar executando o DNS na mesma caixa do IIS.
    • Coloque o DNS em uma caixa interna que não seja NAT, portanto, o mundo externo não pode acessá-lo e deixe o IIS residir na caixa externa que o resto do mundo pode acessar. Você pode usar regras de hospedagem dupla ou de firewall para permitir seletivamente o acesso ao servidor DNS do servidor IIS.

2. Bloqueie solicitações DNS externas com um firewall, como o firewall interno do Windows.

  • Para minha surpresa, o DNS do Windows não permite que você restrinja os endereços aos quais as solicitações de DNS recursivas são atendidas, portanto, esse é o método recomendado pela Microsoft.
    • SelecioneasregrasdeDNS(TCPeUDP),váparaaseçãoRemoteIPaddresseadicioneassub-redesemusonasuaLAN,bemcomoosendereçosIPpúblicosdosservidoresqueprecisamdeacessoaoActiveDirectory.AssimcomonoexemploBIND,osespaçosdeendereçosprivadosIPv4são127.0.0.0/810.0.0.0/8192.168.0.0/16e172.16.0.0/12.

3. Desative a recursão .

  • Eu honestamente não tenho certeza do efeito que isso terá no seu ambiente, já que você não declarou realmente como o DNS e o AD estão configurados em seu ambiente e, consequentemente, é a última opção.
    1. Abra o Gerenciador de DNS.
    2. Na árvore de console, clique com o botão direito do mouse no servidor DNS aplicável e clique em Propriedades.
    3. Onde?
    4. DNS / servidor DNS aplicável
    5. Clique na guia Avançado.
    6. Em Opções do servidor, marque a caixa de seleção Desativar recursão e clique em OK.
      • Como temos um ambiente de várias florestas e usamos encaminhadores condicionais para que isso funcione, não irei marcar essa caixa. Pode ser algo para você considerar também.
por 05.02.2014 / 20:31