retornarretornar
Follina um lado de cliente silencioso



COMPARTILHAR

Twitter Facebook Linkedin

Protocolos esquecidos: NTP (Network Time Protocol)

Existem alguns protocolos esquecidos em nossas redes e sistemas. São difíceis de trabalhar pela falta de conscientização sobre eles e talvez sejam uma pedra fundamental para a construção dos serviços que são prestados.

Em alguns casos, confiamos que estamos seguros ou também pensamos que o foco dos atacantes estará sempre nas conhecidas jóias da coroa, mas nunca paramos nesse momento de decisão para determinar se devem ser incluídas ou não por sua criticidade dentro dessas categorias. Talvez passem despercebidos porque confiamos que estão seguros, mas confiança não é o mesmo que consciência.

Conhecer todos os serviços com os quais nossas equipes lidam é uma tarefa árdua, mas em algum momento devemos começar a explorá-la com mais profundidade.

Por que o tempo é tão importante?

Imagine isso: Eles precisam pegar um ônibus em um horário específico; eles caminham até o ponto de ônibus e esperam por ele. Eles olham para o relógio e veem que hora é, mas o ônibus ainda não chegou. Nesse momento é a vez de procurar outra fonte de horário, como o telefone, para ter uma segunda opinião sobre o horário, nesse momento descobre-se que o horário está incorreto. Se você tem um compromisso importante, você não chegará a tempo.

Agora, quando se fala em sistemas e/ou aplicativos que requerem o funcionamento de outros aplicativos, é necessário um ajuste de tempo correto.

imagen ilustrativa

Sem o timing correto processos automáticos e processos que ocorrem em tempo não funcionarão corretamente. Existem muitas entidades, geralmente entidades financeiras, que trabalham com tarefas em tempo real, pois quando se trata de dinheiro as coisas ficam um pouco mais complexas do que o normal; Por exemplo: Se você trabalha para um banco, existem processos que devem ser executados a uma determinada hora ao final do dia porque as entidades comunicam frequentemente com outras entidades bancárias em todo o mundo para atualizar determinados tipos de informação. Se a execução automática não for feita a tempo, você poderá criar problemas legais com outros bancos e perder a confiança. Em um banco, confiança é a coisa mais importante que você precisa.



Por que o vetor de ataque é o sincronismo?

Lembrando um pouco dos princípios de segurança, um invasor geralmente visa os quatro pilares que constroem nossa necessidade de nos sentirmos mais seguros: CONFIDENCIALIDADE, DISPONIBILIDADE, INTEGRIDADE e RASTREABILIDADE. Nele destacamos pontos importantes onde o tempo é o protagonista, pois temos vários aspectos que interessam aos atacantes e não às pessoas que têm como objetivo proteger os recursos de uma empresa. O foco comum dos analistas costuma residir na preocupação em manter a CONFIDENCIALIDADE, então os profissionais listam suas Jóias da Coroa favoritas, focando naquela propriedade específica, deixando de lado questões importantes que podem nos prejudicar no curto prazo.



CONFIDENCIALIDADE

imagen ilustrativa

DISPONIBILIDADE, INTEGRIDADE y RASTREABILIDADE

Na ausência de atenção à RASTREABILIDADE e à DISPONIBILIDADE por parte dos responsáveis pela segurança, podem ocorrer certas ideias para tentar atrapalhar as operações de forma a gerar obstáculos aos processos de uma empresa de sucesso. É por isso que ao atacar o sincronismo os principais benefícios podem ser obtidos no nível de ataque, tanto para cobrir seus rastros como para realizar uma manobra de distração dentro das instalações potencialmente afetadas.



O protocolo que se encarrega disso nos sistemas de uma empresa é o protocolo NTP (Network Time Protocol), é utilizado para realizar uma sincronização dos relógios emos diferentes dispositivos interligados no escopo de configuração deste serviço. Funciona com UDP via porta 123 e é amplamente utilizado em redes no mundo todo, tanto internas quanto públicas. A sua importância reside, como já referimos nos parágrafos anteriores, no fato de a falta de sincronização temporal, durante muito tempo num sistema, afetar a consistência e integridade da informação, o que tem graves repercussões em áreas como finanças, produtivo, legal e um longo etc.



imagen ilustrativa

