Awareness

Y2K38 – Der neue Milleniums-Bug?

Aktualisiert am

Zum Jahreswechsel 1999/2000 gab es dystopische Vorhersagen, von dem Ausfall von Computersystemen bis hin zu Fehlstarts von Atomwaffensystemen. Grund dafür war der als Millenium-Bug oder Y2K-Bug bekannt gewordene Fehler – Und 2038 erwartet uns mit dem Y2K38-Bug ein verwandtes Problem.

Was ist der Milleniums-Bug?

Heutzutage wird Speicherplatz immer billiger und Festplatten immer größer. Doch das war nicht immer so, in den 60ern und 70ern wurde um jedes einzelne Bit gekämpft. Wurde ein Datum gespeichert, so konnte man sehr einfach zwei Speicherstellen sparen – durch das Weglassen der Hunderter- und Tausenderziffern einer Jahreszahl. Das Jahr 1960 wurde somit als “60” gespeichert und bei der Interpretation automatisch davon ausgegangen, dass es sich um das 20. Jahrhundert handelt. Es wurde nicht berücksichtigt, dass die Programme eine über die Jahrtausendwende gehende Lebenszeit besitzen könnten. Zum Jahreswechsel 1999/2000 sprang die Jahreszahl nun von “99”, was als 1999 interpretiert wurde, auf “00”, was häufig als “1900” interpretiert wurde. Die Behebung dieses Fehlers vor dem Jahreswechsel verschlang Milliarden. Wie der SPIEGEL in einem Artikel über die ausbleibende Apokalypse des Y2K-Bugs berichtete, wurde durch diesen Fehler beispielsweise Steuerforderungen falsch berechnet und ein US-Amerikaner erhielt eine Steuerforderung über die letzten 100 Jahre.

Die Ursache des Y2K38-Bugs

Das grundsätzliche Problem des Y2K38-Bugs basiert auf den Darstellungen, die Computer für Zeitangaben verwenden. Hierfür wird die Zeit ab einem fest definierten Punkt gezählt und als Binärzahl gespeichert. Verbreitet ist dafür die Unixzeit, die die Sekunden seit dem 1. Januar 1970 00:00 Uhr UTC zählt. Für die gezählten Sekunden müssen mindestens 32 Stellen einer Binärzahl zur Verfügung stehen. Potenziell sind also 2^32 Sekunden (ca. 136 Jahre) darstellbar. Die Unixzeit verwendet jedoch von den 32 Stellen die erste als Vorzeichen und kann somit ab 1970 +- 2^31 Sekunden (ca. 68 Jahre) darstellen. Und genau das wird bei Y2K38 ein Problem.

Vor allem auf älteren Systemen wird die Unixzeit mit 32 Bit dargestellt. Werden nun die oben genannten 68 Jahre überschritten, kommt es zu einem sogenannten arithmetischen Überlauf. Dieser Überlauf ist der Y2K38-Fehler. Statt weiterhin hochzuzählen, springt die erste Stelle der 32 Zeichen langen Binärzahl von “0” auf “1”. Da diese Stelle aber angibt, ob die Zahl positiv oder negativ ist, springt das Datum schlagartig um ungefähr 136 Jahre zurück. Um 03:14:07 am 19. Januar 2038 folgt der Sprung auf 20:45:52 Uhr des 13. Dezembers 1901. Die unten gezeigte Animation stellt den Überlauf dar.

Der Y2K38-Bug

Die Auswirkungen des Y2K38-Fehlers

Betriebssysteme, die auf der Unixzeit basieren, werden häufig von Servern oder eingebetteten Systemen wie Router oder Messgeräten benutzt. Da vor allem Server meist deutlich länger als Heimcomputer betrieben werden, ist es nicht auszuschließen, dass Programme oder leistungsschwache Elektrogeräte, die mit 32 Bit rechnen, falsche Anzeigen ausgeben oder Fehlfunktionen haben. Bedenkt man, wie viele Geräte mittlerweile einen eigenen Prozessor besitzen und in unseren Alltag integriert sind, ist es sehr schwierig vorherzusehen, wie viele davon bis zum Jahr 2038 auf Anfälligkeit für den Y2K38-Fehler überprüft worden sind. Als Unternehmen sollte man entsprechend langfristig Budget einplanen, um den Fehler frühzeitig zu finden.

Um den Y2K38-Bug zu beheben, reicht es nicht einfach ein neues Gerät mit 64 Stellen zur Zeitrechnung zu benutzen und die alte Software oder Firmware aufzuspielen. Es ist möglich, dass die Verwendung von maximal 32 Stellen fest in die Software geschrieben wurde und keinen Gebrauch von zusätzlich verfügbaren Stellen macht. Deswegen muss die Software, bevor sie auf ein Gerät mit 64-Bit-Architektur gespielt wird, daraufhin überprüft und gegebenenfalls angepasst werden – Ein erheblicher Aufwand. Besonders für Systeme, die fest verbaut sind und nicht einfach angepasst werden können, gestaltet sich die Fehlerbehebung als schwierig.

Fazit

Es ist praktisch unmöglich, genau vorherzusagen, inwiefern der Y2K38-Fehler Systeme betreffen wird. Selbst wenn ein System in 32 Bit rechnet, folgt daraus nicht automatisch, dass die Funktionalität eingeschränkt wird. Es ist auch denkbar, dass es nur zu Anzeigefehlern kommt, die aber keine Auswirkungen auf die weitere Funktion der Software haben. Glücklicherweise hat man im Gegensatz zu Zero-Day-Exploits Vorlaufzeit und es ist exakt bekannt, zu welchem Zeitpunkt der Fehler auftreten wird. Wird der Fehler als ernst zu nehmendes Problem behandelt und die eigenen Systeme entsprechend überprüft, so können die Auswirkungen deutlich verringert werden.

Foto des Autors

Chris Wojzechowski

Mein Name ist Chris Wojzechowski und ich habe vor wenigen Jahren meinen Master in Internet-Sicherheit in Gelsenkirchen studiert. Ich bin geschäftsführender Gesellschafter der AWARE7 GmbH und ausgebildeter IT-Risk Manager, IT-Grundschutz Praktiker (TÜV) und besitze die Prüfverfahrenskompetenz für § 8a BSIG. Unser Brot und Buttergeschäft ist die Durchführung von Penetrationstests. Wir setzen uns darüber hinaus für ein breites Verständnis für IT-Sicherheit in Europa ein und bieten aus diesem Grund den Großteil unserer Produkte kostenfrei an.