Liebe Leserïnnen,
das Bundesamt für Sicherheit in der Informationstechnik hat am Wochenende „Warnstufe Rot“ ausgerufen (Öffnet in neuem Fenster). Eine Sicherheitslücke in der Java-Bibliothek „log4j“ stellt eine große Gefahr dar. Das hat viele Leute und ihre Oma alarmiert: Menschen, die sich überhaupt nicht mit Computern auskennen, schnappen die Meldung in der Zeitung und den Nachrichten auf und können sie einfach nicht dekodieren. Was zum Geier ist denn zum Beispiel eine Java-Bibliothek? Wer sich in Massenmedien darüber informieren möchte, ist bis auf wenige Ausnahmen wie dem „Spiegel“ (Öffnet in neuem Fenster) aufgeschmissen. Das liegt daran, dass auch die Journalistïnnen, die darüber berichten sollen, keine Ahnung haben, wovon sie reden. Eindrucksvolles Beispiel war da die Börsenreporterin Valerie Haller im gestrigen „heute journal“, die „log4j“ als „Server-Software von Java“ bezeichnete, wobei sich fragt, ob das ihre Schuld ist, wenn die Redaktion findet, es sei eine gute Idee, das Thema in den Börsennachrichten unterzubringen.
Alle ITlerïnnen, Computer-Affine und Menschen, die Fachmedien verfolgen, können hier aufhören zu lesen. Für alle anderen folgt ein kleines „log4j für Dummies“:
Wenn Computerprogramme so vor sich hinlaufen, protokollieren sie gerne, was so passiert. Sie schreiben alle möglichen Ereignisse oder manchmal einen Hinweis darauf, dass seit so und so viel Minuten nichts passiert ist, in so genannte „log-Dateien“. Das hat nichts mit Logarithmen zu tun, sondern kommt von Log-Buch. So eine Log-Datei kann sehr nützlich sein. Wenn beispielsweise Unbefugte ins System eindringen, lässt sich in den Log-Dateien nachsehen, wer sich wann im System angemeldet hat – jedenfalls wenn die Unbefugten die Log-Dateien nicht löschen, bevor sie wieder verschwinden. Oder es lässt sich in den Log-Dateien nachlesen, was als letztes passiert ist, bevor ein Programm oder Computer abgestürzt ist, um die Fehlersuche zu erleichtern. Kurz: Log-Dateien sind eine feine Sache.
Damit Computerprogramme aber in solchen Log-Dateien protokollieren, was alles so passiert, müssen die Programmierïnnen das auch ins jeweilige Programm hineinprogrammieren. Von alleine passiert das nicht. Deshalb haben viele Computerprogramme irgendwo ein Unterprogramm, das diese Protokollieren übernimmt. Nun ist es aber langweilig und aufwändig, wenn für jedes Programm immer wieder aufs Neue auch dieses Unterprogramm geschrieben werden muss. Deshalb gibt es so genannte Programm-Bibliotheken. Sie enthalten eine Reihe solcher Unterprogramme, die in vielen Programmiererïnnenlebenslagen nützlich sind. Wer eine Bibliothek einbindet, muss nicht mehr selbst programmieren, was andere vor einem schon zig mal programmiert haben. Eine solche Bibliothek ist „log4j“.
Eigentlich sind solche Bibliotheken eine gute Sache. Etwas jedes mal immer wieder neu programmieren zu müssen, erhöht nämlich die Fehleranfälligkeit, weil den Programmiererïnnen beim Immer-Wieder-Neu-Programmieren auch immer mal wieder Fehler unterlaufen. Normalerweise ist es also sicherer eine ausgereifte Bibliothek zu verwenden als etwas selber zu schreiben. Das Dumme ist nur: Nicht alle Bibliotheken, die dafür gehalten werden, sind auch ausgereift und fehlerfrei. Leider fliegen überall Bibliotheken voller Lücken herum, weil es langweilig ist, sie zu pflegen. Wer hat schon Lust, eine Bibliothek zum Protokollieren von Programmereignissen zu testen und zu überarbeiten, wenn er oder sie auch an der nächsten weltbewegenden App arbeiten könnte. Und übrigens im Fall von freier Software, die von allen beliebig benutzt werden kann, auch schlecht oder gar nicht für die Pflege bezahlt wird? Das ist übrigens der Grund, warum viele IT-Aktivistiïnnen und Netzplitikerïnnen die Pflege von Open-Source-Software auch als staatliche Aufgabe betrachten und entsprechende politische Forderungen stellen – einfach damit sich jemand der langweiligen Routine-Jobs annimmt, auf die sonst niemand Bock hat.
Aber zurück zu „log4j“. Der Name übersetzt sich in „Log für Java“. Java ist eine Programmiersprache, die potenziell vom High-End-Server bis zur smarten Glühbirne auf allem möglichen läuft, sofern jemand eine Java-Laufzeitumgebung eingebaut hat. Das ist von Haus aus bei einem Windows-Computer nicht der Fall. Insgesamt ist Java ziemlich aus der Mode gekommen, normale Anwenderïnnen setzen nur selten Java-Programme ein. Bei Servern und vielen Geräten sieht das jedoch anders aus. Deshalb entsteht der Eindruck, als seien vor allem Unternehmen von der Sicherheitslücke in „log4j“ betroffen, weshalb das Thema auch in den Börsennachrichten verbuddelt wird. Doch das stimmt nicht. Sehr viele Geräte vom DSL-Router bis zur smarten Glühbirne können „log4j“ intern benutzen, ohne dass eins es ihnen ansieht. Und auch der ganz normale Windows-PC kann betroffen sein, wenn Java und „log4j“ im Huckepack mit anderer Software installiert werden. Ob Du also Java und „log4j“ hast, ohne es zu wissen, lässt sich nicht ohne weiteres beantworten. Im Internet kursieren Listen betroffener Software, die aber längst nicht vollständig sind und auch Nennungen enthalten können, wo die Sicherheitslücke bereits geschlossen wurde.
Aber worin besteht jetzt eigentlich die Sicherheitslücke in „log4j“? Viele Programme schreiben auch ins Protokoll, was Anwenderïnnen eintippen. Wenn ich mich an einem Server als „Enno“ anmelde, dann schreibt der Server vielleicht „Enno hat sich angemeldet“ ins Protokoll. Anstelle von „Enno“ kann ich aber auch einen Computer-Befehl nehmen und der wird dann von „log4j“ tatsächlich ausgeführt – etwa ein Kommando, das ein Computer-Virus von woanders herunterlädt und ausführt. Dass das überhaupt passieren kann, ist eigentlich schlechte Programmierung. Die „log4j“-Bibliothek hätte so geschrieben werden müssen, dass das gar nicht erst passieren kann und dass auch das Kommando zum Herunterladen eines Computervirus nicht wirklich ausgeführt, sondern lediglich in die Log-Datei geschrieben wird. Dummerweise wurde „log4j“ aber eben „schlecht programmiert“. Dieses „schlecht programmiert“ ist übrigens auch das, was Informatikerïnnen meinen, wenn sie über bestimmte Apps wie die Luca-App schimpfen, und wo es dann immer sehr schwer ist, für Laien verständlich zu erklären, was genau eigentlich das Problem ist.
Der Fehler in „log4j“ lässt sich relativ einfach beheben. In den Unternehmen schieben die Programmiererïnnen und Sysadmins gerade Überstunden, um den Fehler überall zu beheben. Ich glaube deshalb, dass sich die Schäden in Grenzen halten werden. Es gibt mittlerweile eine reparierte Version von „log4j“ und viele Software-Anbieterïnnen liefern derzeit Sicherheitsupdates aus, die entweder diese neue Version enthalten oder aber Maßnahmen treffen, „log4j“ am Ausführen von Kommandos zu hindern. Beim Windows-PC ist die Lage also einigermaßen unproblematisch, jedenfalls wenn er gut gepflegt ist. Anders sieht es bei vielen Geräten im Haushalt aus. Das veraltete Android-Handy oder der Billig-DSL-Router bekommen eben keine Sicherheitsupdates. Klarheit darüber, welche Geräte genau gefährdet sind, gibt es nicht, aber eine Daumenregel: Höherwertige Markengeräte bekommen Updates, Billigkrams bekommt keine. Es lohnt sich, den eigenen Gerätepark anhand dieses Kriteriums einmal durchzugehen, Schrott rauszuwerfen und ansonsten alle Geräte zu updaten, sofern sie das nicht von sich aus tun.
Gerade weil die Situation für normale Anwenderïnnen – auch die versierten unter ihnen – so undurchsichtig ist, ist „log4j“ aber ein politisches Thema. „Pass halt auf, welche Hard- und Software du so einsetzt“ funktioniert nicht, wenn niemand der Hard- und Software ansehen kann, ob sie „log4j“ enthält. Hier muss also der Staat regulierend eingreifen: Einerseits muss freie Software und ihre Pflege staatlicherseits gefördert werden, um solche Fehler zu vermeiden, andererseits müssen Herstellerïnnen verpflichtet werden, für einen bestimmten Zeitraum Sicherheitsupdates anzubieten und ein „Verfallsdatum“ auf der Verpackung anzugeben, wann dieser Zeitraum endet. Beides fordern IT-Expertïnnen seit vielen Jahren und beides hat sich nach langen Jahren großkoalitionärer Ignoranz die Ampel in den Koalitionsvertrag geschrieben.
Eine gute Zeit wünscht
Enno Park
P.S.: Gefällt dir dieser Newsletter oder was ich auf Twitter (Öffnet in neuem Fenster) und anderswo (Öffnet in neuem Fenster) schreibe?
👉 Dann unterstütze mich hier! (Öffnet in neuem Fenster) 👈
Deine Unterstützung hilft mir sehr, meine Texte auch in Zukunft weitestgehend ohne Paywall zu veröffentlichen. Ich danke herzlich!