No gráfico anterior podemos ver como funciona o protocolo, temos uma referência de sincronização de satélite externo, então na próxima instância existem servidores primários que pegam esta sincronização, para posteriormente transferi-la para servidores de referência secundários que serão consumidos entre os clientes potenciais dessas informações, conseguindo assim, em última análise, compartilhar essas referências entre si.
Entre as vulnerabilidades que podemos encontrar neste tipo de protocolo que traz consigo muita troca, encontramos vários pontos de falha em relação aos mesmos, como os seguintes;

  • As fraquezas ou falhas do protocolo
  • ⦁ Deficiências na construção do protocolo fazem com que algumas funções destinadas a um tipo de gerenciamento acabem prejudicando a finalidade do próprio protocolo.
  • As interações do protocolo com outros sistemas e/ou protocolos
  • ⦁ Cortar as interações para que as conexões percam um certo tipo de sincronismo.
  • O cronograma antes de uma auditoria
  • ⦁ Todas as evidências digitais são baseadas em grande parte no timestamp, sem que os timestamps possam ser combinados entre as provas, estamos diante de um problema sério que talvez não tenha forma de resolver, pois a prova ocorre em um determinado intervalo de tempo e não pode ser regenerada. Exemplo: Se alguém executa tarefas, que são provas digitais posteriores, com um tempo manipulado, o que vai prevalecer é esse. Nunca seremos capazes de reconstruir o tempo real da ação.
  • A integridade das informações
  • ⦁ Permitir que um invasor minta sobre o horário em que estou realizando uma transação para contornar os mecanismos de proteção do aplicativo. Exemplo: Um aplicativo que depende da hora exata para determinar a validade de uma licença ou forçar a expiração de um certificado local.
Quais são os ataques mais populares?

Entre os ataques mais conhecidos que encontramos referentes aos potenciais pontos de falha mencionados acima, encontramos algumas técnicas conhecidas que podem ajudar um invasor a gerar esses sintomas sobre o uso de servidores NTP.

⦁ Ataque de amplificação NTP

Principalmente, estão associadas a vulnerabilidades que correspondem ao ponto 1 do parágrafo anterior, onde nos referimos a falhas de protocolo.

Essas vulnerabilidades estão relacionadas a certos comandos usados para gerenciamento e monitoramento de protocolos. Estamos falando de dois comandos específicos que se destinam a realizar as seguintes funções:

Moonlist : Retorna uma lista dos últimos 600 dispositivos que se comunicaram com o servidor. Uma pequena requisição é feita ao servidor e uma resposta é recebida qque pode atingir um tamanho 200 vezes maior que a consulta realizada.


Readvar: Comando que ao ser executado retorna variáveis, com seu conteúdo, causando uma resposta superior à consulta realizada. Nesse caso, 30 vezes maior que a consulta original.

Os invasores fazem essas solicitações em grande número, forjando o endereço de origem para fingir ser o servidor que desejam desativar, resultando na situação em que o computador vítima, sem solicitar, recebe respostas NTP com amplificação de 30 vezes e/ou 200 vezes dependendo da função utilizada, causando um flood de respostas NTP. Afetando assim a disponibilidade de serviços que requerem conectividade através dele.

imagen ilustrativa

Imagem retirada de https://www.cloudflare.com/es-es/learning/ddos/ntp-amplification-ddos-attack/


⦁ NTP Spoofing (através de ARP e/ou DNS)

Embora não seja uma vulnerabilidade do serviço NTP em si, poderíamos alcançá-la com um ataque clássico de man-in-the-middle visando nossos servidores NTP. Neste caso, uma combinação de técnicas pode nos permitir enviar uma hora diferente para os computadores que estão solicitando a hora do servidor NTP principal. Entre as formas de classificar uma vulnerabilidade, ela também pode ser classificada como uso indevido ou abuso do protocolo em questão.

Neste caso, poderia ser feito ARP Spoofing, interceptando quadros NTP e distorcendo-os com um tempo de sincronização incorreto para alterar os timestamps.

Como a maioria dos ataques são focados em protocolos mais interessantes, não há muitos métodos automatizados para fazer isso, você poderia escrever um script que executasse as seguintes etapas;

  • realizar um ARP-Cache-Poisoning
  • imagen ilustrativa

  • Posicionar nossa máquina entre o alvo e o gateway
  • imagen ilustrativa

  • Ouvir as respostas NTP que o gateway envia ao destino.
  • Modificar os timestamps e reenvie-os.
  • imagen ilustrativa

