El Sistema de nombres de dominio (DNS) permite la comunicación en redes. DNS puede parecer una fuerza o entidad invisible hasta que algo falla, porque si DNS falla, ¡nada funciona!
En este artículo, repasaremos las prácticas recomendadas y las medidas de seguridad más importantes para mantener operativa tu infraestructura DNS. Asegúrate de revisar la siguiente lista para crear un DNS seguro y confiable.
Tecnologías Avanzadas para Garantizar un Alto Rendimiento de DNS
Garantizar la redundancia y alta disponibilidad del DNS
DNS es la base de las aplicaciones de red, por lo que la infraestructura de DNS debe tener una alta disponibilidad. Y para garantizar el nivel necesario de redundancia, debes tener al menos dos servidores DNS en tu organización, uno primario y otro secundario.
Para admitir sistemas críticos para el negocio, debes tener al menos dos servidores DNS internos. Todos los sistemas de directorio activo, correo electrónico y uso compartido de archivos dependen de que DNS funcione correctamente. Sin servidores DNS internos que funcionen correctamente, los dispositivos internos no podrán comunicarse.
Si un servidor DNS tiene un problema, el otro lo respalda inmediatamente. Los administradores configuran el equipo para que el DNS secundario se use automáticamente si el DNS primario no responde. La dirección IP del servidor DNS interno puede ser cualquier dirección en el rango de direcciones IP de la red privada.
Garantizar la redundancia de los servidores DNS te permite lograr una alta disponibilidad de la infraestructura de DNS. La replicación continua desde los servidores primarios a los secundarios mantendrá tus registros DNS sincronizados y protegerá el sistema contra interrupciones. Puedes estar seguro de que el usuario final siempre podrá acceder a los sistemas.
Ocultar servidores y registros DNS
No todos los servidores y registros DNS necesitan estar disponibles para todos los usuarios.
Primero, expón solo los servidores y registros que necesitan las personas que los usan directamente. Esto es especialmente importante si tus nombres de dominio son públicos.
Segundo, oculta tu servidor DNS principal. Los usuarios externos no deberían poder ver tus servidores principales. Los registros de estos servidores no deberían aparecer en ninguna base de datos pública de servidores de nombres. Solo los servidores DNS secundarios deberían atender las consultas de los usuarios.
Si tienes un servidor DNS accesible fuera de tu red, debería ser un servidor DNS autorizado. Los usuarios externos no deberían poder consultar tus servidores DNS recursivos. La configuración del sistema solo será de alto rendimiento si el servidor responde solo a consultas iterativas para las zonas correspondientes de las que es autoridad.
Por último, solo los administradores del sistema y el personal de TI de tu organización deberían poder acceder a los servidores principales. Si tus servidores DNS principales están expuestos a todos los usuarios internos, podría representar un riesgo de seguridad grave. Como regla general, es mejor ocultar los servidores y algunos registros DNS de los usuarios que no los necesitan.
¿Deberías usar un servidor DNS interno o externo?
La respuesta a esta pregunta depende de tu configuración interna.
Para que los dispositivos de un dominio puedan comunicarse entre sí, debes especificar un servidor DNS interno. Los servidores DNS externos no pueden resolver nombres de host de dispositivos internos.
Por ejemplo, cuando tu computadora DESKTOP1 realiza una consulta de DNS para la impresora de la oficina o el servidor hr-1, solo un DNS interno puede proporcionar el registro del recurso. Si configuras tu dispositivo para que use un DNS externo, como 8.8.8.8 de Google, no podrás usar recursos internos.
Para entornos internos, debes configurar tanto un DNS primario como uno secundario en tu servidor de nombres interno. Incluso si tu servidor DNS principal falla, no experimentarás problemas de conectividad. El servidor DNS secundario contiene todos los registros y actúa como respaldo. En caso de cualquier problema, este servidor atenderá todas las consultas hasta que el servidor principal vuelva a estar en línea.
Uso de un servidor DNS local o cercano
Las oficinas de las grandes organizaciones a menudo están ubicadas en todo el mundo. En tales casos, debes configurar un servidor DNS local en cada oficina si tu infraestructura lo permite.
Esto se debe a que un servidor local reduce el tiempo de respuesta para las consultas de DNS. Cuando una consulta debe viajar a través de una red de área extensa a un servidor de nombres remoto, aumenta el tiempo de carga.
Con una gran cantidad de clientes, naturalmente hay un gran volumen de consultas de DNS. Si bien un grupo centralizado de servidores DNS ciertamente puede manejar todas estas consultas, lo hará con una latencia significativa. Si las computadoras de tus usuarios apuntan a un servidor de nombres local o cercano, el tiempo de respuesta puede reducirse significativamente.
En tales casos, la latencia no suele superar los 50 ms. De hecho, generalmente es mucho menor. Usar el servidor DNS más cercano reduce el tiempo de carga para todos tus dispositivos. Además, reduces la carga en tu servidor remoto en la sede y mejoras su rendimiento. La recomendación de tener al menos dos servidores DNS también se aplica aquí.
Mejores Prácticas para Garantizar la Seguridad del DNS
Los servidores DNS son a menudo el blanco de los ataques cibernéticos. Asegurar tu infraestructura de DNS es un paso crucial para evitar que los intrusos entren en tu organización. Revisa las siguientes medidas de seguridad para evitar la manipulación maliciosa de la configuración de DNS:
Implementa registro de servidor DNS
El registro del servidor DNS es una de las formas más efectivas de rastrear la actividad del DNS. Los registros te avisan si alguien intenta manipular tus servidores DNS. Además de la actividad del usuario, los registros de depuración te informan sobre problemas con las consultas o actualizaciones de DNS.
Los registros de DNS también muestran evidencia de envenenamiento de caché. En este tipo de ataque, un atacante modifica los datos almacenados en caché y los usuarios son redirigidos. Por ejemplo, la dirección IP de www.youtube.com podría reemplazarse con la dirección IP de un sitio web malicioso. Cuando un usuario realiza una consulta de DNS para youtube.com, el servidor ahora devuelve la dirección IP incorrecta. Como resultado, los usuarios terminan en un sitio web que no tenían la intención de visitar y se convierten en objetivos de los piratas informáticos.
Aunque la depuración del registro de DNS mejora la seguridad, algunos administradores del sistema optan por omitirla. La razón principal es el impacto en el rendimiento. Si bien el seguimiento de la actividad de la red puede ayudarte a detectar ciertos ataques como DDoS, no es efectivo contra el envenenamiento de caché. Por lo tanto, te recomendamos encarecidamente que utilices registros de depuración de DNS.
Bloqueo del caché DNS
Cada vez que un cliente presenta una consulta, el servidor DNS buscará la información y la guardará en caché para uso futuro. Este proceso permite que el servidor responda a las mismas consultas más rápidamente. Los atacantes pueden aprovechar esta función manipulando la información almacenada en caché.
El siguiente paso después de utilizar los registros de depuración de DNS es bloquear el caché de DNS. Esta función determina cuándo se pueden modificar los datos almacenados en caché. El servidor almacena información de consulta durante un tiempo determinado por el TTL (Time to Live). Si no se utiliza el bloqueo de caché, la información puede sobrescribirse antes de que expire el TTL. Esto deja espacio para ataques de envenenamiento de caché.
En algunos sistemas operativos, el bloqueo de caché puede estar habilitado por defecto. La escala de bloqueo de caché puede ser de hasta el 100 %. Cuando se establece en un valor del 70, los datos no pueden sobrescribirse hasta que el TTL sea del 70 %. Cuando se establece el bloqueo del caché en 100, se bloquea la modificación de la información almacenada en caché hasta que expire el TTL completo.
Filtrado de consultas DNS para bloquear dominios maliciosos
El filtrado de DNS es una forma eficaz de restringir el acceso de los usuarios a un sitio web o dominio. La razón principal para bloquear la resolución de nombres para un dominio es porque hay información sobre la naturaleza maliciosa de ese dominio. Cuando un cliente realiza una consulta a un sitio web bloqueado, el servidor DNS corta cualquier comunicación entre ellos.
El filtrado de DNS reduce significativamente la posibilidad de que virus y malware ingresen a su red. Cuando un usuario no puede acceder a un sitio malicioso, también existe una mínima posibilidad de que las amenazas ingresen a su infraestructura. De esta forma, su personal de TI no necesita trabajar las 24 horas para limpiar virus de los sistemas.
Además de las consideraciones de seguridad, hay otra razón por la que las organizaciones pueden bloquear un dominio: la política empresarial o las razones de productividad. Los dominios bloqueados pueden incluir redes sociales, juegos de apuestas, pornografía, sitios de transmisión de video o cualquier otro sitio web. El DNS puede filtrar solicitudes por usuario, grupo o dominio, bloqueando el acceso para todos los usuarios.
Los modernos sistemas de seguridad de software y los firewalls vienen con filtrado de DNS integrado. Algunos de ellos ofrecen listas de dominios maliciosos que se actualizan periódicamente. Puede utilizar una solución de software lista para usar y automatizar la filtración de DNS en lugar de agregar nuevas entradas manualmente.
Comprobación de la integridad de los datos DNS con DNSSEC
Las Extensiones de seguridad del sistema de nombres de dominio (DNSSEC, Domain Name System Security Extensions) garantizan que los usuarios reciban respuestas válidas a sus solicitudes. La integridad de los datos se logra mediante firmas digitales DNSSEC en los datos DNS proporcionados a los servidores de nombres. Cuando un usuario final realiza una consulta, el servidor DNS proporciona una firma digital con la respuesta. Por lo tanto, los usuarios saben que han recibido verdadera información como respuesta a su consulta.
Este nivel adicional de seguridad ayuda a mitigar los ataques al protocolo DNS. Los ataques de suplantación y envenenamiento de caché de DNS se mitigan con éxito, ya que DNSSEC proporciona integridad de los datos y autorización de origen. Los usuarios ahora pueden estar seguros de que están visitando los sitios que pretendían visitar.
Configurar listas de control de acceso
Las listas de control de acceso (ACL) son otra forma de proteger los servidores DNS del acceso no autorizado y los ataques de suplantación. Solo los administradores del sistema y de TI deberían tener acceso a su servidor DNS principal. Configurar ACL para permitir conexiones entrantes al servidor de nombres desde hosts específicos asegura que solo personal autorizado pueda acceder a sus servidores.
Además, las ACL deben definir qué servidores pueden realizar transferencias de zona. Los atacantes pueden intentar descubrir la configuración de su zona enviando solicitudes de transferencia de zona a través de servidores DNS secundarios. Si bloquea todas las solicitudes de transferencia de zona a través de servidores secundarios, el atacante no podrá obtener información de la zona. Esta configuración evita que terceros obtengan visibilidad de cómo está organizada su red interna.
Conclusión
Siempre hay margen para mejorar la arquitectura y seguridad de su sistema DNS. Existen amenazas constantes que esperan a que surja una vulnerabilidad en su sistema de información para explotarla.
Sin embargo, al seguir las recomendaciones descritas en esta guía, cubrirá los aspectos más importantes necesarios para garantizar la seguridad y resistencia de su infraestructura DNS.