IT-SuperGAU

  • Aktuelle IT-Ausfälle sind bisher immer nur lokal, und den Szenarios z.B. "Weltweiter mehrmonatiger Internetausfall" fehlte bisher, zumindest für meinen Geschmack (soll kein Angriff oder Kritik sein) die Substanz.


    Deshalb hab ich mir mal ein Szenario ausgedacht, bei dem mit recht kleiner Ursache eine Weltweite IT-Katastrophe konkret und detailliert vorstellbar wird.


    Vorgeschichte:

    Es beginnt im Jahre 1987, als ein Gaststudent aus Minnesota an der University of Amsterdam bei Andrew Tanenbaum an dem von Tanenbaum entwickelten Betriebssystem Minix Optimierungen durchführen darf. Wie es in Minnesota Tradition ist, baut er ein kleines Easteregg in den Microkernel, der folgendes tun soll: Eine so ungefähr minütlich aufgerufene Funktion überprüft, wann eine andere, üblicherweise zu Entwicklerzwecken gebrauchte Funktion das letzte mal aufgerufen wurde. Falls diese seit mehr als 30 Tagen nicht mehr aufgerufen wurde, wird ein Smiley auf den Bildschirm gemalt und ein "PLEASE PRESS ANY KEY" ein Tastendruck erwartet. Effekt wäre gewesen, dass nach der Abreise des Minnesota-Studenten Smileys den Tanenbaum nerven, den der Gaststudent nicht wirklich leiden konnte. Dummerweise hat er Tage mit Jahren verwechselt, und das Easteregg tritt zunächst nie in Aktion und ist in Vergessenheit geraten. Da das Easteregg sich an einem sonst sehr stabil funktionierendem Platz im Microkernel eingebaut wurde, wird dieser Bereich bei Reviews nie genauer überprüft, und auch sonst wird in Microkernelsystemen der Kernel nur sehr selten angefasst.


    Im Jahre 2008 entschließt sich Intel ohne dem namenlosen Studenten oder Professor Tanenbaum Bescheid zu geben, Minix in seine "Intel Management Engine" einzubauen. Das Easteregg ist immer noch drin und schlummert fröhlich vor sich hin.


    Im Jahre 2021, am 15.07 will es der Zufall, dass gerade jetzt die 30 Jahre seit dem letzten Aufruf der Entwicklerfunktion vergangen sind, und seit 2008 sind in allen besseren Intel-Chips die "Intel Management Engine" drin. Innerhalb von ungefähr einer Minute wird weltweit in jeder Intel-CPU das Easteregg aktiviert, es versucht auf einen (nicht angeschlossenen) Monitor ein Smiley auszugeben, und wartet auf einen Tastendruck einer nicht angeschlossenen Tastatur. Alle Intel-Chips mit IME stellen weltweit innerhalb von einer Minute ihre Arbeit ein. Ein Neustart würde ein Funktionieren des PCs für ca. eine Minute erlauben, bevor er wieder einfriert.


    Aktuelles Szenario:

    Du bist gerade bei der Arbeit und in der Fertigung, in der viele Maschinen mit Soft-SPS (auf Intel-Basis) scheppert es gewaltig. Es riecht brenzlig, die Werkssirene geht los, man sammelt sich vor dem Gebäude und wundert sich, dass die Feuerwehr nicht kommt. Handies funktionieren zwar alle noch (meistens mit AMD-Chips), der Empfangsbalken ist auf Anschlag, aber man kann trotzdem nicht telefonieren (Die Server sind zum Teil Intel).


    In fast allen Serverfarmen, die teils AMD, teils Intel-basiert arbeiten, sind an wichtigen Stellen Intel-Chips drin, wodurch fast alle Serverfarmen lahmgelegt werden.


    Arbeitest Du gerade an einem PC oder Laptop, dann hast Du ca. 30%ige Chance, dass Du erst mal gar nichts davon mitbekommst, und zwar so lange, bis Du nach außen willst, z.B. SAP oder telefonieren willst. Mit 70%iger Wahrscheinlichkeit friert einfach Dein Bildschirm ein, es bewegt sich nichts mehr, der Computer reagiert nicht auf Tasteneingabe oder auf den Ein/Aus Knopf.


    Hast Du auf deinem Smartphone eine Offline-App wie Serval, Briar oder SignalOffline (Jeder Previvler hat das), dann funktioniert die, falls jemand mit gleicher Software in Reichweite ist.


    Was würdet ihr tun? (Immer auf Basis des aktuellen Wissens. Von dem Easteregg wisst ihr zuerst nichts!)

    Wie schnell glaubt ihr, wird die Ursache gefunden?


    Was sind die Folgen?

    -Blackouts, da viele Kraftwerke auch mit Soft-SPS gesteuert werden.

    -totaler Kommunikationsausfall von allem, was irgendwie über Internet oder über zentrale Server läuft.

    -Verwaltung fällt komplett aus, außer denen, die noch mit Papier arbeiten.

    -Militär? Selbst Kampfpanzer haben komplexere CPUs verbaut, Schlachtschiffe, Flugzeugträger, ...

    -Neuere Autos.. bleiben die stehen, oder fahren sie mit aktueller Geschwindigkeit und Lenkradeinstellung weiter?

    -Banken, Bankomaten etc. sind handlungsunfähig.

    -Alle elektronischen Bezahlsysteme mit zentralem Server fallen aus


    Das ist doch mal ein Super-GAU, der den Namen auch verdient :)



    Nick

    Quidquid agis prudenter agas et respice finem

    Einmal editiert, zuletzt von Opa ()

  • moin,


    Boa ey....da kannst nen Roman draus machen.


    Ist ne Grundlage fürn gutes Buch ala Elsberg.


    Ansonsten, schönes Gedankenexperiment.na dann gute Nacht.


    Mfg Temeon

  • Korrekt, aber irgendwie ist das gepatcht? Die IME und andere Chips haben zig Updates erfahren. Da schlummern Sicherheitslücken drin, da wird einem schlecht. Aber ja, eine sehr interessante Sache. :)

    -<[ Nunquam-Non-Paratus ]>-

  • Nettes Gedankenspiel. Wie misst die Routine die vergangene Zeit? Wenn es die Zeitspanne zwischen zwei Aufrufen der Routine ist, dann tritt der Fall von abgelaufenen 30 Jahren doch in der Praxis nur auf Maschinen auf, die schon so lange in Betrieb sind, oder?

    Und wenn die IME auf die CMOS-Clock zugreift, dann dürfte doch das Rücksetzen der Borduhr (Knopfzelle auf dem Mainboard ein paar Minuten rausnehmen) das Problem für weitere 30 Jahre auch beheben?

    Anders wäre es, wenn die Routine von einem absoluten Datum aus gemessen, nach Ablauf der 30 Jahre aktiv wird. Ähnlich wie die Zeitfunktion in UNIX (dort beginnt die Systemzeit am 1.1.1970 und wird seither in Sekunden aufaddiert, in 32-Bit-Systemen mit 32-Bit-Ganzzahlen reicht das genau bis zum 19. Januar 2038 03:14:07 Uhr, dann kommt es zu einem Variablenüberlauf und der Zähler beginnt wieder bei 0, also setzt sich das Systemdatum von selbst auf 1.1.1970 0:00 Uhr zurück.

  • Ich kenn mich mit Minix nicht so gut aus, dass ich weiss, ob es da auch eine 32-Bit-Normalzeit gibt, aber da der Tanenbaum versucht hat, möglichst alles nachzubauen, nehme ich an, dass er das auch mit drin hat.


    Aber so Funktion 1 wird aufgerufen und speichert aktuelle 32-Bit Zahl irgendwo persistent ab, Funktion2 überprüft dann später diese Zahl müsste möglich sein. Es wurde ja im Szenario davon ausgegangen, dass eine 30-Tages-Zeitspanne gemessen werden soll, und selbst bei Unix kann nicht davon ausgegangen werden, insbesondere im Lehrbetrieb nicht, dass sicher 30 Tage kein Neustart passiert.


    Also möglich wäre es auf jeden Fall, so eine Absolute Zeitmessung neustartsicher zu machen.


    Und Uhr zurücksetzen... bei komplexeren Anwendungen bringt das auch Schwierigkeiten, wenn man einfach die Systemzeit dreht. Einige Softwarelizenzdongles sagen einfach: Da wurde manipuliert, Lizenz ungültig.

    Quidquid agis prudenter agas et respice finem

  • Joar, darum wird man sich kümmern. Und wenn nicht, warte ich aufs Feuerwerk :winking_face:

    -<[ Nunquam-Non-Paratus ]>-