Um utilitário muito importante para fazer isso é a biblioteca Scapy do Python para lidar com pacotes. Porém, antes de programá-lo, é sempre conveniente fazer uma busca no Google para encontrar soluções já trabalhadas por algum tipo de pesquisador, como no exemplo a seguir;

https://github.com/crazyarashi/ntp-spoof/blob/master/ntpspoof.py


Agora, se quisermos executar a mesma tarefa com envenenamento de DNS , basta indicarmos através do nosso DNS malicioso que o servidor NTP é um servidor manipulado pelo invasor, onde fornecerá um horário incorreto para sincronização de horário.

Como nos defendemos?

Embora no caso de falhas possamos eliminar funcionalidades inseguras para realizar um respectivo Hardening do protocolo, a detecção e o monitoramento devem ser uma parte fundamental de qualquer instância de remediação. Já o simples fato de tomar conhecimento da existência do protocolo vai permitir começar a criar alertas em função de uma avaria do nosso servidor NTP.

No caso de ataques de amplificação;

  • Desabilitar o comando monlist e/ou read; tTodas as versões do software NTP anteriores à versão 4.2.7 são vulneráveis por padrão. A atualização de um servidor NTP para a versão 4.2.7 ou superior desativa o comando, o que corrige a vulnerabilidade. Se esta atualização não for possível, o administrador de um servidor pode fazer as alterações necessárias seguindo as instruções do servidor US-CERT.

  • Verificar o IP de origem; Peça ao provedor ISP para implementar a filtragem de entrada onde os pacotes são verificados para serem enviados de dentro da rede com um endereço de origem que pareça originar-se de fora da rede ou implemente essa filtragem no firewall de borda.

  • Implantar servidores NTP atrás de firewalls; Detecte e filtre solicitações direcionadas por UDP para a porta do servidor NTP e tenha uma configuração anti-spoofing. Estes devem consultar as especificações de seus firewalls na página do respectivo fabricante.

  • Limitar a visibilidade do servidor NTP na Internet; Referido para minimizar a exposição de nossos servidores NTP à Internet.

  • Definir ou escrever um protocolo de ação em caso de negação de serviço por NTP; Como agir, o que fazer, qual é a contingência nesses casos: são questões que devem ser estabelecidas para poder executar uma solução instantânea caso o tempo seja comprometido em nossas redes. Seguir um protocolo é essencial, já que podemos definir regras de ação para a equipe de gerenciamento de incidentes. No caso de ataques de falsificação;

    • Ter nossas medidas de segurança em nível de LAN sempre ativas nos ajuda a monitorar, entre outras coisas, o tráfego malicioso que é enviado entre os dispositivos em nossa REDE, embora bloquear ataques de fora para nossa arquitetura geralmente seja uma tarefa simples, se tivermos o correto medidas preventivas na borda de nossa rede, não podemos deixar de perder o foco de que nossa rede interna deve ser robusta o suficiente para poder detectar e prevenir essas possíveis anomalias associadas a protocolos que geralmente são negligenciados.
    • Gerar alertas analisando a REDE com DADOS DE FLUXO, como mostrado em nosso post onde eles são detalhados como usar fluxos de dados para monitorar.
    • Segmente a rede corretamente para conter ataques fora de nossas jóias da coroa (servidores produtivos, aplicativos críticos, estações de trabalho com acesso crítico, etc.).
    Conclusão

    Com base em todos os tópicos que discutimos, é quase essencial conhecer todos os protocolos essenciais para o funcionamento de nossos sistemas. Muitas vezes vamos deixar passar problemas mínimos que, mais cedo ou mais tarde, nos trazem uma grande dor de cabeça na hora de querer resolver um problema em tempo real. Não só as providências a serem tomadas são importantes, mas também o planejamento prévio e o ensaio sobre raras questões que podem ser pouco frequentes para a percepção de cada um, mas nem tanto para o ponto de vista do atacante que está em constante mutação e espreita. Não vamos deixar que os atacantes nos peguem desprevenidos.

    “Normalmente, quem chega primeiro ao campo de batalha e espera pelo inimigo estará descansado; quem chega mais tarde e imediatamente entrar em combate ficará exausto.”

    Sun Tzu - A Arte da Guerra