Ist mein CrashPlan aufgrund von log4j-Sicherheitslücken unsicher?
Version 2010: Nein
Die CrashPlan-Client-Software Version 2010 enthält kein log4j.
Version 3.x: Wahrscheinlich nicht
CrashPlan Version 3.x Client-Software enthält log4j Version 1.2.16. Log4j v2 wird nicht von CrashPlan Pro (v2010) oder CrashPlan PROe (v3) verwendet. Log4j Version 1.x enthält keine log4shell-Schwachstelle, aber eine Reihe anderer Schwachstellen, die Konfigurationsänderungen erfordern, um ausgenutzt zu werden.
Die gefährdeten Klassen werden vom CrashPlan-Client nicht verwendet und können – falls gewünscht – dauerhaft entfernt werden. Wie das geht, wird am Ende dieser Seite erklärt.
Schwachstellen in log4j
Dies sind die in Apache log4j 2.x gefundenen Schwachstellen und die in der log4j 1.2 Software gefundenen Schwachstellen:
- CVE-2022-23307: Chainsaw-Komponente von Log4j 1.2.x enthält einen kritischen Fehler. Dies ist das gleiche Problem, das in CVE-2020-9493 behoben wurde.
Der CrashPlan-Client v3 verwendet die Klasse "ChainSaw" nicht. Sie können die Chainsaw-Klassen aus dem Klassenpfad entfernen:
$ sudo zip -d log4j-1.2.16.jar "org/apache/log4j/chainsaw/*.class" - CVE-2022-23305: JDBCAppender in Log4j 1.2.x ist dafür ausgelegt, eine SQL-Anweisung als Konfigurationsparameter zu akzeptieren, wobei die einzufügenden Werte PatternLayout-Konverter sind. Der Nachrichtenkonverter, %m, wird wahrscheinlich immer enthalten sein. Dies ermöglicht es Angreifern, die SQL-Anweisung zu manipulieren, indem sie manipulierte Zeichenfolgen in Eingabefelder oder Anwendungsheader einfügen, die protokolliert werden, so dass unbeabsichtigte SQL-Abfragen ausgeführt werden können. Beachten Sie, dass dieses Problem nur in Log4j 1.x auftritt, wenn es speziell für die Verwendung des JDBCAppenders konfiguriert ist, was nicht der Standard ist.
Sie können die Klasse JDBCAppender – die vom CrashPlan v3-Client nicht verwendet wird – dauerhaft aus dem Klassenpfad entfernen:
$ sudo zip -d log4j-1.2.16.jar org/apache/log4j/jdbc/JDBCAppender.class
- CVE-2022-23302: JMSSink in allen Versionen von Log4j 1.x ist anfällig für die Deserialisierung von nicht vertrauenswürdigen Daten, wenn der Angreifer Schreibzugriff auf die Log4j-Konfiguration hat oder wenn die Konfiguration auf einen LDAP-Dienst verweist, auf den der Angreifer Zugriff hat. Der Angreifer kann eine TopicConnectionFactoryBindingName-Konfiguration bereitstellen, die JMSSink dazu veranlasst, JNDI-Anfragen auszuführen, die zu einer Remote-Ausführung von Code führen, ähnlich wie bei CVE-2021-4104. Beachten Sie, dass dieses Problem nur Log4j 1.x betrifft, wenn es speziell für die Verwendung von JMSSink konfiguriert ist, was nicht der Standard ist.
Sie können die Klasse JMSSink – die vom CrashPlan v3-Client nicht verwendet wird – dauerhaft aus dem Klassenpfad entfernen:
$ sudo zip -d log4j-1.2.16.jar org/apache/log4j/net/JMSSink.class - CVE-2021-45105: Log4j 1.x ist von dieser Sicherheitslücke nicht betroffen.
- CVE-2021-45046: Log4j 1.x ist von dieser Sicherheitslücke nicht betroffeny.
- CVE-2021-44832: Log4j 1.x ist von dieser Sicherheitslücke nicht betroffen.
- CVE-2021-44228: Log4shell: Log4j 1.x hat keine Lookups, so dass das Risiko geringer ist. Anwendungen, die Log4j 1.2 verwenden, sind nur dann für diesen Angriff anfällig, wenn sie speziell für die Verwendung von JMSAppender konfiguriert sind, was nicht der Standard ist. Für diese Sicherheitslücke wurde ein separates CVE (CVE-2021-4104) eingereicht.
- CVE-2021-4104: JMSAppender in Log4j 1.2 ist anfällig für die Deserialisierung von nicht vertrauenswürdigen Daten, wenn der Angreifer Schreibzugriff auf die Log4j-Konfiguration hat. Der Angreifer kann TopicBindingName- und TopicConnectionFactoryBindingName-Konfigurationen bereitstellen, die es JMSAppender ermöglichen, JNDI-Anfragen auszuführen, die in ähnlicher Weise wie CVE-2021-44228 zu Remotecodeausführung führen. Beachten Sie, dass dieses Problem nur Log4j 1.2 betrifft, wenn es speziell für die Verwendung von JMSAppender konfiguriert ist, was nicht der Standard ist.
Sie können die Klasse JMSAppender – die vom CrashPlan v3-Client nicht verwendet wird – dauerhaft aus dem Klassenpfad entfernen:
$ sudo zip -d log4j-1.2.16.jar org/apache/log4j/net/JMSAppender.class
- CVE-2020-9488: Log4j 1.x ist von dieser Sicherheitslücke nicht betroffen.
- CVE-2019-17571: Dies betrifft Log4j Versionen bis 1.2 bis 1.2.17. Log4j 1.2 enthält eine SocketServer-Klasse, die anfällig für eine nicht vertrauenswürdige Daten-Deserialisierung ist. Dies kann missbraucht werden, um beliebigen Code aus der Ferne auszuführen, wenn es mit einem Deserialisierungs-Gadget kombiniert wird, das nicht vertrauenswürdigen Netzwerkverkehr für Logdaten abhört.
Sie können die Klasse SocketServer – die vom CrashPlan v3-Client nicht verwendet wird – dauerhaft aus dem Klassenpfad löschen:
$ sudo zip -d log4j-1.2.16.jar org/apache/log4j/net/SocketServer.class - CVE-2020-9488: Dies ist ein mittelschweres Problem mit dem SMTPAppender. Falsche Validierung des Zertifikats mit Host-Fehlanpassung im Apache Log4j SMTP-Appender. Dadurch kann eine SMTPS-Verbindung durch einen Man-in-the-Middle-Angriff abgefangen werden, der die über diesen Appender gesendeten Protokollnachrichten ausspähen kann.
Sie können die Klasse SMTPAppender – die vom CrashPlan v3-Client nicht verwendet wird – dauerhaft aus dem Klassenpfad entfernen:
$ sudo zip -d log4j-1.2.16.jar "org/apache/log4j/net/SMTPAppender*.class"
- CVE-2017-5645: Log4j 1.x ist von dieser Sicherheitslücke nicht betroffen.
Beseitigung potenzieller Schwachstellen im CrashPlan 3.x-Client
Windows
- Installieren Sie 7-zip.
- Öffnen Sie Cmd als Verwalter.
- cd "C:\Program Files\CrashPlan\lib"
- for /R %f in (*log4j-1.2.16.jar) do "C:\Program Files\7-Zip\7z" d %f "org/apache/log4j/{chainsaw/*,jdbc/JDBCAppender,net/JMSSink,net/JMSAppender,net/SocketServer,net/SMTPAppender*}.class"
Mac OS X
- Öffnen Sie die Terminal-App.
- cd /Applications/CrashPlan.app/Contents/Resources/Java/lib/
- zip -d log4j-1.2.16.jar "org/apache/log4j/{chainsaw/*,jdbc/JDBCAppender,net/JMSSink,net/JMSAppender,net/SocketServer,net/SMTPAppender*}.class"
Linux
- Installieren Sie zip.
- zip -d {/usr/local/crashplan/lib/log4j-1.2.16.jar "org/apache/log4j/{chainsaw/*,jdbc/JDBCAppender,net/JMSSink,net/JMSAppender,net/SocketServer,net/SMTPAppender*}.class"
Bewahren Sie eine Sicherungskopie der Datei log4j-1.2.16.jar außerhalb des Verzeichnisses /lib/ auf, da sonst die gelöschten Klassen weiterhin aus der Sicherheitskopie geladen werden.