Blog Agility

Realizando Zone Transfers seguras por meio de chaves de TSIG no DNS Infoblox

Realizando Zone Transfers seguras por meio de chaves de TSIG no DNS Infoblox

Redes de Computadores possuem componentes que devem ser arquitetados com cuidado levando em consideração vários pontos como segurança de acesso, visibilidade, etc. O DNS é um protocolo cuja implementação pode abranger varios servidores em ambientes diferentes, com maior ou menor nível de segurança. Com essa capilaridade de ambientes, o conceito de segurança às vezes se perde ou simplesmente deixa de existir. Tal fato origina não só vulnerabilidades, mas falhas humanas que geralmente são atribuidas erroneamente a componentes nas camadas mais altas da rede.

O DNS também oferece uma vasta biblioteca de componentes que visam limitar o que o mundo externo pode fazer com ele. Um desses componentes é o TSIG. O TSIG faz uso de chaves criptografadas entre dois servidores e/ou clientes para garantir que somente o conhecedor da chave de TSIG possa realizar interações com o servidor de DNS.

Um dos recursos do DNS que pode utilizar TSIG é o mecanismo de transferência de zonas. Transferência de Zona é o processo pelo qual um servidor secundário (ou slave) “puxa” os registros do servidor master, replicando assim atualizações como adição e remoção de registros entre diversos nameservers, sem que o administrador tenha que realizar multiplas alterações em mais de um servidor. Este mecanismo é amplamente utilizado e muitas vezes, de forma pouco segura. Permitir Zone Transfers sem exceções ou de forma pouco limitada pode permitir que alguém mal intencionado tenha acesso a todo o conteúdo da zona, podendo criar um servidor de DNS falso (também conhecido como Rogue Server), facilitando assim o hijack do DNS e, um pouco mais a frente, ataques de phishing.

Neste artigo, vamos demonstrar como criar as chaves de TSIG e usá-las para assegurar transferências de zona entre um DNS Infoblox e um DNS Bind. Vamos começar pelo Infoblox.


Para realizar a configuração, efetue login no Infoblox e navegue até Data Management > DNS

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_01

Localize e clique no botão “Grid DNS Properties” na Toolbar (Lado Direito)

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_02

Selecione a Aba Lateral “Zone Transfers”

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_03

No contexto da tela, selecione a opção “Set of ACEs”

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_04

Clique no botão  e selecione a opção TSIG Key

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_06

No menu “Add Tsig Key”, adicione ao campo Key Name um nome para identificar a chave.

Em Key Algorithm, selecionamos o algoritmo de criptografia utilizado para codificar a chave TSIG. Podemos escolher entre HMAC-MD5 e HMAC-SHA256. Vamos utilizar a HMAC-MD5, selecionando-a na lista suspensa.

Com o Algoritmo desejado selecionado, clique em Generate Key Data. O Infoblox realizará a geração de uma chave automaticamente, conforme exibido abaixo. Clique em Add ao finalizar.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_07

Verifique a configuração e clique em Save & Close para salvá-la.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_08

Em seguida, vamos efetuar o restart do serviço no Infoblox.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_09

Agora vamos dizer ao slave que realize Zone Transfers utilizando a chave criada. Para isso:

No diretório do Bind, crie um arquivo com o nome zt-tsig.key.

Edite-o com a configuração abaixo. Dica, mantenha a identação para facilitar a interpretação do arquivo.

 

key "zt-tsig.key" {
algorithm hmac-md5;
secret "jnXdKbIdUi7XcbgN2mmODw==";
};
# IP do Servidor Master

server 10.2.61.100 {
keys { zt-tsig.key; };

};

 

Para finalizar a configuração, é necessário mencionar esta chave de TSIG no arquivo de configuração do BIND. Ainda no diretório do BIND. Inclua no arquivo a seguinte linha

Include /etc/bind/zt-tsig.key”;

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_10

Reinicie o serviço do BIND após concluir as alterações.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_11
Vamos inserir um registro de teste para que o Infoblox envie uma mensagem de Notify ao slave e este, por sua vez tente realizar uma transferência de zona.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_12

Feito isso, vamos analisar os logs do Infoblox para ver a interação entre os dois nameservers.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_13

Para realizar um double check e verificar que a transferência foi realizada, vamos tentar resolver o novo registro transferido ao DNS Slave.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_14
Agora, vamos checar da parte insegura da rede. De um cliente qualquer da rede, vamos tentar realizar a transferência de zona sem a chave TSIG.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_15
Veja as evidencias no Syslog.

2015_04_Realizando_Zone_Transfers_seguras_atravs_de_chaves_de_TSIG_no_DNS_Infoblox_16

Note que realizamos a configuração no nível do Grid. Com isso, todas as zonas de DNS agora estão utilizando chaves de TSIG para realizar transferências de zona. Ainda é possível configurar chaves de TSIG no nível do membro e da zona, para uma configuração mais específica.

A configuração de chaves TSIG aumenta a segurança e o controle do DNS. Como boa prática, utilize chaves diferentes para cada transação (uma pra zone transfer, outra para queries, outra para atualizações dinâmicas, etc.) Fazer isso garante maior proteção para cada chave, evitando que ela se propague pelo ambiente. Note que, apesar do acréscimo considerável de segurança com o uso de chaves de TSIG, os dados do DNS (registros) não são criptografados durante a transferência. Cuide também para que o acesso administrativo aos servidores slave tenha uma policy bem definida e uma estrutura aceitável de logging. Garantir a segurança dos serviços básicos da rede é acrescentar confiabilidade e resistência ao ambiente.  Até o próximo artigo.