Ansichten eines Informatikers

IT-Sicherheitskatastrophe durch Code of Conduct?

Hadmut
31.3.2024 17:20

Sind wir gerade nur knapp am totalen IT-Fuckup vorbei?

Und wissen wir vielleicht noch nicht einmal, was da noch droht?

Das Problem ist, dass am aktuellen Fall vieles noch unklar ist, und dass das, was klar ist, schwer laienverständlich zu erklären ist.

Ich fange mal so an:

Zu den wichtigsten und sicherheitsrelevantesten Programmen überhaupt im Unix/Linux-Bereich gehört der sogenannte ssh-Dämon. ssh (secure shell) ist das Programm, mit dem man sich auf anderen Rechnern einloggt und dort dann auch Administrator (root) wird, womit man also den gesamten Rechner kontrolliert. Wer in diesem ssh-Dämon (sshd) eine Lücke ausnutzen kann, der kann dann jeden Rechner übernehmen, bei dem er an den ssh-Dämon kommt, je nach Art der Lücke. Und das ist übel, weil große Teile der Server und der ganzen Internetdienste auf Linux laufen und damit den ssh-Dämon verwenden, um den Zugang sicher zu steuern.

Und genau das ist nun passiert, ein Angreifer hat es geschafft, da irgendwie eine Sicherheitslücke reinzuschmuggeln. Angeblich eine ganz böse, mit der man noch vor der Authentifikation Schadcode ausführen kann, man also überhaupt keine Zugangsdaten braucht (etwas anderes wäre es beispielsweise, wenn man Zugangsdaten für einen Benutzer bräuchte, und sich damit als jemand anderes einzuloggen, aber hier war es die Möglichkeit, direkt Schadcode mit Root-Rechten auszuführen, also der Jackpot).

Nur dem Zufall und einem aufmerksamen Programmierer namens Andres Freund (ironischerweise bei Microsoft), dem auffiel, dass da was nicht stimmt, ist es zu verdanken, dass der Angriff zu einem Zeitpunkt entdeckt wurde, als die Lücke noch – nach derzeitigem Wissen – nur in den Entwicklungsversionen und noch nicht in den Produktivversionen der Systeme war.

Es geht dabei um einen sehr trickreichen Angriff, der nicht direkt am sshd stattfand, sondern über ein Kompressionsprogramm xz, genauer gesagt, dessen Programmbibliothek, in das eine Hintertür eingebaut war, die aber nur aktiviert wurde, wenn es als Teil des sshd lief und dann erlaubte, schon beim Schlüsseltausch, also lange vor der Authentifikation, Schadcode einzuschleusen.

Was mir daran schon Stirnrunzeln bereitet: Warum eigentlich verwendet die ssh bzw. deren Dämon eine Schrottbibliothek wie xz? (Wer mal gucken will: Auf einem Linux-System ldd /usr/sbin/sshd aufrufen, da taucht liblzma.so auf) Es ist bekannt, dass xz ein ziemlicher Schrott und miserabel entworfen ist.

Anscheinend war es nun so, dass hinter liblzma die Firma oder sonst unklare Organisation Tukaani steht. Und bei der nun wieder habe ein Entwickler mit dem Account JiaT75 und dem Namen Jia Tan , den sie nicht einmal kennen, Code-Änderungen eingeschmuggelt. Was man über Jia Tan weiß.

Das nun wieder war möglich, weil der Code sehr gut getarnt war. Soweit ich das bisher gelesen habe, war die Backdoor nicht im Quelltext lesbar, sondern in Testdaten, die man heute eben für automatische Tests beim Compilieren der Software (CI/CD-typisch) verwendet, war wohl eine vorcompilierte Bibliothek versteckt, die man dann eingebunden hat, weshalb die Backdoor nirgends im Quelltext auftauchte.

