Ein Wort zu Log4J

Verfasser: taranion | Datum: 10.01.2022 | Kategorie(n): Allgemeines

Einige Tage vor Weihnachten wurde ein Sicherheitsproblem in der weit verbreiteten Java-Bibliothek LOG4J gefunden. Kurz gesagt: Wenn es einem Angreifer gelingt, eine Anwendung dazu zu bringen, einen bestimmten Textinhalt (eine URL) zu protokollieren, kann dies zu einer Ausführung von Code aus dem Internet führen. Dies ist insbesondere ein Problem für alle Online-Dienste, die mit einem weltweiten Zugriff zu tun haben, und viele Dienste haben in den nächsten Tagen Notfall-Patches erhalten.

Genesis verwendet ebenfalls Log4J und ist bis zur Version 7.0.3 verwundbar. Aber im Gegensatz zu Online-Diensten läuft es nicht rund um die Uhr und wird nicht aus der Ferne angesprochen – es protokolliert die Aktivitäten, während Du es benutzt. Um die Log4J-Schwachstelle in Genesis auszunutzen, muss man einen Weg finden, eine Exploit-URL zu protokollieren – und das geht nur, indem man sie in bestimmte Eingabefelder eingibt, während man Genesis benutzt.
Kurz gesagt: Du musst dich selbst hacken!

Aus diesem Grund bin ich ziemlich entspannt, was Log4J in Genesis angeht. Ja, wir haben gerade eine Version 7.0.4 vorbereitet, die die Log4J-Versionen aktualisiert, aber nicht wegen Sicherheitsbedenken, sondern um unnötigen Ärger mit Sicherheitsscannern zu vermeiden, die davor warnen, dass Genesis angreifbar ist (für Selbsthacking).

Und wenn wir schon dabei sind

Einige von euch haben vielleicht Warnungen (Windows Defender, Smart Screen, etc.) während der Installation erhalten. Dafür gibt es wahrscheinlich drei Gründe:

  • Genesis ist keine signierte Anwendung
    Ein Code-Signing-Zertifikat, mit dem man bescheinigen könnte, dass die Anwendung von mir stammt und dass die verantwortliche Person für die Software bekannt ist, kostet mehrere hundert Dollar pro Jahr – oder mindestens ~ 70 Dollar in einer weniger sicheren Version. Ich bin nicht bereit, dieses Geld in eine „kostenlose“ Anwendung zu investieren.
  • Die Hauptanwendung von Genesis führt entfernten Code aus
    Bei der Log4J-Schwachstelle geht es um die Ausführung von entferntem Code, und Genesis führt das im Grunde jedes Mal aus, wenn ihr es starten. Sobald der Updater aktualisierten Code für ein RPG erkennt und ihn lädt, um ihn auszuführen, wisst ihr im Prinzip nicht, was ihr bekommen. Natürlich ist dies das aber beabsichtigtes Verhalten.
  • Genesis ist so konzipiert, dass es modular und erweiterbar ist
    Ich habe mir einmal vorgestellt, dass andere Entwickler Plugins zu Genesis beisteuern und daher die Möglichkeit, Code von Drittanbietern zu laden, eingebaut. Während einige Entwickler Projekte begonnen, aber nie beendet haben, bleibt die Möglichkeit der Code-Injektion bestehen.

Im Grunde genommen ist Genesis also vom Design her ziemlich offen und es gibt einfachere (beabsichtigte) Wege, es fremden Code ausführen zu lassen, als die Verwundbarkeit von Log4J zu nutzen (was erfordern würde, dass Sie sich selbst hacken). Da Genesis aber eine von der gesamten Menschheit eher sehr seltene genutzte Anwendung ist, ist es unwahrscheinlich, dass ein Angreifer versucht, Genesis zu manipulieren – zumal es sich nicht um eine 24/7 laufende Anwendung handelt.