Python Forensics - Network Time Protocol

O protocolo mais utilizado para sincronização de tempo e que tem sido amplamente aceito como prática é feito através do Network Time Protocol (NTP).

O NTP usa o User Datagram Protocol (UDP) que usa o tempo mínimo para comunicar os pacotes entre o servidor e o cliente que deseja sincronizar com a fonte de tempo fornecida.

As características do Network Time Protocol são as seguintes -

  • A porta do servidor padrão é 123.

  • Este protocolo consiste em muitos servidores de horário acessíveis sincronizados com os laboratórios nacionais.

  • O protocolo padrão NTP é regido pela IETF e o padrão proposto é RFC 5905, intitulado “Network Time Protocol Version 4: Protocol and Algorithms Specification” [NTP RFC]

  • Os sistemas operacionais, programas e aplicativos usam o NTP para sincronizar o tempo de maneira adequada.

Neste capítulo, vamos nos concentrar no uso de NTP com Python, que é viável a partir da biblioteca Python ntplib de terceiros. Esta biblioteca trata com eficiência o trabalho pesado, que compara os resultados com o relógio do meu sistema local.

Instalando a Biblioteca NTP

o ntplib está disponível para download em https://pypi.python.org/pypi/ntplib/ conforme mostrado na figura a seguir.

A biblioteca fornece uma interface simples para servidores NTP com a ajuda de métodos que podem traduzir campos de protocolo NTP. Isso ajuda a acessar outros valores-chave, como segundos bissextos.

O programa Python a seguir ajuda a entender o uso do NTP.

import ntplib
import time

NIST = 'nist1-macon.macon.ga.us'
ntp = ntplib.NTPClient()
ntpResponse = ntp.request(NIST)

if (ntpResponse):
   now = time.time()
   diff = now-ntpResponse.tx_time
   print diff;

O programa acima produzirá a seguinte saída.

A diferença de tempo é calculada no programa acima. Esses cálculos ajudam nas investigações forenses. Os dados de rede obtidos são fundamentalmente diferentes da análise de dados encontrados no disco rígido.

A diferença de fusos horários ou a obtenção de fusos horários precisos podem ajudar na coleta de evidências para capturar as mensagens por meio deste protocolo.