Python Forensics - Netzwerkzeitprotokoll

Das am weitesten verbreitete Protokoll zum Synchronisieren von Zeit, das als Praxis weithin akzeptiert wurde, wird über das Network Time Protocol (NTP) durchgeführt.

NTP verwendet das User Datagram Protocol (UDP), das die Mindestzeit für die Kommunikation der Pakete zwischen dem Server und dem Client verwendet, der mit der angegebenen Zeitquelle synchronisieren möchte.

Das Network Time Protocol bietet folgende Funktionen:

  • Der Standard-Server-Port ist 123.

  • Dieses Protokoll besteht aus vielen zugänglichen Zeitservern, die mit nationalen Labors synchronisiert sind.

  • Der NTP-Protokollstandard wird von der IETF geregelt, und der vorgeschlagene Standard lautet RFC 5905 mit dem Titel „Network Time Protocol Version 4: Protokoll- und Algorithmusspezifikation“ [NTP RFC].

  • Betriebssysteme, Programme und Anwendungen verwenden NTP, um die Zeit ordnungsgemäß zu synchronisieren.

In diesem Kapitel konzentrieren wir uns auf die Verwendung von NTP mit Python, die über die Python-Bibliothek ntplib von Drittanbietern möglich ist. Diese Bibliothek erledigt das schwere Heben effizient, wodurch die Ergebnisse mit meiner lokalen Systemuhr verglichen werden.

Installieren der NTP-Bibliothek

Das ntplib steht zum Download unter zur Verfügung https://pypi.python.org/pypi/ntplib/ wie in der folgenden Abbildung gezeigt.

Die Bibliothek bietet eine einfache Schnittstelle zu NTP-Servern mithilfe von Methoden, mit denen NTP-Protokollfelder übersetzt werden können. Dies hilft beim Zugriff auf andere Schlüsselwerte wie Schaltsekunden.

Das folgende Python-Programm hilft beim Verständnis der Verwendung von 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;

Das obige Programm erzeugt die folgende Ausgabe.

Die Zeitdifferenz wird im obigen Programm berechnet. Diese Berechnungen helfen bei forensischen Untersuchungen. Die erhaltenen Netzwerkdaten unterscheiden sich grundlegend von der Analyse der auf der Festplatte gefundenen Daten.

Der Unterschied in den Zeitzonen oder das Erhalten genauer Zeitzonen kann dabei helfen, Beweise für die Erfassung der Nachrichten über dieses Protokoll zu sammeln.