Asegurar el DNS contra envenamiento de cache Asegurar el DNS contra envenamiento de cache Si un servidor DNS es afectado por un ataque de enveneamiento de cache de DNS con este tipo de ataque devolverá a los clientes direcciones falsas de las peticiones. Por ejemplo si un usuario teclea http://www.unam.mx, con el envenenamiento del DNS, un usuario podría ser redireccionado a un sitio Web falso o a un sitio que ejecute código malicioso. 1. Introducción El DSC/UNAM−CERT ha estado recibiendo reportes de problemas relacionados con ataques de enveneamiento de cache en servidores DNS de Windows y referenciados por Microsoft como corrupción de la cache de DNS. El SANS mediante su centro de alertas, el Internet Storm Center (ISC), colocaron en días pasados en Amarillo el nivel de alerta debido a los casos de DNS cache poisoning que se recibieron. El primer caso de esta técnica se dio en julio de 1997por Eugene Kashpureff. Kashpureff hizo esto como truco político que protestaba el control del InterNIC sobre dominios DNS. Kashpureff inyectó información engañosa en las caches del DNS alrededor del mundo referente a la información del DNS que pertenecía al Network Solutions Inc.s (NSI) el Internets Network Information Center (InterNIC). La información volvía a dirigir a clientes legítimos que deseaban comunicarse con el servidor Web en el InterNIC al servidor Web de AlterNIC de Kashpureff. Un intruso puede aprovecharse de la vulnerabilidad de Cache Poisoning usando un servidor de nombres malicioso y formular información engañosa intencionadamente. Esta información maliciosa es enviada como una respuesta a una consulta normal y consigue depositarla en el servidor DNS vulnerable. Una forma para forzar un servidor susceptiblemente vulnerable en la obtención de información falsa es que el intruso envíe una consulta para que un servidor DNS remoto responda información que pertenece a una zona del DNS para la cual el servidor DNS del intruso es autoritativo. Teniendo almacenada esta información, el servidor DNS remoto es probable que dirija equivocadamente a los clientes legítimos de este servidor. El principal propósito del DNS Cache Poisoning es engañar a un Servidor DNS para entregar información errónea a las peticiones que se le hagan. El impacto que tiene el Cache Poisoning es que el intruso puede provocar una Negación de Servicio (DoS) o enmascararse como una entidad de confianza. Estudios recientes muestran que en el pasado mes de Marzo del año en curso el Cache Poisoning fue la principal amenaza de Internet, ya que los intrusos hacen uso de la usurpaci de identidad para conducir a los intrusos hacia sitios donde se les instala spyware, adware y otro tipo de códigos maliciosos a sus equipos o simplemente los redireccionan hacia otros sitios para poder hacer fraudes por este medio, ya que la tendencia de muchos intrusos es enriquecerse de forma rápida mediante los ataques a usuarios finales de Internet. Con esto se estima que fueron afectadas de 500 a 1000 compañías por los ataques generados en Marzo. 1 Asegurar el DNS contra envenamiento de cache En un principio se manejaba que las configuraciones predeterminadas de un servidor DNS en Windows NT 4.0 y Windows 2000 eran factibles a un ataque de DNS caché poisoning, solo Windows 2003 Server tiene un configuración segura de forma predeterminada. En realidad los sistemas Windows pueden prevenir este tipo de ataques bajo las siguientes consideraciones para cada una de las versiones de servidor de Windows. 2. Windows NT 4.0 Server Para esta versión de Windows el ataque se pude evitar teniendo instalado el Service Pack 4 o posteriores y filtrando los registros de respuestas no seguras en el registro. De la siguiente manera. ♦ Inicie el editor de registro (Regedt32.exe). ♦ Localice la siguiente llave en el registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters ♦ En el menú Edición seleccione la opción Agregar valor y establezca los siguientes valores: Nombre del valor : SecureResponses Tipo de dato: REG_DWORD Valor: 1 (Para eliminar datos no seguros) ♦ Cierre el editor del registro. 3. Windows 2000 Server De forma predeterminada, en Windows 2000 con Service Pack 1 y 2 no existe ninguna llave para eliminar los datos no seguros. Para el caso de Windows 2000 con SP3 o posteriores la protección contra el envenamiento de cache de DNS esta habilitada de forma predetermianda, la llave del registro mencionada a continuación no existe y esta no es necesaria. La siguiente llave solo es necesaria para los casos con sistemas Windows 2000 con SP1 y SP2. ♦ Inicie el editor de registro (Regedt32.exe). ♦ Localice la siguiente llave en el registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters ♦ En el menú Edición seleccione la opción Agregar valor y establezca los siguientes valores: Nombre del valor : SecureResponses Tipo de dato: REG_DWORD Valor: 1 (Para eliminar datos no seguros) ♦ Cierre el editor del registro. 2 Asegurar el DNS contra envenamiento de cache La misma entrada puede ser agregada en modo gráfico de la siguiente manera: ♦ Abra la consola de administración DNS haciendo clic en Inicio, en Programas, en Herramientas administrativas y a continuación, haga clic en DNS. ♦ Haga clic con el botón derecho del ratón en el nombre del servidor, en el panel de la izquierda. ♦ Seleccione Propiedades. ♦ Seleccione la pestaña Avanzadas. ♦ Habilite la opción Asegurar cache contra corrupción (Secure cache against pollution). En la siguiente figura se puede observar la opción de Secure cache against pollution habilitada para una versión de Windows 2000 Server en Inglés. Es recomendable que se verifique que esta opción esta seleccionada, para asegurarnos de no permitir este tipo de ataque en nuestro servidores DNS. De esta forma el DNS examinará la respuesta de otro servidor DNS para determinar si los nombres a los que hace referencia son intentos para corromper la caché DNS. 4. Windows Server 2003 3 Asegurar el DNS contra envenamiento de cache En el caso de la versión 2003 de Windows la protección contra la corrupción de la caché viene habilitada de forma predeterminada, pero se recomienda verificar que esto sea así, lo cual se realiza de la siguiente manera: ♦ Abra la consola de administración DNS haciendo clic en Inicio, en Programas, en Herramientas administrativas y a continuación, haga clic en DNS. ♦ Haga clic con el botón derecho del ratón en el nombre del servidor, en el panel de la izquierda. ♦ Seleccione Propiedades. ♦ Seleccione la pestaña Avanzadas. ♦ Verificar que la opción Asegurar cache contra corrupción (Secure cache against pollution) se encuentre habilitada. En Windows 2003 la llave mencionada en las versiones como NT y 2000 no existe. 5. Prevenir que el resolvedor de DNS acepte respuestas de servidores no consultados De forma predeterminada, el resolvedor acepta respuetas de servidores que un cliente/servidor DNS no consultó, así como también de las consultas 4 Asegurar el DNS contra envenamiento de cache que realiza. Esto representa una posible falla de seguridad, debido a que servidores DNS's no autorizados podrían pasar registros de recursos A inválidos con el propósito de redireccionar de forma maliciosa las subsecuentes consultas DNS. Para deshabilitar esta característica, se debe agregar la entrada del registro QueryIpMatching con un valor de 1, el tipo de dato debe ser REG_DWORD de la siguiente manera: C l a v e d e l r e g i s t r o : HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\DNS\Parameters Nombre del valor : QueryIPMatching Tipo de dato: REG_DWORD Valor: 0 ó 1 (predeterminado es 0) Cuando el valor de QueryIPMatching es establecido a 1 en un sistema, el sistema solo aceptará respuestas de resolución de DNS desde la misma dirección IP del servidor DNS que fue consultado originalmente. Por lo tanto, si una cliente/servidor consulta un servidor DNS con la dirección 192.168.10.2, entonces el cliente sólo aceptará respuesta de consultas únicamente desde la dirección 192.168.10.2. Estableciendo este valor ayuda a prevenir el envenenamiento de la caché del nombre de servidor en la computadora. Este valor no está relacionado con la opción DNS caché poisoning de los servidores DNS. Este valor puede configurarse servidores DNS debido a que también actúan como clientes al momento de realizar el reenvío de consultas. 6. Referencias 7. Revisión histórica ♦ Liberación Original: 11 de abril de 2005. ♦ Última Actualización y Revisión: 11 de abril de 2005. 5 Asegurar el DNS contra envenamiento de cache El Departamento de Seguridad en Computo/UNAM−CERT agradece el apoyo en la elaboración y revisión de este tutorial a: • Juan López Morales ([email protected]) • Luis Fernando Fuentes Serrano ([email protected]) • Jesús Ramón Jiménez Rojas ([email protected]) Para mayor información acerca de éste tutorial de seguridad contactar a: UNAM CERT Equipo de Respuesta a Incidentes UNAM Departamento de Seguridad en Cómputo DGSCA − UNAM E−Mail : [email protected] http://www.cert.org.mx http://www.seguridad.unam.mx ftp://ftp.seguridad.unam.mx Tel : 56 22 81 69 Fax : 56 22 80 43 6