Zeitsprünge

Einführung
Ein CUSTOM_TIME_JUMP-Ereignis meldet, dass sich die Systemzeit der IRF1000 oder IRF3000 sprunghaft geändert hat.
Diese Ereignisse ermöglichen es, manuelle Uhrzeitmanipulationen, eine fehlerhafte NTP-Synchronisation oder eine Fehlfunktion der Zeitverwaltungsdienste zu erkennen.
Für OT- und Industrieautomatisierungsumgebungen sind stabile und vertrauenswürdige Zeitstempel entscheidend, weil sie die Log-Korrelation, die Rekonstruktion von Vorfällen, die Zertifikatsprüfung und geplante Aufgaben beeinflussen.
Wenn Ihr SIEM oder SOC unerwartete oder häufige Zeitsprung-Ereignisse feststellt, sollten Sie auf Konfigurationsfehler, ausfallende NTP-Server oder mögliche Versuche prüfen, Aktivitäten durch Ändern der Gerätezeit zu verbergen.
Das Gerät begrenzt die Erzeugung von CUSTOM_TIME_JUMP-Audit-Einträgen auf 4 Meldungen pro Dienst und Stunde, um ein unkontrolliertes Anwachsen der Audit-Log-Datei zu vermeiden, sodass extrem häufige Zeitänderungen möglicherweise nicht vollständig im Log sichtbar sind.
Ansicht im Webinterface
Im VIEW-Webinterface erscheinen CUSTOM_TIME_JUMP-Audit-Einträge im Abschnitt System audit.
Die Ereignisse werden als einfache Zeilen in einer Tabelle angezeigt. Das Screenshot-Beispiel zeigt Einträge wie:
Title:Time jump detected,Manual Time jump detected,WWH Time jump detected,NTP Time jump detectedDescription:Jumped back 10 s,Jumped forward 11 s, oder größere Werte wieJumped back 63075266 s
Das Webinterface zeigt nicht alle Rohdatenfelder der audit.log an. Es stellt nur die wichtigsten Informationen für Bediener dar.
Felder in der Tabelle System audit
| Web-Feld | Beschreibung | Beispielwert |
|---|---|---|
| Date | Lokales Kalenderdatum, an dem der Zeitsprung protokolliert wurde. | 11/23/25 |
| Time | Lokale Uhrzeit des Ereignisses, abgeleitet aus dem Audit-Zeitstempel zum Zeitpunkt der Protokollierung. | 12:35:11 |
| Title | Kurztext aus dem Feld title der Audit-Meldung. Er identifiziert die Quelle des Zeitsprungs (manuell, WWH, NTP). |
NTP Time jump detected |
| Description | Detailtext aus dem Feld description der Audit-Meldung. Er gibt die Richtung der Änderung an und um wie viele Sekunden sich die Uhr verschoben hat. |
Jumped back 92556 s |
Zuordnung zwischen Web-Ansicht und Audit-Rohdaten:
- Title in der Tabelle ist der Wert von
title="..."innerhalb dermsg-Nutzlast des Audit-Datensatzes. - Description in der Tabelle ist der Wert von
description="..."innerhalb dermsg-Nutzlast. - Date und Time werden aus dem numerischen Audit-Zeitstempel abgeleitet, der nach
audit(in der Rohlog-Zeile erscheint.
Die Web-Ansicht zeigt keine Felder wie pid, uid, exe oder res an. Um diese zu analysieren, müssen Sie die rohe audit.log-Datei oder Ihr SIEM verwenden, das die vollständige Meldung parsen kann.
Erläuterung des rohen audit.log-Eintrags
Die rohen audit.log-Datensätze für Zeitsprünge verwenden den benutzerdefinierten Typ CUSTOM_TIME_JUMP.
Jeder Datensatz wird von auditd geschrieben, wenn einer der Zeitverwaltungsdienste einen erkannten Sprung meldet.
Beispielstruktur
Ein typischer Eintrag sieht so aus (Zeilenumbrüche nur zur besseren Lesbarkeit eingefügt):
type=CUSTOM_TIME_JUMP msg=audit(1763897711.524:66): pid=17180 uid=323 auid=4294967295 \
ses=4294967295 msg='title="NTP Time jump detected" description="Jumped back 92556 s" \
exe="/usr/sbin/chronyd" hostname=? addr=? terminal=? res=success'UID="chrony" AUID="unset"
Relevante Felder für CUSTOM_TIME_JUMP
| Feldname | Beschreibung | Beispielwert |
|---|---|---|
type |
Audit-Datensatztyp. Für diese Ereignisse ist er immer CUSTOM_TIME_JUMP. |
CUSTOM_TIME_JUMP |
msg (Header) |
Standard-Audit-Header, der den Ereignis-Zeitstempel und eine Sequenz-ID enthält. | audit(1763897711.524:66) |
pid |
Prozess-ID des Dienstes, der den Zeitsprung gemeldet hat. | 17180 |
uid |
Effektive Unix-Benutzer-ID dieses Prozesses. | 323 |
auid |
Von auditd gesetzte Audit-Benutzer-ID. Für System-Daemons ist sie üblicherweise der Wert „unset". | 4294967295 |
ses |
Audit-Sitzungs-ID. Für System-Daemons üblicherweise unset. | 4294967295 |
msg (Nutzlast) |
Freitext-Nutzlast mit Schlüssel-Wert-Paaren wie title=, description=, exe=, hostname= usw. |
msg='title="..." description="..." ...' |
title |
Zusammenfassung des Ereignisses. Gibt an, ob der Sprung manuell, WWH- oder NTP-basiert war. | NTP Time jump detected |
description |
Detaillierte Beschreibung mit Richtung und Größe des Sprungs in Sekunden. | Jumped back 92556 s |
exe |
Absoluter Pfad der ausführbaren Datei, die den Zeitsprung erkannt und gemeldet hat. | /usr/sbin/chronyd |
hostname |
Hostname-Feld von auditd für dieses Ereignis. Auf dem Gerät ist es nicht gefüllt und erscheint als ?. |
? |
addr |
Dem Ereignis zugeordnete Remote-Adresse. Für Zeitsprünge nicht verwendet und erscheint als ?. |
? |
terminal |
Terminal-Kennung. Für Daemon-generierte Ereignisse ist sie nicht gesetzt und erscheint als ?. |
? |
res |
Ergebnis-Flag von auditd. Für diese Ereignisse ist es immer auf success gesetzt, da die Erkennung selbst erfolgreich war. |
success |
UID |
Textdarstellung von uid als Name, bereitgestellt von auditd. |
chrony |
AUID |
Textdarstellung von auid. Für System-Daemons typischerweise unset. |
unset |
Für die SIEM- oder SOC-Integration parsen Sie üblicherweise auf type=CUSTOM_TIME_JUMP und extrahieren dann title, description, exe sowie den numerischen Zeitstempel aus dem Header msg=audit(...).
Nutzen Sie Größe und Richtung des Sprungs, um Warnungen für verdächtige manuelle Änderungen oder abnormale NTP- oder WWH-Korrekturen zu erstellen.
Wann das Ereignis erzeugt wird
Ein CUSTOM_TIME_JUMP-Ereignis wird immer dann erzeugt, wenn das System erkennt, dass die aktuelle Systemzeit um einen definierten Schwellenwert vor- oder zurückgesprungen ist.
Die folgenden Dienste können dieses Ereignis erzeugen, indem sie audit_log_user_message() aus libaudit aufrufen:
systemdfür alle manuellen Zeitänderungenchronyd(NTP-Client)wwhd(WWH-Dienst)wwhngd(WWH-Next-Generation-Dienst)
Erzeugungsregeln:
- Manuelle Zeitänderungen über
systemdwerden immer protokolliert, unabhängig von der Zeitdifferenz. chronydprotokolliert einenCUSTOM_TIME_JUMP, wenn die NTP-Synchronisation die Zeit um 10 Sekunden oder mehr ändert.wwhdundwwhngdprotokollieren einenCUSTOM_TIME_JUMP, wenn die WWH-Zeitanpassung die Zeit um 60 Sekunden oder mehr ändert.- Sowohl Vorwärts- als auch Rückwärtskorrekturen werden protokolliert, wobei Richtung und Anzahl der Sekunden im Feld
descriptionangezeigt werden. - Jeder beteiligte Dienst ist auf 4
CUSTOM_TIME_JUMP-Ereignisse pro Stunde begrenzt, um die Größe deraudit.logzu schützen.
Verwendung im Security-Monitoring:
- Untersuchen Sie jeden manuellen Zeitsprung auf produktiven Systemen.
- Korrelieren Sie Zeitsprung-Ereignisse mit Konfigurationsänderungen, Software-Updates oder Sicherheitsvorfällen.
- Prüfen Sie auf instabile NTP- oder WWH-Zeitquellen, wenn viele automatische Zeitsprünge auftreten.
Beispiel eines audit.log-Eintrags
(1) type=CUSTOM_TIME_JUMP msg=audit(1731567032.156:14): pid=6122 uid=0 auid=4294967295 ses=4294967295 msg='title="Manual Time jump detected" description="Jumped back 63075266 s" exe="/usr/sbin/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(2) type=CUSTOM_TIME_JUMP msg=audit(1794639032.140:16): pid=6122 uid=0 auid=4294967295 ses=4294967295 msg='title="Manual Time jump detected" description="Jumped forward 63071999 s" exe="/usr/sbin/systemd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(3) type=CUSTOM_TIME_JUMP msg=audit(1763727845.000:18): pid=8340 uid=0 auid=4294967295 ses=4294967295 msg='title="WWH Time jump detected" description="Jumped back 30911257 s" exe="/usr/sbin/wwhd" hostname=? addr=? terminal=? res=success'UID="root" AUID="unset"
(4) type=CUSTOM_TIME_JUMP msg=audit(1763897711.524:66): pid=17180 uid=323 auid=4294967295 ses=4294967295 msg='title="NTP Time jump detected" description="Jumped back 92556 s" exe="/usr/sbin/chronyd" hostname=? addr=? terminal=? res=success'UID="chrony" AUID="unset"
(5) type=CUSTOM_TIME_JUMP msg=audit(1764156911.372:67): pid=22722 uid=323 auid=4294967295 ses=4294967295 msg='title="NTP Time jump detected" description="Jumped forward 166572 s" exe="/usr/sbin/chronyd" hostname=? addr=? terminal=? res=success'UID="chrony" AUID="unset"