Bloqueo de troyanos a nivel de DNS

Mecanismos de bloqueo en el DNS de dominios empleados por troyanos y keylogger para usos maliciosos


TIT: ¿Como emplea el software malicioso el DNS ?

El funcionamiento normal de un keylogger cuando se quiere conectar al servidor remoto para enviar los datos capturados del usurio es el que se describe en la siguiente imagen:

Comunicación del keylogger con el sitio malicioso

Sin embargo si el DNS que se emplea en la organización esta configurado como "master" de los dominios maliciosos , pasaría lo siguiente:

intentos de comunicacion fallida con el sitio malicioso

Es decir los datos nunca llegarían al atacante sino a una máquina intermedia, se puede configurar el "DNS blocking" para que directament el servidor de DNS responda con una respuesta falsa (127.0.0.1) o con una IP predeterminada , como es el caso que se indica más adelante.

TIT: Configuración del resolver para filtrar los dominios

Para configurar el servidor de DNS bind para que resuelva "erroneamente" una serie de dominios hay que hacer lo siguiente:

  1. Creamos un fichero de zona con la información falsa en /var/named llamado "db.local-blackhole" (o donde esten los ficheros de zonas), el fichero sería:
    $TTL 24h
    @ IN SOA ns.institucion.es. null.mydomain.local. (
         1
         8h
         2h
         1w
         1h )
     IN NS ns.institucion.es.
    * IN A W.X.Y.Z
    * IN MX 10 W.X.Y.Z
    
    Notas:
    1. Cambiar ns.institucion.es por el nombre del servidor de DNS
    2. la dirección W.X.Y.Z es una IP de RedIRIS , empleada para "engañar" a los troyanos que se intenten conectar y asi detectar equipos infectados
  2. Copiar a /var/named el fichero que trojan-domains.conf, que contiene un listado de dominios de troyanos
    NOTA: Este fichero es solo un ejemplo, para descargar el fichero de configuración actualizado contactar con el equipo de seguridad de RedIRIS
  3. Si el directorio donde se ha copiado el fichero db.local-blackhole no es el /var/named editar el fichero trojan-domains.conf para que apunte al directorio correcto
  4. Editar el fichero /etc/named.conf y poner al final un include para cargar estos dominios adicionales:
    include "/var/named/trojan-domains.conf";
    
  5. Comprobar con named-checkconf y named-checkzone que los ficheos de configuración y zona son correctos
  6. Hacer un rndc reload

TIT: ¿Por qué emplear W.X.Y.Z ?

Gran parte de los DNS no están configurados por motivos de rendimiento, escalabilidad, etc para guardar información sobre que direcciones IP consultan una determinada información en el DNS o el registro es rotado cada poco tiempo, de forma que aunque el equipo infectado no envía información "maliciosa" al atacante este sigue infectado.

La solución pasa por que el DNS resuelva los dominios maliciosos a una dirección IP fija (W.X.Y.Z) que este monitorizada y pueda observarse las peticiones que se realizan , de forma que se pueda alertar de que equipos realizan las conexiones y así ver que están infectados.

TIT: El sistema experimental en RedIRIS

En RedIRIS de forma experimental se va pone en marcha este piloto de bloqueo de DNS con las siguientes caracteristicas:

  • RedIRIS ofrece una dirección IP pública , monitorizada para detectar que direcciones IP intentan conectare a un los puertos empleados por los troyanos, para detactar que equipos están infectados
  • A partir de diversas fuentes de información RedIRIS generará una o varias listas de dominios maliciosos
  • Las instituciones que quieran participar en la iniciativa deberian:
    • Configurar su DNS resolver de su organización como se comenta en el punto anterior para responder con respuestas falsas a esta lista de dominios
    • Contactar con el equipo de seguridad de RedIRIS ,cert (at) rediris. es para indicarle que quieren participar en el piloto
    • Configurar W.X.Y.Z. con la dirección IP que le indicará RedIRIS y seguir los procedimientos que se le indiquen