Cómo funciona NTP
La ley de Segal establece que
Un hombre con un reloj sabe qué hora es . Un hombre con dos relojes nunca está seguro.
El científico informático David L. Mills creó NTP a principios de la década de 1980 para sincronizar los relojes de las computadoras con una referencia de tiempo estándar. Desde el inicio de NTP, un grupo de voluntarios El proyecto del grupo NTP ha mantenido un gran «grupo virtual de servidores de tiempo disponible públicamente que proporciona un servicio NTP confiable y fácil de usar para millones de clientes» en todo el mundo para muchas distribuciones de Linux y dispositivos de red.
Como se detalla en NTP .org, NTP funciona de manera jerárquica al pasar el tiempo de un estrato a otro. Por ejemplo, el estrato 0 sirve como reloj de referencia y es el servidor de hora más preciso y de mayor precisión (p. ej., relojes atómicos, relojes GPS y relojes de radio .) Los servidores de Estrato 1 toman su tiempo de los servidores de Estrato 0 y así sucesivamente hasta el Estrato 15; Estrato 16 cl Los ocks no están sincronizados con ninguna fuente. El tiempo en un cliente se establece mediante un intercambio de paquetes con uno o más servidores de estrato. Estos paquetes colocan marcas de tiempo en cada mensaje y el tiempo necesario para transmitir los mensajes son factores en el algoritmo para establecer el consenso de tiempo que debería estar en el cliente.
NTP puede proporcionar una fuente de tiempo precisa a través del consenso con múltiples servidores de entrada. También puede identificar qué servidores de tiempo disponibles son inexactos. Un desafío es que NTP se creó durante una época en la que la comunidad de Internet era más amigable. Durante el inicio de NTP, los servidores NTP no estaban preocupados por la verificación del usuario. A principios de la década de 1980, era común que los servidores NTP estuvieran disponibles públicamente como un recurso que los desarrolladores podían usar para solucionar problemas y confirmar su propia solución NTP.
El protocolo estándar para NTP es el Protocolo de datagramas de usuario (UDP). Esta decisión de diseño creó oportunidades para el abuso. UDP, que no tiene conexión, es un protocolo de mejor esfuerzo y, por lo tanto, más susceptible a la falsificación y pérdida de paquetes que el Protocolo de control de transmisión (TCP). Si bien los voluntarios del proyecto del grupo de NTP han continuado avanzando en NTP, la motivación de muchos administradores de red y propietarios de negocios para parchear su propio equipo no es tan fuerte. Desde su inicio, el protocolo de red NTP se ha integrado en innumerables sistemas, muchos de los cuales no han sido parcheados y podrían estar ejecutando código con 20 revisiones o más.
Ataques relacionados con vulnerabilidades NTP
Cory Doctorow escribió recientemente sobre las posibles consecuencias de NTP obsoleto para Boing / Boing:
NTP es cómo prácticamente todas las computadoras con las que interactúas mantienen su reloj preciso, que es una función tan fundamental para el funcionamiento de Internet que no se puede exagerar … Es más, las vulnerabilidades en NTP habían convertido a los muchos servidores de tiempo de Internet en multiplicadores de fuerza para ataques de Denegación de Servicio, convirtiendo los ataques simplemente castigadores en casi imparables .
El método que se emplea para los recientes ataques DDoS no se basa en vulnerabilidades sino en una configuración deficiente. Los servicios NTP responden a una solicitud de consulta de una lista de servidores supervisados. Una sola solicitud pequeña con una fuente falsificada puede generar una lista de 600 servidores y enviarse a un destino. Aunque no hay vulnerabilidad, cuando cientos o miles de estos servidores están siendo redirigidos a un objetivo involuntario, las víctimas no se preocupan por la semántica del problema que les causa dolor; solo quieren alivio.
La sincronización de tiempo en los sistemas, o la falta de ella, puede ser un factor importante que contribuye a las vulnerabilidades que pueden comprometer las funciones básicas de un sistema. Además del abuso de NTP que contribuye a los ataques DDoS, la falta de la sincronización de tiempo en una red crea una oportunidad para ataques de reproducción (es decir, ataques de reproducción) que involucran el retraso repetido falso o malévolo de una transmisión de datos auténticos.
Por ejemplo, un ataque de reproducción puede ocurrir cuando un usuario intenta para proporcionar prueba de identidad a otro usuario. Un actor malintencionado en el medio interceptaría el mensaje y evitaría que llegue a su objetivo. El usuario malintencionado envía una solicitud de confirmación de identidad e incluye la prueba robada como validación. Si el el tiempo no está sincronizado, la ventana en la que se permite el intercambio se puede aumentar más allá de lo que se considera seguro y permite el subterfugio. Como resultado, los usuarios válidos pueden ser engañados para que piensen que han ly confirmó la identidad de un impostor haciéndose pasar por un usuario legítimo. Para ser justos, este tipo de ataque de repetición es poco común y extremadamente difícil de ejecutar con éxito sin acceso a la red, la ruta de comunicaciones y una máquina comprometida en esa ruta.
Muchos expertos en seguridad, como Shaun Kelly , han señalado que NTP se ha utilizado para manipular registros y cambiar la hora en un sistema informático, alterando la secuencia de eventos.Cuando los relojes no están sincronizados, los analistas de red tienen muchas más dificultades para realizar la correlación de registros en sistemas dispares. La manipulación de NTP puede hacer que la identificación de las actividades de la red y la secuencia de eventos que conducen a un ataque sea mucho más difícil de identificar.
Otras aplicaciones que estarían en riesgo porque el tiempo no funciona son las cámaras de seguridad y el comercio de alta velocidad. Muchos algoritmos de cifrado sensibles al tiempo que involucran intercambios de claves y tokens también están en riesgo debido a las debilidades de NTP.
Mejores prácticas de NTP
El resto de esta publicación detalla las mejores prácticas para configurar su propio servidor NTP y solicitar un servidor NTP público.
Use Public NTP para hosts externos. Si es una empresa está construyendo capacidades, servicios u otras plataformas integradas que están destinadas a implementarse fuera de la empresa, los administradores de red podrían considerar solicitar un servidor NTP público del grupo de servidores disponibles mencionado anteriormente.
Es importante tener en cuenta que la mayoría de los servidores NTP públicos especifican reglas de participación. Si una empresa tiene varios dispositivos dentro de la empresa que usarán NTP, tendría sentido configurar su propia jerarquía para sincronizar en lugar de competir por el acceso a los servidores disponibles públicamente.
Configure su propia jerarquía interna Servicio jerárquico NTP para su red. Es posible comprar dispositivos NTP Stratum 1 o Stratum 0 para usarlos internamente por menos del costo de un servidor típico. También es posible configurar un servidor NTP privado a un costo muy bajo. La viabilidad de configurar un servidor NTP comercial estándar (COTS) se evidencia en un esfuerzo reciente para configurar una computadora Raspberry Pi como un servidor Stratum-1. Si decide configurar el suyo propio, considere las siguientes prácticas recomendadas:
- Estandarice a la hora UTC. Dentro de una empresa, estandarice todos los sistemas a la hora universal coordinada (UTC). La estandarización a UTC simplifica la correlación de registros dentro de la organización y con partes externas sin importar en qué zona horaria se encuentre el dispositivo que se sincroniza.
- Asegurar el servicio de hora de la red. Restrinja los comandos que se pueden utilizar en los servidores de estrato. No permita consultas públicas de los servidores de estrato. Solo permita que las redes / hosts conocidos se comuniquen con sus respectivos servidores de estrato.
- Considere la necesidad comercial de criptografía. Muchos administradores intentan proteger sus redes con comunicaciones cifradas y autenticación cifrada. Introduciría una nota de precaución aquí porque, aunque existen servicios criptográficos asociados con NTP para proteger las comunicaciones NTP, el uso del cifrado introduce más fuentes de problemas, como requerir la administración de claves, y también requiere una sobrecarga computacional más alta.
- Recuerde la Ley de Segal. Idealmente, funcionaría tener tres o más servidores de Estrato 0 o Estrato 1 y usar esos servidores como maestros primarios. Recuerde la Ley de Segal: tener dos NTP servidores hacen que sea difícil saber cuál es el correcto. Dos servidores Stratum 0 proporcionarían una marca de tiempo más precisa porque están usando una fuente de tiempo que se considera definitiva.
La presencia de tres o más fuentes de tiempo permitiría que la red mantuviera tiempo exacto incluso si falla uno de los maestros primarios. Idealmente, los servidores NTP estarían ubicados en tres ubicaciones geográficamente dispares. Este grupo de maestros primarios sería la fuente de tiempo para la empresa. Se considerarían maestros ocultos porque solo proporcionarían servicios a los servidores de estrato secundario. Esta configuración permitiría que esos servidores brinden tiempo a los maestros secundarios coubicados que en realidad brindan servicios a una organización. Los maestros primarios permanecen ocultos y solo se accede a ellos mediante la infraestructura NTP que proporciona servicios en otros lugares. Esa cadena de suministro debería permitirle proporcionar la hora exacta en toda su organización y tener múltiples fuentes que corroboren una fuente de hora precisa.
Las ubicaciones que tienen más dispositivos que necesitan sincronizar su hora pueden agregar servidores Stratum 2 o Stratum 3 adicionales y hacer que confíen en los maestros secundarios y entre sí para distribuir aún más la carga en un sistema y brindar servicios a un grupo más grande de clientes NTP.
Configurando un servicio NTP interno en la última revisión de código estable y estandarizando su uso, la viabilidad de los ataques de red basados en el tiempo o los procesos que dependen del tiempo son más difíciles de asimilar. La identificación del orden de los eventos en un compromiso se vuelve más fácil porque los tiempos en los registros ahora pueden ser sistemas de registro. Para las fuerzas del orden y otras agencias de investigación, los servicios NTP precisos pueden ser muy constructivos para evaluar la evidencia y secuenciar una cadena de eventos.
Concluyendo y mirando hacia el futuro
A medida que los ataques se vuelven más sofisticados, nuestro equipo de analistas de redes en CERT encuentra cada vez más servicios orientados a Internet que no están bien implementados dentro de una red. Como Mark Langston escribió en su publicación reciente sobre las mejores prácticas de DNS, muchos de estos servicios constituyen la base para la seguridad y el funcionamiento de las aplicaciones de red internas y externas.
Esta es la última de una serie de publicaciones de blog que ofrecen lo mejor prácticas en estas estructuras fundamentales para ayudar a las agencias gubernamentales y otras empresas a abordar las fuentes ocultas de vulnerabilidades dentro de sus redes. La directora de nuestro equipo, Rachel Kartch, publicó la primera publicación de esta serie, Ataques de denegación de servicio distribuidos: cuatro mejores prácticas para la prevención y respuesta.