Resumo
- Sharon Goldberg, Aanchal Malhotra, Isaac E. Cohen e Erik Brakke constataram que clientes
ntpdantigos aceitavam um Kiss-o’-Death sem conferir se o timestamp de origem correspondia à solicitação enviada. - Um pacote forjado para cada servidor configurado podia retirar todas as fontes de correção pelo prazo escolhido pelo atacante; vincular a negativa a uma troca real e impor um teto local são proteções complementares.
Em um ataque volumétrico, o agressor precisa continuar falando. Na falha estudada em 2015 por Aanchal Malhotra, Isaac E. Cohen, Erik Brakke e Sharon Goldberg, bastava ensinar a vítima a permanecer em silêncio. Uma mensagem curta alterava o comportamento futuro do cliente muito depois de desaparecer da rede.
A mensagem era o Kiss-o’-Death, ou KoD, do NTP. Servidores públicos usam esse recurso para se defender de consultas excessivas. Uma resposta especial, com modo 4, indicador de segundo intercalar 3 e estrato 0, carrega no identificador de referência um código de quatro caracteres. RATE pede maior intervalo; DENY e RSTR recusam serviço.
O objetivo é legítimo. O problema surgiu quando ntpd tratou a aparência do pacote como autoridade suficiente. Nas versões 4.2.6 e 4.2.8 testadas pela equipe, um KoD era aceito mesmo que seu timestamp de origem não correspondesse a nenhuma pergunta pendente. Um atacante fora do caminho, capaz de falsificar o endereço IP do servidor, podia comandar o recuo sem observar a conversa.
O recibo já existia
Uma solicitação NTP normal de modo 3 contém um timestamp de transmissão. O servidor o devolve no campo de origem da resposta de modo 4. O TEST2 compara esse eco com a consulta aberta. Ele funciona como um nonce: não autentica o servidor por criptografia, mas demonstra que a resposta conhece aquela pergunta específica.
O caminho do KoD antigo ignorava essa associação. Assim, um pacote sem história adquiria poder sobre o futuro. A distinção é útil além do NTP: verificar um endereço aparente não é o mesmo que provar que uma ordem nasceu do fluxo de trabalho ao qual ela pretende responder.
O campo de poll expressa o intervalo como potência de dois. O valor 17 impõe pelo menos 2^17 segundos, cerca de 36 horas. Os pesquisadores verificaram que o cliente aceitava valores acima da faixa prevista; 25 corresponde aproximadamente a um ano. O custo do remetente durava milissegundos, enquanto o estado no receptor atravessava dias, equipes e janelas de manutenção.
O RFC 5905 pretendia que RATE aumentasse o espaçamento entre pacotes; uma errata incorporada corrige o verbo contrário da redação original. Ainda assim, sem validar o contexto e sem limitar o efeito, a semântica correta podia ser usada pelo interlocutor errado.
Uma fonte de horário por vez
Para o ataque direto, era preciso conhecer o IP do cliente e um servidor usado por ele. O artigo descreveu uma maneira de encontrar o servidor ativo. O atacante enviava uma consulta de modo 3 ao cliente; quando um cliente IPv4 sincronizado respondia em modo 4, seu identificador de referência podia revelar o endereço do servidor corrente.
Em seguida vinha o KoD falsificado, parecendo originar-se desse servidor. Se o cliente escolhesse outro nome da configuração, a sequência era repetida. A unidade de trabalho não era pacote por segundo, e sim um pacote aceito por fonte confiável. Quando a lista acabava, o relógio não tinha mais a quem perguntar.
No laboratório, o grupo configurou ntpd 4.2.8p2 com três servidores públicos. O terceiro KoD foi obtido em cerca de uma hora e meia. Depois que a atividade experimental cessou, o cliente permaneceu sem consultar durante as cinquenta horas seguintes, embora o silêncio mínimo solicitado fosse de aproximadamente 36 horas.
KoDs periódicos poderiam manter a negação, mas a primeira rodada já demonstrava a assimetria. Controles de abuso costumam proteger o receptor de um emissor persistente. Aqui, a própria resposta de proteção fazia o receptor persistir na ausência.
A varredura feita em 2015 sugeriu que mais de 13 milhões de endereços IPv4 respondiam à consulta necessária para o primeiro passo. É um retrato histórico de uma condição, não uma contagem atual de máquinas vulneráveis. O cliente também precisava reagir ao KoD e expor um servidor IPv4 sincronizado.
Sem correção não significa hora escolhida
O KoD direto não escrevia no relógio um horário arbitrário. Ele interrompia novas amostras. O cliente passava a depender do relógio local, cuja deriva varia conforme oscilador, virtualização, carga de CPU e implementação.
Uma máquina física estável pode manter-se próxima por bastante tempo; uma máquina virtual sob carga pode acumular incerteza mais rápido. Autenticação, certificados, bancos distribuídos, logs e tarefas agendadas também possuem tolerâncias diferentes. A afirmação sustentada pela evidência é que o atacante removia a correção externa, não que produzia o mesmo desvio em todos os alvos.
Uma investigação precisa guardar a última sincronização válida, o KoD, o resultado de validação do timestamp de origem, o intervalo pedido e aplicado, as fontes restantes e a incerteza local. Se a telemetria registra apenas “sem dados”, o comando que causou o silêncio some junto com as consultas.
A correção elevou o preço da negativa
O comunicado do NTP Project sobre o Bug 2901 informa que a falha direta atingia versões anteriores a 4.2.8p4; na linha de desenvolvimento, versões anteriores a 4.3.77. A versão p4 passou a validar o timestamp de origem dos KoDs. Uma resposta aceitável precisava ecoar uma solicitação real.
Isso não era autenticação criptográfica, mas impedia que o atacante fora do caminho inventasse o valor sem custo. O trabalho também apresentou uma via residual, chamada “priming pump”: falsificar muitas consultas da vítima para o servidor verdadeiro, levá-lo a aplicar rate limit e fazer com que ele gere um KoD corretamente ligado. A técnica exigia mais tráfego e tendia a obter um recuo menor, como poll 10, cerca de 15 minutos, em vez de um ano arbitrário.
O RFC 8633, publicado em 2019, consolidou duas salvaguardas. O cliente só aceita KoD com timestamp de origem válido. Mesmo assim, deve impor um máximo razoável ao RATE, nunca acima de poll 13, ou duas horas. Uma única solicitação com poll excessivo pode ser tratada como indício de ataque.
O vínculo responde a qual solicitação pertence a mensagem. A autenticação responde quem falou. O teto local determina quanto tempo a fala alheia pode governar. Nenhum deles deve ser confundido com os demais.
Um método de pesquisa em várias camadas
O perfil oficial de Goldberg na Boston University descreve uma combinação de criptografia, teoria dos jogos e algoritmos com medição, modelagem e simulação de redes. O estudo de NTP percorreu essas camadas: a norma dizia o que os campos significavam; os testes mostraram o que o software aceitava; o laboratório mediu a persistência; a varredura estimou a exposição das condições.
A autoria pertence a Malhotra, Cohen, Brakke e Goldberg. A página do projeto registra que a divulgação responsável começou em 20 de agosto de 2015. Network Time Foundation, NTPsec, Cisco e Red Hat publicaram correções antes da divulgação em 21 de outubro. Usar Goldberg como fio da narrativa não transforma uma pesquisa coletiva em invenção individual.
O teste operacional que fica serve para qualquer sistema: diante de “tente depois”, “pare”, “negue”, “isole” ou “cancele”, qual solicitação sustenta a ordem? Qual identidade a emite? Quem escolhe sua duração? O que permanece visível enquanto o destinatário obedece?
Uma resposta negativa administra comportamento futuro. O KoD era poderoso porque forjá-lo custava pouco e sobreviver ao silêncio custava muito. Um controle seguro inverte essa conta: exige contexto, limita a retirada e registra quando o relógio deixa de perguntar.
Fontes
- Malhotra, Cohen, Brakke e Goldberg — Attacking the Network Time Protocol
- Grupo de pesquisa de Sharon Goldberg — Attacking NTP
- RFC 5905 — Network Time Protocol Version 4
- RFC 8633 — Network Time Protocol Best Current Practices
- NTP Project — comunicado de segurança Bug 2901
- Boston University Computer Science — Sharon Goldberg
- BU Today — Could Hackers Change the Time?
Briefing para membros
Contexto aprofundado do perfil
Faça login com o nível de assinatura correto para desbloquear o briefing completo e as notas das fontes.
Apenas para Strategic Circle
Strategic Circle
Aberto a todos os leitores. Desbloqueie Briefings de perfil após se inscrever e fazer login.
Junte-se ao Strategic CircleSomente para Leadership Alliance
Leadership Alliance
Para proprietários e gestores qualificados de ativos de PI; faça login para desbloquear os briefings da Leadership Alliance.
Junte-se ao Leadership Alliance