Dazu kamen wohl noch eine Reihe orchestrierter Fake-Accounts für social engineering, die die neue Version lobten oder die Maintainer von Red Hat und Debian beknieten, SuSE wohl auch, Alpine wohl ebenso, nur indirekt Homebrew, dass sie die neue Version doch in ihre Distributionen aufnehmen sollten, weil so toll und gut – und das sogar erfolgreich, die fanden Eingang in die Entwickler- und Testversionen, aber noch nicht in die Produktivversionen (wo sie aber dann gelandet wären).

Es gibt inzwischen ganz viele Webseiten dazu (meine jetzt auch), nicht ganz einfach, da noch greifbare Informationen zu finden. Hier und hier etwa, oder hier. Oder auch in deutsch. Oder Heise hier und hier. Und natürlich den CVE.

Alle regen sich auf, aber Ursachenforschung habe ich bisher nicht entdeckt, bis auf einen Spott mit Verweis, dass xkcd das schon betrachtet habe:

Dazu – mit Verweis auf dieselbe XKCD-Zeichnung – hatte ich aber auch schon viel geschrieben. Nämlich dass wir immer mehr Software schreiben, deren Zusammensetzung wir nicht mehr kennen, weil einfach irgendwelche Bibliotheken eingebunden werden, deren Herkunft und Qualität unbekannt ist, und die ihrerseits immer mehr hinter sich herziehen. Ich habe vor Jahren mal – ich mag Java nicht – für einen Test eine Java-Umgebung aufgesetzt um ein Programm zu übersetzen – und erste einmal eine halbe Stunde gewartet, bis das Ding alle Dependencies aus dem Internet zusammengesammelt hatte, und mir damit dann die Platte vollgerotzt hat. In der Frühzeit von Rust wollte ich mal deren Web-Framework Iron ausprobieren, aber das Example lief nicht. Weil irgendwo auf der Welt irgendeine Bibliothek verändert worden sei, man aber selbst nicht wisse, wo in dem Haufen Zeugs, von dem man abhänge, das sei.

Und hier haben wir nun den Vorfall, dass einfach irgendjemand, jemand, den keine Sau kennt und überprüft hat, ob es den überhaupt gibt, ohne Historie, mit Phantasienamen einfach auftauchen und eine Backdoor in eine Programmbibliothek drücken kann, mit der er – wenn das nicht rein zufällig jemand entdeckt hätte – alle Linux-Server dieser Welt (Windows ausnahmsweise mal nicht, aber besser ist das da auch nicht) kompromittiert hätte.

Und das auf eine Weise, gegen die auch ein sorgfältiger Administrator, Firewall, Intrusion Detection nichts geholfen hätten.

(Was aber wieder meine Meinung bestätigt, dass man jederzeit in der Lage sein muss, seinen Server zu löschen und automatisiert neu aufsetzen.)

Was aber auch belegt, was ich schon vor Jahren prophezeit habe: Dass Linke, Queere, Woke, deren „Code of Conduct“, die IT zerstören. Denn deren zentrales und mit dreckigsten Methoden durchgesetzes Weltbild ist ja, dass man – Quality is a myth – wirklich jeden an jedem Code mitschreiben lassen muss und niemanden ausgrenzen darf. Und jetzt hat man das Ergebnis.

Man ist sich noch nicht sicher, wen man dahinter vermuten soll. Der Angriff sei so ausgefuchst und mit social engineering unterlegt, dass das kein Anfänger, Skript-Kiddie oder Einzeltäter sein kann.

Man hat etwa die Russen, die Chinesen, Nordkorea in Verdacht. Auf Deutsch: Man weiß nicht, wer dahinter steckt.

In einem Punkt liegt man aber wohl richtig: Nämlich, dass es eine Kriegshandlung war, ein Angriff auf die gesamte Infrastruktur. Und schaut man sich an, seit wann es den Account gibt, seit wann das vorbereitet wurde, kann man sich überlegen, mit wem das zu tun haben kann.