Global Clusterfuck
So langsam frage ich mich, wie dieser Fefe eigentlich seine gute Laune behält. Für mich fing der Tag mit dem nächsten Kapitel der Prozessor-Apokalypse an (nachdem sie bei Google gerade zu dem Schluss gekommen sind, dass man da mit Software-Patches nichts machen kann). Gestern hatte ich schon Fefes Rant über Grafikkartentreiber gelesen:
Unter Kernel-Code-Auditoren gab es damals teilweise ernsthaft die Frage, warum wir uns hier eigentlich soviel Mühe machen, wenn die Leute da draußen GPUs und Treiber haben, die alles wieder zum Scheunentor machen.
Ach so, & dann natürlich das Berliner Dauerthema BER, über das ich an dieser Stelle keine weiteren Worte verlieren werde als dass es genau ins Bild von Global Clusterfuck passt.
Jedenfalls hatte mir ja gestern Abend noch die Meldung vom EuGH-Urteil zur Arbeitszeiterfassung die Laune verdorben.
Es geht weiter mit dem Clusterfuck von heute: Kritische Lücke in RDP, die Microsoft dazu veranlasst, selbst nach dem Supportende noch ein Sonder-Sicherheitsupdate für Windows XP zu verteilen.
Und dann noch der Lacher des Tages: Intel will UEFI durch was modernes, ordentliches ersetzen. Darin beschreibt Fefe den höchst zerbrechlichen und prekären Zustand unserer technischen Infrastruktur im Jahr 2019:
Genau wie überhaupt metastasierende Firmware ein Trend ist. Früher hatte man ein Mainboard und eine CPU und auf dem Mainboard war ein BIOS und das war es. Wenn man von der Netzwerkkarte booten wollte, gab es ein Konzept für das Laden eines DHCP-Moduls von der Netzwerkkarte. Wenn man einen SCSI-Controller einbaute, gab es ein Konzept für das Laden eines BIOS-Moduls von dort. Das alte Ranzbias war auch schon so modular wie nötig.
Aber heute? Heute hat man in der CPU zwei Firmwares (einmal Microcode, einmal für die Management Engine, die übrigens auch ein eingebetteter Prozessor ist, auf dem ein Betriebssystem-Kernel und User-Space-Module laufen), dann hat man ein UEFI-Bios mit Modulen, dann hat man im WLAN-Chip eine Firmware, in der Netzwerkkarte, selbst Tastaturen und Mäuse haben Firmwares. Oh und auf dem Mainboard gibt es auch nochmal eine Management-Engine mit eigener Firmware. Und innerhalb dieser Geräte gibt es teilweise noch Unter-Firmwares für interne Teilkomponenten, die die verwalten, ohne dass man das von außen sehen kann. […]
Und alle kämpfen dann mit einer Update-Strategie für ihre Firmwares. Trust-Probleme werden mit Kryptografie unter den Teppich gekehrt. Früher hat man Kryptografie zwischen Regierungen benutzt, dann zwischen mir und meiner Bank, dann zwischen mir und meinem Drucker, zwischen mir und meinem Monitor, jetzt haben wir innerhalb der CPU Kryptographie zwischen Host-CPU-Teil und Management-Engine. Es ist so dermaßen absurd, nicht zuletzt weil das natürlich eine massive Energieverschwendung ist. Aber was mir noch mehr Sorgen macht: Kryptografie ist ein bewegliches Ziel. Wenn morgen ein populärer Algorithmus bricht, dann stürzt uns einmal das komplette Kartenhaus ein, nicht nur Online-Banking. Alles beruht heutzutage auf Kryptografie. AMD macht ja sogar Krypto zwischen Hypervisor und VMs und hat RAM-Verschlüsselung. Anstatt mal das Design ordentlich zu machen, erklären wir einfach immer alles für unvertrauenswürdig und machen Kryptografie wie zwischen Ländern, die miteinander im Kriegszustand sind.
Fefe, wie schaffst du es angesichts dieses globalen Clusterfucks (ganzes Buch dazu von Holm Friebe und Detlef Gürtler) gute Laune zu behalten? Andere hätten längst den Strick genommen…
Ach so, der letzte Firefox-Clusterfuck (Teil 1 bei Fefe, Teil 2, Teil 3) ist an mir vorübergegangen, wohl weil ich die ESR-Version benutze. Vgl. dazu aber insbesondere Teil 3.
Und dann läuft ja noch die unselige DNS over HTTPS-Geschichte, in deren Rahmen ich schon Fefe unter der Überschrift Komplexität ist der Feind zitiert habe. Das passt hier heute auch genau hin:
Komplexität ist der Feind. Die Anzahl der Bugs steigt mit der Codegröße. Die Leute stöpseln heute nur noch Komponenten aus Libraries zusammen. Das ist Schönwetter-Programmieren! Ein Programm, das nur beherrschbar ist, wenn es zufällig gerade gut funktioniert, ist wertlos. Wir brauchen Programme, die überschaubar wenig Dinge tun, und dafür vollständig beherrschbar sind. Am besten nicht nur vom Programmierer, sondern auch vom Benutzer. Die Geschwindigkeit, mit der wir uns mit unbeherrschten und unbeherrschbaren Technologien umzingeln, ist aus meiner Sicht ein Vorbote der Apokalypse.
Das Wort Clusterfuck stammt übrigens ursprünglich von den U.S. Marines.
Nachtrag: Nicht zu vergessen der schon lange andauernde Clusterfuck bei Microsoft-Updates. Der hatte mich übrigens schon vor vier Jahren mal beschäftigt.
Und dann noch dieses Anti-Huawei-Theater, während man bei Cisco nur noch davon sprechen kann, dass deren Produkte offene Scheunentore sind.
Na ja, & wer WhatsApp benutzt, ist eh selber schuld. Ob Wire mit seiner Electron-basierten Benutzeroberfläche allerdings wirklich besser ist, wage ich allerdings zu bezweifeln. Man hat irgendwie nur noch die Wahl zwischen Pest & Cholera heutzutage; leider allzu oft auch bei Open Source-Software.
Und weil’s so schön hier hin passt: SQLite: Schwachstelle in Programmbibliothek erlaubt Remote Code Execution.
Wow, im heise-Newsticker findet sich doch tatsächlich mal ein einzelner Lichtblick: VPN-Software WireGuard jetzt als Pre-Alpha-Version für Windows verfügbar. Das ist vor allem deshalb ein Lichtblick, weil WireGuard sich auf die Fahnen geschrieben hat, überschaubare Software zu entwickeln:
WireGuard has been designed with ease-of-implementation and simplicity in mind. It is meant to be easily implemented in very few lines of code, and easily auditable for security vulnerabilities. Compared to behemoths like *Swan/IPsec or OpenVPN/OpenSSL, in which auditing the gigantic codebases is an overwhelming task even for large teams of security experts, WireGuard is meant to be comprehensively reviewable by single individuals.
Von der Politik fange ich lieber gar nicht erst an, ich sage nur Handelskrieg und Brexit.
Nachtrag vom 16.05.: Nach näherem Hinsehen eignet sich diese ModernFW von Intel wohl nicht als Aufhänger für das, was Fefe dazu geschrieben hat:
We are seeking to reduce the overall footprint, increase efficiency, and to improve the security posture of the system by eliminating capabilities that are not needed to meet requirements for platforms that serve more vertically integrated purposes. For example, one avenue for exploration is to move any functionality that can be accomplished in the context of the operating system out of the firmware.
Sie wollen damit anscheinend genau das umsetzen, was Fefe anmahnt & was sie zuvor mit (U)EFI episch verkackt haben. Vielleicht lernt Intel ja doch ausnahmsweise mal aus früheren Fehlern?
Weiterer Nachtrag vom 16.05.: Jetzt hat doch tatsächlich Fefe auf eine Mail geantwortet, in der ich genau dies zu ModernFW geschrieben hatte. Möglicherweise bin an dieser Stelle ich selber zu naiv:
Das ist nicht deren Designziel. Das sind die Designziele von Coreboot, die sie kopieren, weil sie PR-technisch nicht haben wollen, dass jemand mit der Prämisse “wir trauens Intels Scheiß nicht” Erfolg hat.
Galgenhumor vom 16.05.: Make Linux Fast Again!
Nachtrag vom 18.05.: Was meine persönliche Laune zuverlässig immer wieder aufhellt, ist Musik. Aktuell höre ich zum einen LP a.k.a. Laura Pergolizzi, aus einer ganz anderen Ecke Banco de Gaia und Dr Trippy (dessen Name ja so was von Programm ist!).
Nachtrag vom 24.05.: Sehr interessante ergänzende Perspektive – Jonathan Blow - Preventing the Collapse of Civilization. Bei Shadowrun bricht ja das globale Netz wegen eines Virus zusammen. Vielleicht wird das aber gar nicht aus bösem Willen passieren, sondern einfach nur wegen eines besonders gravierenden Bugs in einer zentralen Systemkomponente. Und das auch vielleicht schon vor 2029.
Nachtrag vom 17.06.: Ich hab mir ja gleich das Clusterfuck-Buch bestellt, hier der erste Absatz der Einleitung:
Im Universum strebt alles zum größtmöglichen Chaos, zur Entropie, dem Endzustand maximaler Unordnung. Insofern ist es eine Überraschung, wenn überhaupt etwas gelingt. Statistisch betrachtet sind Ordnung und Funktionieren sehr viel unwahrscheinlicher, als dass alles sich verhakelt, blockiert und ins Wanken gerät. Alles Leben auf dem Planeten, sämtliche Handlungen – ob im Büro, im Schlafzimmer oder im Auftrag von Majestät oder Nation – sind ein beständiger, aussichtsloser, nur auf Zeit zu gewinnender Kampf gegen den Schlamassel.
Nachtrag vom 12.08.: Kubernetes-Audit hält System für zu kompliziert:
Interessant an der Auswertung ist vor allem die Einordnung von Kubernetes durch die Prüfer unabhängig von den gefundenen Lücken selbst. So wird Kubernetes als System mit “erheblicher Komplexität” bezeichnet. Ebenso seien die Konfiguration und das Deployment nicht trivial. Das wieder liege an “verwirrenden Standardeinstellungen, fehlenden Steuerungselementen und nur implizit definierten Security-Kontrollelementen”.
Die Kritik geht aber noch weiter: So habe die riesige Codebasis große Teile mit nur “minimaler Dokumentation” sowie zahlreiche externe Abhängigkeiten. Außerdem gebe es viele Stellen, an denen bestimmte Programmlogik einfach reimplementiert wird. Hier wäre es besser, diese in zentrale Helferbibliotheken auszulagern.
Nachtrag vom 19.08.: Absolute scale corrupts absolutely:
The Internet has gotten too big.
Warum?
There’s a pattern that I don’t see talked about much, but which seems to apply in all sorts of systems, big and small, theoretical and practical, mathematical and physical.
The pattern is: the cheaper interactions become, the more intensely a system is corrupted. The faster interactions become, the faster the corruption spreads.
Er beschreibt ein zentrales Merkmal von Clusterfucks, das Vereinheitlichen:
Diversity is how nature defends against corruption, but not how human engineers do.
In fact, a major goal of modern engineering is to destroy diversity. As Deming would say, reduce variation. Find the “best” solution, then deploy it consistently everywhere, and keep improving it.
Und weiter:
Here’s what we’ve lost sight of, in a world where everything is Internet scale: most interactions should not be Internet scale. Most instances of most programs should be restricted to a small set of obviously trusted people.
Weiterer Nachtrag vom 19.08.: Avery Penwarr hat auch einen fetten Rant über Netzwerkprotokolle, The world in which IPv6 was a good design. Kurz zusammengefasst:
It is, in short, a mess.
Nachtrag vom 21.08.: Gleich zwei Leserbriefe an Fefe wegen des Update-Clusterfucks. Nummer 1:
Updates im Netzwerkbereich werden gemacht wenn die Hardware getauscht wird. Oder wenn einen funktionalen Bug gibt der die Arbeit stört. Also meistens zumindest. Ausnahmen bestätigen die Regel.
Und vor allem Nummer 2:
So ein Cisco-XE-Switch braucht zwischen 7 und 15 Minuten für einen Reboot. Vor zwei Jahrzehnten haben wir Switches im Betrieb neugestartet, weil sie binnen Sekunden wieder oben waren. Das kannst Du heute nicht mehr. Und niemand möchte nachts arbeiten, nur um ein paar blöde Switches (die in 99% der Fälle nichts weiter tun als das, was Switches vor 20 Jahren auch getan haben) neu zu starten.
Äh bitte?!? Ein fucking Switch braucht fucking 7 bis 15 Minuten für einen fucking Reboot!?! WTF!!
Updates machte man, um Fehler und Sicherheitsmängel zu beheben. Man erhofft sich Produktivitätssteigerung und Sicherheitsgewinne, und nimmt dafür Unbequemlichkeiten und kurzfristige Produktivitätsverluste in Kauf.
Mittlerweile ist das aber anders: Updates stehen für neue Fehler, nicht dafür, dass das Produkt besser wird.
Updates kosten Zeit, Geld, Planung, Absprachen und Nerven. Und sie bergen Risiken. Unter diesen Umständen updated man nur, wenn man muß.
Das war anders, als Update und Upgrade noch verschiedene Dinge bedeuteten.
Nachtrag vom 04.09.: USB 4 sieht mir sehr nach einem weiteren Schritt in Richtung Clusterfuck aus. Vgl. auch Fefes (schon älteres) Statement dazu:
Reguläres USB hat gegenüber Thunderbolt den großen Vorteil, dass es kein Busmaster-DMA nach außerhalb des Gerätes exponiert. Bei Thunderbolt kann man ein Gerät anstecken, und das kann dann im Speicher des Rechners herumlesen und -schreiben. Das ist ein Sicherheitsdesaster, das nur durch IOMMU auf Host-Seite mitigiert wird, und das ist auch keine gänzlich zufriedenstellende Lösung, weil es halt z.B. während des Bootvorganges nicht notwendigerweise aktiviert ist.
Nachtrag vom 08.09.: Leseempfehlung aus dem Clusterfuck-Buch: Dirk Helbing: Die Welt entkomplexen. Mir ist nicht klar, ob er tatsächlich eine Linksteuer fordert, was lediglich eine Zensurmaßnahme wäre, ohne die Welt ernsthaft zu entkomplexen. Wegen zu vieler Hyperlinks ist wohl noch keine Katastrophe passiert; die Vernetzung auf anderen Ebenen wie der finanziellen wiegt da deutlich schwerer. Der Artikel Globally networked risks and how to respond spricht eher dafür, dass er ganz allgemein Verknüpfungen mit Kosten belegen will. Das ist ein interessanter Gedanke:
Jede Verbindung, jeder Link erhöht die Komplexität des Gesamtsystems und in übervernetzten Systemen bedeutet dies: erhöht das Risiko. Und jedes Risiko sollte einen Preis haben. Wenn also Verbindungen bepreist – oder besteuert – würden, führte das zu einer Abwägung, bevor ein Link gesetzt, zwei Dinge oder Personen verbunden werden: Welche Verbindungen sind wirklich wichtig? Wichtig für mich, wichtig für meinen Zweck, wichtig für das finanzielle oder politische oder soziale System?
Nachtrag vom 13.09.: Im Finanzbereich droht die nächste Stufe des Clusterfucks:
Man muss kein Schwarzmaler sein, um zu befürchten, dass FinTechs – beziehungsweise deren Kunden – leichte Beute für organisierte Cybercrime werden. Der werden schon die etablierten Banken kaum noch Herr; Startups mit API-Zugriff auf tausende oder sogar Millionen Konten sind ein viel einfacheres und ähnlich lukratives Ziel.
PSD2 und Open Banking bedeutet also keineswegs, dass wir mehr Zugriffsrechte auf unsere Daten und unser Geld bekommen. Oder dass der Open-Source-Gedanke jetzt auch die Bankenwelt erreicht hätte. Open Banking bedeutet vielmehr, dass es im Finanzmarkt viele neue Player geben wird, weil die großen Finanz-Haie ihre Gewässer für hungrige Piranha-Schwärme öffnen müssen – und wir sind das Futter.
Nachtrag vom 29.02.2020: Wenn du einen Clusterfuck erzeugen willst, dann setze Komplexitätsverstärkertechnologie ein! ;-)
Nachtrag vom 17.02.2021: Texas bietet gerade ein Paradebeispiel für einen Clusterfuck.