vários relógios antigos sobre uma superfície

Foto de Heather Zabriskie na Unsplash

Melhores Práticas na Sincronização dos Relógios via Internet

devops 14 de Mar de 2025

Introdução

A sincronização precisa dos relógios em redes de computadores é crucial para diversas aplicações, desde a segurança de autenticações até a precisão de logs e automação de tarefas. Este artigo explora as melhores práticas para a sincronização de relógios via internet, utilizando o Network Time Protocol (NTP) e abordando as recomendações mais recentes da RFC 8633.

Network Time Protocol e a RFC 8633

O Network Time Protocol (NTP) é um dos protocolos mais antigos da Internet, usado amplamente para sincronizar os relógios dos computadores a uma referência de tempo uma vez que os relógios dos computadores e dispositivos de rede não são confiáveis. A RFC 8633, publicada em julho de 2019, compila as melhores práticas para uma operação estável, precisa e segura do NTP.

A Importância do NTP

A precisão da hora do sistema é essencial em várias situações, como:

  • Validação de tokens de autenticação: protocolos como OAuth2 e Kerberos dependem de uma marcação temporal precisa.
  • Precisão e coleta de logs: eventos registrados nos logs precisam de tempos exatos para rastreamento e auditoria, principalmente em um cenário onde o log de vários hosts é agregado e indexado por outro serviço (ex.: Logstash, Elastic Search, etc.)
  • Emissão e uso de certificados TLS: certificados digitais requerem tempos corretos para validação.
  • Expiração de cache: determinações precisas de quando um cache deve ser atualizado dependem de tempos corretos.
  • Automatização de tarefas: ferramentas como cron e anacron dependem de horários exatos para a execução de tarefas.
  • Dispositivos IoT: alguns dispositivos, como o Raspberry-Pi e outros computadores do tipo dependem exclusivamente do NTP para a sincronização de tempo, pois não possuem um relógio interno.

Práticas Básicas

Manter o software NTP atualizado é uma prática fundamental, garantindo que as versões mais recentes, com correções de segurança e melhorias de desempenho, estejam em uso. Além disso, é essencial implementar monitoramento nos servidores NTP para prevenir ataques maliciosos e verificar a sincronização adequada dos servidores. Uma configuração recomendada é incluir pelo menos três a quatro serviços de tempo nos clientes NTP, como o NTP.br, para aumentar a redundância e a precisão.

O NTP.br é sincronizado com o horário legal brasileiro e para isso mantém um acordo com o Observatório Nacional, que por sua vez, tem como atribuição a geração, conservação e disseminação da Hora Legal Brasileira, utilizando-se inclusive de relógios atômicos para esse fim. O Observatório Nacional atua junto ao Bureau International des Poids et Mesures (BIPM), na França e participa do Tempo Universal Coordenado (TUC ou UTC), juntamente com os órgãos disseminadores de tempo e freqüência dos demais países.

Outra prática importante é permitir o acesso às mensagens de controle dos servidores NTP, conhecidas como Mode 6, apenas para IPs autorizados é outra medida de segurança recomendada, uma vez que as respostas a essas requisições podem ser grandes e utilizadas em alguns ataques maliciosos.

Usar implementações robustas e seguras do NTP é igualmente crucial. A implementação de referência do NTP, disponível em http://ntp.org não possui opções padrão seguras e tem respondido de forma ágil às mudanças necessárias. Alternativas como Chrony ou NTPsec são preferíveis devido às suas implementações simplificadas e respostas céleres às necessidades de segurança, principalmente quando comparadas à implementação de referência.

Uso do Network Time Security (NTS)

O Network Time Security (NTS) é uma extensão do NTPv4 que adiciona criptografia TLS para garantir a autenticidade dos endereços dos servidores. Nem todas as implementações do NTP suportam NTS, mas algumas que suportam incluem NTPsec, Chrony e OpenNTPd. O DNSSEC pode ser usado como uma solução alternativa se o cliente não suportar NTS, desde que tanto o domínio do serviço NTP quanto o servidor e o cliente DNS sejam configurados corretamente.

Evitando Ataques Maliciosos

O parâmetro PANICT, definido na RFC 5905, determina que o serviço NTP deve ser encerrado e uma mensagem de log registrada se a diferença de tempo exceder 1000 segundos. Para monitorar ataques que exploram este limite, é essencial monitorar o reinício do serviço NTP, pois isso pode indicar possíveis ataques.

Requisitar intervenção manual quando o limite PANICT for excedido é uma prática prudente para evitar problemas maiores. Além disso, configurar o cliente para ignorar o limite PANICT apenas após o boot pode facilitar a inicialização sem interrupções indesejadas. Ter múltiplos servidores configurados também dificulta que um único servidor NTP falso explore o limite PANICT, aumentando a segurança geral.

Outros Ataques Comuns

Os ataques mais comuns ao NTP possuem assinaturas conhecidas. Pacotes falsos, por exemplo, são aqueles cujo timestamp de origem não corresponde aos valores esperados pelo cliente. Pacotes com origem zero, cujo timestamp de origem é zero, também são um tipo de ataque conhecido (CVE-2015-8138). Além disso, pacotes com MAC criptográfico inválido podem indicar um ataque em andamento. Monitorar esses pacotes é essencial para identificar e responder rapidamente a possíveis ameaças.

Utilizar o NTP Apenas no Modo Cliente/Servidor

O modo cliente-servidor é o único modo seguro de uso do NTP. Funções como Autokey, descritas na RFC 5906, não são seguras e devem ser evitadas. O modo simétrico, onde dois hosts funcionam como cliente e servidor um do outro, também apresenta vulnerabilidades e deve ser evitado. O uso de servidores em modo anycast, embora possa parecer conveniente, também não é recomendado devido a potenciais problemas de segurança e confiabilidade.

Conclusão

A sincronização precisa dos relógios via NTP é fundamental para a segurança e operação eficiente de sistemas de rede. Seguir as melhores práticas, como manter o software atualizado, monitorar servidores, utilizar NTS e configurar corretamente os clientes, é essencial para garantir a precisão e a segurança do tempo nos sistemas. O uso do modo cliente-servidor e a implementação de medidas de segurança, como o monitoramento de ataques, são passos cruciais para proteger a integridade da sincronização do tempo.

Referências

Tags