Python Forensics - Protocolo de tiempo de red

El protocolo más utilizado para sincronizar la hora y que ha sido ampliamente aceptado como práctica se realiza mediante Network Time Protocol (NTP).

NTP utiliza el Protocolo de datagramas de usuario (UDP) que utiliza un tiempo mínimo para comunicar los paquetes entre el servidor y el cliente que desea sincronizar con la fuente de tiempo dada.

Las características del protocolo de tiempo de red son las siguientes:

  • El puerto del servidor predeterminado es 123.

  • Este protocolo consta de muchos servidores horarios accesibles sincronizados con los laboratorios nacionales.

  • El estándar de protocolo NTP se rige por el IETF y el estándar propuesto es RFC 5905, titulado “Protocolo de tiempo de red versión 4: Especificación de protocolos y algoritmos” [NTP RFC]

  • Los sistemas operativos, programas y aplicaciones utilizan NTP para sincronizar la hora de forma adecuada.

En este capítulo, nos centraremos en el uso de NTP con Python, que es factible desde la biblioteca de Python de terceros ntplib. Esta biblioteca maneja de manera eficiente el trabajo pesado, que compara los resultados con el reloj de mi sistema local.

Instalación de la biblioteca NTP

los ntplib está disponible para descargar en https://pypi.python.org/pypi/ntplib/ como se muestra en la siguiente figura.

La biblioteca proporciona una interfaz simple para los servidores NTP con la ayuda de métodos que pueden traducir los campos del protocolo NTP. Esto ayuda a acceder a otros valores clave, como los segundos intercalares.

El siguiente programa de Python ayuda a comprender el uso de 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;

El programa anterior producirá el siguiente resultado.

La diferencia de tiempo se calcula en el programa anterior. Estos cálculos ayudan en las investigaciones forenses. Los datos de red obtenidos son fundamentalmente diferentes al análisis de los datos que se encuentran en el disco duro.

La diferencia en las zonas horarias o la obtención de zonas horarias precisas pueden ayudar a recopilar pruebas para capturar los mensajes a través de este protocolo.