Bailiwick
O artigo do Linux Journal que Ehtyar postado tem uma boa explicação sobre o que é um bailiwick e como ele se relaciona com o DNS. Basicamente, registros extras são adicionados a uma resposta de DNS para ajudar a localizar servidores DNS delegados. Para citar o exemplo do artigo:
$ dig @ns1.example.com www.example.com
;; ANSWER SECTION:
www.example.com. 120 IN A 192.168.1.10
;; AUTHORITY SECTION:
example.com. 86400 IN NS ns1.example.com.
example.com. 86400 IN NS ns2.example.com.
;; ADDITIONAL SECTION:
ns1.example.com. 604800 IN A 192.168.2.20
ns2.example.com. 604800 IN A 192.168.3.30
Ataque
Detalhes sobre o ataque estão nos slides de Dan (ver slides 24/25). Para atacar um servidor atrás de um firewall:
- Uma pesquisa por um subdomínio de um domínio que o invasor controla (por exemplo, '
1.badguy.com
') é acionada. - O servidor atacante responde com um registro CNAME para o domínio que está tentando envenenar (por exemplo, '
debian.org
'). Isso faz com que uma consulta DNS do destino seja 'debian.org
'. - Assim que o servidor atacante envia o referencial CNAME, ele começa a transmitir respostas DNS falsificadas que incluem uma resposta adicional (por exemplo, '
security.debian.org
' apontando para o endereço IP 'badguy.com
'). - Se o ID da transação na resposta for adivinhado corretamente, o servidor atrás do firewall agora acredita que '
security.debian.org
' resolve o endereço do vilão.
Existem várias maneiras de colocar o servidor atrás do firewall para procurar um endereço IP, solicitações internas do cliente, resolução de endereços IP em logs do servidor, etc. bortzmeyer menciona que o firewall é amplamente irrelevante neste ataque.