Já foi o tempo em que a ameaça vinha de fora… Com as botnets, além de nos preocuparmos com possíveis ataques, também precisamos garantir que não estamos “atacando” ninguém.
Botnets são rede de computadores infectados, que passam a ser controladas pelo botmaster. Uma botnet pode ter computadores espalhados pelo mundo, e seu controlador a utiliza, sem que os verdadeiros donos dos PCs percebam, para enviar spam e fazer ataques, entre outros.
Segundo estimativa do FBI, existem entre 1 e 5 milhões de hosts infectados nos Estados Unidos e uma botnet pode ser “alugada” por até 50 mil dólares por dia.
Para evitar estes tipo de problema o Cisco ASA, com a licença apropriada, pode fazer a verificação dinâmica, através de URL ou IP, e identificar a comunicação entre um host infectado e seu controlador.
Após habilitar a verificação, quando um host interno tenta acessar uma URL, o ASA consulta o DNS para transformar a URL em IP e então compara com sua base de dados, que é constantemente atualizado pelo Cisco Security Intelligence Operations (trabalha com reputação, como o Senderbase e o Ironport). Caso este IP esteja na base de dados, ele é adicionado no DNS Reverse Lookup Cache, que é consultado quando a conexão é realizada. Assim, todas vez que um host se conectar a este IP é gerando um log, para que o administrador possa tomar as medidas cabíveis.
Também é possível criar sua própria blacklist e whitelist.
Configurando o ASA para detectar botnets
1°) Configure o DNS no ASA, para que as URLs (nomes) possam ser convertidos para IP.
dns domain-lookup outside
dns server-group DefaultDNS
name-server 8.8.8.8
domain-name brainwork.com.br
2°) Habilite o dynamic-filter updater-client, para baixar as atualizações do SIO.
dynamic-filter updater-client enable
3°) Configure o ASA para utilizar o banco de dados (também podemos configurar para usar black list).
dynamic-filter use-database
4°) Habilite a filtragem para todos os protocolos.
access-list dynamic-filter_acl extended permit ip any any
5°) Aplique a filtragem na interface de saída, neste caso a outside.
dynamic-filter enable interface outside classify-list dynamic-filter_acl
6°) Agora habilite o DNS snooping na interface outside, que fará a inspeção nas consultas DNS.
class-map dynamic-filter_snoop_class
match port udp eq domain
policy-map dynamic-filter_snoop_policy
class dynamic-filter_snoop_class
inspect dns dynamic-filter-snoop
service-policy dynamic-filter_snoop_policy interface outside
7°) (Opcional) Adicione entradas na black e white lists.
dynamic-filter blacklist
name exemploblack1.com.br
name exemploblack2.com.ru
address 200.20.20.1 255.255.255.255
dynamic-filter whitelist
name exemplowhite1.com.br
name exemplowhite2.com
address 200.30.1.1 255.255.255.255
Bloqueando a botnet
Após as configurações o ASA passará a gerar logs quando um host tentar acessar um IP com má reputação.
Exemplo de log
ASA-4-338002: Dynamic Filter permitted black listed TCP traffic from inside:10.1.1.45/6798 (209.165.201.1/7890) to outside:209.165.202.129/80 (209.165.202.129/80), destination 209.165.202.129 resolved from dynamic list: bad.example.com
Após verificar o log, devemos impedir que o host infectado tenha acesso a rede.
1°) Crie uma access-list.
access-list bloquear_botnet extended deny ip host 10.1.1.45 host 209.165.202.129
access-list bloquear_botnet extended permit ip any any
2°) Aplique a access-list na interface outside.
access-group bloquear_botnet out interface outside
No site da Cisco também tem um vídeo tutorial, mostrando como fazer esta configuração via ASDM.
Até a próxima.