Análisis de malware
Detección y prevención de anomalías DNS
agosto 16, por Irfan Shakeel
El malware y los Botnets llevan varios años siendo una amenaza para los sistemas y las redes. Los métodos habituales de detección de virus con un escáner de virus local o su propagación con un sistema de detección de intrusiones (IDS) no mitigarán la amenaza por completo. Las características del tráfico podrían utilizarse para detectar diferentes amenazas. La mayor parte de la comunicación por Internet comienza con una o más búsquedas en el Sistema de nombres de dominio (DNS).
DNS (Sistema de nombres de dominio)
El DNS delega la responsabilidad de transmitir nombres de dominio y asignar esos nombres a recursos de Internet mediante la designación de servidores de nombres autorizados para cada dominio. El mapeo se realiza por nombre de host, dirección IP, registros de texto, información de intercambio de correo, información del servidor de nombres e información clave . DNS se compone de un espacio de nombres de dominio jerárquico que contiene una estructura de datos en forma de árbol de nombres de dominio vinculados (nodos).
Fuente de imagen
Para comprender la funcionalidad de DNS, primero debemos comprender algunas terminologías básicas:
Resolver: un cliente DNS que envía mensajes DNS para obtener información sobre el espacio de nombres de dominio solicitado.
Recursión: la acción se realiza cuando se solicita a un servidor DNS que realice una consulta en nombre de un solucionador de DNS.
Servidor autorizado: un servidor DNS que responde a mensajes de consulta con información almacenada en registros de recursos para un espacio de nombres de dominio almacenado en el servidor.
Resolver recursivo: un servidor DNS que consulta de forma recursiva la información solicitada en la consulta DNS.
Nombre de dominio completo (FQDN): un nombre de dominio completo es el nombre absoluto de un dispositivo dentro de la base de datos DNS distribuida.
RR: Un registro de recursos es un formato utilizado en mensajes DNS que se compone de los siguientes campos: NOMBRE, TIPO, CLASE, TTL, RDLENGTH y RDATA.
Zona: una base de datos que contiene información sobre el espacio de nombres de dominio almacenado en un servidor autorizado.
Cómo funciona el DNS
La función principal que realiza un DNS es la traducción de nombres de host a direcciones IP o de direcciones IP a nombres de host. Podría ser una aplicación cliente, como un navegador web o un cliente de correo electrónico, o cualquier aplicación DNS que envíe una consulta DNS a un servidor DNS solicitando la información definida en un Registro de recursos (RR). El proceso de traducción de la solicitud consta de varios pasos:
- El solucionador de DNS envía un mensaje de consulta al solucionador recursivo solicitando la dirección de www.ehacking.net/ .
- El recursor DNS envía un mensaje de consulta a los servidores de nombres raíz en busca del espacio de nombres de dominio .net .
- Los servidores de nombres raíz envían un mensaje de respuesta de referencia de DNS al recursor de DNS informándole que solicite a los servidores de nombres de dominio de nivel superior (TLD) el espacio de nombres de dominio .net .
- El recursor DNS envía un mensaje de consulta a los servidores de nombres de TLD buscando el archivo . Espacio de nombres de dominio ehacking.net .
- Los servidores de nombres de TLD envían un mensaje de respuesta de referencia de DNS al recursor de DNS informándole que pregunte a los servidores de nombres .ehacking.net , al servidor de nombres 1 .ehacking.net o al servidor de nombres 2 .ehacking.net , sobre este espacio de nombres de dominio.
- El recursor DNS envía una consulta al servidor de nombres1 .ehacking.net o al servidor de nombres2 .ehacking.net solicitando www.ehacking.net .
- Los servidores de nombres .ehacking.net, servidor de nombres 1.ehacking.net o servidor de nombres 2.ehacking.net, envían un mensaje de respuesta de consulta DNS autorizado al recursor DNS con la información RR A (dirección) para www.ehacking.net .
- El recursor de DNS envía un mensaje de respuesta de consulta de DNS al solucionador de DNS con la información de RR A (dirección) para www.ehacking.net .
Detección de anomalías DNS
Existen gusanos y programas maliciosos para generar paquetes DNS que violan el formato de un encabezado DNS válido. Esto se puede detectar a nivel de red, así como en un script basado en host bien formateado que tiene la capacidad de analizar los paquetes y decodificar el tráfico DNS para validaciones. Una vez que hayamos detectado las anomalías, podemos buscar los elementos de acción para las direcciones IP de origen. Para la detección de anomalías DNS, existen dos grupos. El primer grupo de métodos analiza los paquetes en busca de anomalías DNS en los datos que contienen; Estos métodos de detección se pueden realizar en tiempo real a medida que llegan los paquetes. El segundo grupo de métodos realiza análisis estadístico de un gran conjunto de datos. Esto nos permite detectar anomalías en los volúmenes de consultas o en las respuestas a las consultas a lo largo del tiempo.
Lista negra
En general, una lista negra se utiliza para denegar el acceso a ciertos hosts porque se sabe que son maliciosos. La lista negra se puede generar combinando diferentes listas negras populares para comparar la consulta. El mecanismo de verificación de la lista negra se basa en el principio: si está en la lista, es malicioso. Este método probablemente identificará el tráfico DNS anómalo provocado principalmente por humanos.
El mayor defecto del método de la lista negra es que la lista puede contener miles de entradas, lo que parece ser mucho. Puede haber muchos dominios que ya no existen o varias direcciones IP asignadas a un solo dominio.
Detección de DNS de túnel
Dado que los datos DNS suelen estar mal monitoreados y con frecuencia se les permite pasar a través del firewall, es un candidato ideal para un canal encubierto. Los paquetes DNS se pueden utilizar para crear un canal de datos oculto (canal encubierto). Aparentemente existen varias formas de ocultar datos en paquetes DNS legítimos.
La detección de un canal encubierto se basa en el análisis de las características del paquete. Hay algunas características que pueden distinguir los paquetes utilizados en el canal encubierto. Si el canal se utiliza para transportar cantidades razonables de datos, se puede comprobar fácilmente la longitud de la consulta o el tamaño del registro de respuesta. La longitud promedio del millón de dominios más utilizados es de diez caracteres, mientras que la longitud promedio de consulta de un túnel DNS utilizado para copiar un archivo aleatorio supera con creces los 30 caracteres. Si este método se utiliza en combinación con el análisis de tiempo, se puede identificar un flujo de gran volumen de paquetes DNS grandes.
Detección rápida de flujo
Fast-flux es una técnica utilizada por los ciberdelincuentes para ocultar hosts críticos detrás de un conjunto cambiante de hosts comprometidos. Se utiliza un servidor DNS modificado que devolverá un conjunto diferente de direcciones IP para un dominio determinado con el tiempo y transmitirá, por ejemplo, tráfico HTTP al servidor que aloja el sitio malicioso.
El servicio de alojamiento Fast Flux se puede detectar fácilmente. Hay tres cosas que conviene tener en cuenta. La primera noción obvia es la cantidad de registros. El dominio se resuelve en diez registros del tipo «A», lo que es mucho para la mayoría de los sitios web. La segunda noción serían las direcciones IP y la tercera es el tiempo de vida (TTL) anormalmente bajo de los registros. Se ha fijado en 300 segundos o cinco minutos. Esto permite que el proveedor de servicios de flujo rápido cambie de host con mucha frecuencia, para mitigar el hecho de que los bots son clientes normales que no son confiables como proveedores de servicios.
Frecuencia de caracteres
El método de análisis de frecuencia de caracteres es un método muy prometedor para detectar datos generados donde se esperaría un lenguaje natural. Se utiliza en criptografía para detectar características del lenguaje en un texto cifrado. Este método se investigó inicialmente para la detección confiable de canales encubiertos, pero puede detectar datos más anómalos.
Un atacante puede comprimir y cifrar los datos para optimizar el ancho de banda y ocultar los datos. Si se puede predecir el idioma del adversario, las características del idioma se pueden comparar con el nombre de dominio y se puede hacer una suposición si el nombre de dominio es generado por el sistema o elegido por el atacante.
Fallos de implementación utilizados para ataques.
Resolución abierta de DNS
Es un servidor DNS que permite a los clientes DNS que no forman parte de su dominio administrativo utilizar ese servidor para realizar resolución de nombres recursiva. La tarea principal del solucionador abierto es proporcionar respuestas a las consultas de cualquiera que haga una pregunta.
Las actividades maliciosas hicieron que el solucionador abierto de DNS fuera vulnerable a ataques como
Envenenamiento de la caché de DNS: ocurre cuando un atacante envía información RR falsa y generalmente falsificada al solucionador abierto que luego se almacena en la caché de DNS durante el TTL (tiempo de vida) de por vida.
Ataques de amplificación y reflexión de DNS: utiliza un sistema de resolución abierta de DNS para aumentar el volumen del ataque y ocultar la verdadera fuente del ataque. Esto da como resultado ataques DOS y DDOS.
Ataque de utilización de recursos: este ataque intenta consumir todos los recursos disponibles para impactar negativamente las operaciones del solucionador abierto.
Prevención
Las siguientes configuraciones se pueden aplicar al servicio del servidor DNS para evitar que el servidor actúe como un solucionador abierto.
Abra un símbolo del sistema y, en el símbolo del sistema , ejecute el siguiente comando:
Nombre del servidor DnsCmd
/Configuración
/NoRecursión {1|0}
DnsCmd: Este es el nombre de la herramienta utilizada desde la CLI para realizar tareas administrativas para el servicio del Servidor DNS.
/Config: especifica que el argumento del comando DnsCmd se aplica a la configuración del servicio del servidor DNS.
/NoRecursion: especifica que seguirá un argumento de 1 o 0 para deshabilitar o habilitar la recursividad para el servicio del servidor DNS.
{1|0} : este es el nombre de la herramienta utilizada desde la CLI para realizar tareas administrativas para el servicio del servidor DNS.
Abusar de registros TTL
El campo Tiempo de vida (TTL) se utiliza para informar al solucionador cuánto tiempo se puede almacenar en caché el RR hasta que el solucionador necesite enviar una consulta DNS nuevamente. Este campo se puede utilizar de forma maliciosa estableciendo el valor de un RR en un valor TTL corto o largo.
TTL corto : la asignación de nombre de host a dirección IP para dispositivos en el espacio de nombres de dominio solicitado cambiará rápidamente.
TTL largo: puede distribuir los RR del host malicioso a muchos clientes de resolución, permitiendo así su uso para actividades maliciosas.
Prevención: para evitar que un servidor DNS almacene información de tiempo de vida de RR en la caché del solucionador, se puede utilizar la siguiente configuración:
Longitud máxima de caché para RR
// La opción de configuración ‘max-cache-ttl’ permite
// operador para definir la cantidad de tiempo que el servidor DNS
// almacenará información de RR en la caché de resolución.
//
// Nota: los operadores deben probar cualquier cambio no predeterminado
// antes de implementarlo en entornos de producción.
opciones {
max-cache-ttl número;
};
Tamaño máximo de caché
// La opción de configuración ‘max-cache-size’ permite
// operador para definir la cantidad de memoria que tendrá un servidor DNS
// uso para almacenar información de RR en la caché de resolución.
// Cuando los datos almacenados en la caché han alcanzado el valor configurado
// límite de memoria, BIND eliminará la información RR del
// caché para almacenar nueva información de RR.
//
// Nota: Si esta configuración de opciones está configurada en un nivel bajo
// valor, puede hacer que el servidor DNS emita consultas
// más a menudo ya que las entradas almacenadas en la caché serán
// purgado más rápido. Esto depende de la cantidad de
// consulta los procesos del servidor DNS.
//
// Nota: Los operadores deben probar cualquier cambio no predeterminado antes
// para implementar en entornos de producción.
opciones {
tamaño máximo de caché número;
};
Prevención de suplantación de identidad
Se pueden utilizar varias técnicas para prevenir y limitar la suplantación de identidad:
Guardia de fuente IP:
En IP Source Guard, el DHCP inspecciona el tráfico dentro de una VLAN para comprender qué direcciones IP se han asignado a qué dispositivos de red y en qué puerto de conmutador físico. Luego, la información se almacena en una tabla de enlace de espionaje DHCP; La protección de origen de IP puede aprovecharlo para filtrar los paquetes IP recibidos por un dispositivo de red. Si se recibe un paquete con una dirección de origen que no coincide con la tabla de vinculación de vigilancia DHCP, el paquete se descarta.
Lista de control de acceso:
Las listas de control de acceso (ACL) pueden proporcionar protección estática contra la suplantación de identidad contra espacios de direcciones no utilizados y poco confiables. Estas ACL antisuplantación de identidad se aplican al tráfico de red que recibe límites como componente.
La suplantación de identidad se puede minimizar en el tráfico que se origina en la red local aplicando ACL que utilizan entradas de control de acceso (ACE) que limitan el tráfico solo a direcciones locales válidas.
Indicadores de anomalía DNS
- Aumento del número de paquetes DNS
- Disminución de la tasa de aciertos de caché
- Aumento del promedio de consultas DNS de direcciones IP de origen individuales
- Aumento del número de consultas recursivas
- Aumento del número de direcciones IP de origen en un intervalo de tiempo limitado
- Disminución del ratio de consultas resueltas
Hay muchas empresas que trabajan arduamente para superar las anomalías del DNS y las amenazas asociadas a ellas. Están introduciendo rápidamente nuevas configuraciones prometedoras, pero existen algunos protocolos y otras fallas que hacen que el DNS sea vulnerable. Deberíamos considerar algunas medidas de contraataque cuando se encuentre una anomalía de DNS para poder evitar cualquier pérdida a tiempo.