Log4j Sicherheitslücke - CVE-2021-44228 | CVE-2021-45046
Aktueller Stand: 16.12.2021 - 14:15 Uhr (MEZ)
Sachverhalt
Log4j
ist eine beliebte Protokollierungsbibliothek für Java-Anwendungen. Sie dient der performanten Aggregation von Protokolldaten einer Anwendung.
Der Blog eines Dienstleisters für IT-Sicherheit berichtet über die Schwachstelle CVE-2021-44228 in Log4j
in den Versionen 2.0
bis 2.14.1
, die es Angreifern gegebenenfalls ermöglicht, auf dem Zielsystem eigenen Programmcode auszuführen und so den Server zu kompromittieren. Diese Gefahr besteht dann, wenn Log4j
verwendet wird, um eine vom Angreifer kontrollierte Zeichenkette wie beispielsweise den HTTP User Agent zu protokollieren.
Ein Proof of Concept (PoC) der Schwachstelle wurde auf Github veröffentlicht und auf Twitter geteilt. Neben dem PoC existieren auch Beispiele für Skripte, die Systeme stichprobenartig auf Verwundbarkeit hin untersuchen. Skripte solcher Art können zwar Administratoren keine Sicherheit über die Verwundbarkeit geben, aber erlauben Angreifern kurzfristig rudimentäre Scans nach verwundbaren Systemen.
Diese kritische Schwachstelle hat demnach möglicherweise Auswirkungen auf alle aus dem Internet erreichbaren Java-Anwendungen, die mithilfe von Log4j
Teile der Nutzeranfragen protokollieren.
Update 15.12.2021:
Die Schwachstelle CVE-2021-4428 wurde in der Apache Log4j
Version 2.15.0
behoben, verursachte aber gleichzeitig eine weitere Sicherheitslücke, beschrieben in CVE-2021-45046. Die in CVE-2021-45046 beschriebene Sicherheitslücke wurde in der Log4j
Version 2.16.0
behoben. Die zusätzliche aufgetretene Schwachstelle nimmt keinen Einfluss auf die im Folgenden beschriebenen notwendigen Schritte.
Betroffene Managed Elastichsearch Server
Elasticsearch ist durch diese Schwachstelle nicht anfällig für Remotecode-Execution, da Elasticsearch den Java Security Manager verwendet. Elasticsearch in Kombination mit JDK 8
oder niedriger ist lediglich anfällig für ein DNS-Informationsleck, welches durch eine einfache Änderung der JVM-Eigenschaften behoben werden kann.
Das Informationsleck erlaubt keinen Zugriff auf Daten innerhalb des Elasticsearch-Clusters. Elasticsearch hat hierzu bereits die Versionen 7.16.1
und 6.8.21
veröffentlicht, die die notwendige JVM-Eigenschaft standardmäßig enthält und bestimmte Komponenten von Log4j
aus Sicherheitsgründen entfernt.
Erforderliche Maßnahmen
Managed Elasticsearch Server
Die creoline Managed Elasticsearch Server sind weder von den Log4j Sicherheitslücken CVE-2021-44228 und CVE-2021-45046 noch von der DNS-Sicherheitslücke betroffen.
Es sind keine Maßnahmen erforderlich, sofern Sie einen Managed Elasticsearch Server einsetzen.
Alle Managed Elasticsearch Server setzen den Java Security Manager sowie mindestens JDK Version 16 ein und sind daher nicht anfällig für die Sicherheitslücke oder den DNS-Leak.
Eigenständige Elasticsearch Installationen
Sofern Sie Elasticsearch eigenständig auf Ihrem Server installiert haben, muss sichergestellt werden, dass die verwendete JDK
Version mindestens der Versionsnummer 9
entspricht.
Installierte Versionen überprüfen
Die installierte JDK Version kann wie folgt überprüft werden:
/usr/share/elasticsearch/jdk/bin/java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment Temurin-17.0.1+12 (build 17.0.1+12)
OpenJDK 64-Bit Server VM Temurin-17.0.1+12 (build 17.0.1+12, mixed mode, sharing)
Die installierte Elasticsearch Version kann wie folgt überprüft werden:
apt list elasticsearch
elasticsearch/stable,now 7.16.1 amd64 [installiert]
Die aktive Elasticsearch Version kann wie folgt überprüft werden:
apt update && apt install curl
curl -XGET 'http://localhost:9200'
{
"name" : "s*****.creolineserver.com",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "*********",
"version" : {
"number" : "7.16.1",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "5b38441b16b1ebb16a27c107a4c3865776e20c53",
"build_date" : "2021-12-11T00:29:38.865893768Z",
"build_snapshot" : false,
"lucene_version" : "8.10.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
Die installierte Kibana Version kann wie folgt überprüft werden:
apt list kibana
kibana/stable,now 7.16.1 amd64 [installiert]
Java-Prozesse ermitteln
Sofern Sie nicht sicher sind, ob auf Ihrem Server ein Java-basierter Prozess aktiviert ist, können Sie über den Shell-Befehl ps aux | grep java
prüfen, ob Java-Prozesse im Hintergrund aktiviert sind.
ps aux | grep java
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 12157 0.0 0.0 6088 892 pts/0 R+ 12:21 0:00 grep java
elastic+ 28739 3.7 63.8 6899160 2539176 ? Ssl 10:11 4:53 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto [..]
In diesem Beispiel wird ein Elasticsearch-Prozess ausgeführt. (/usr/share/elasticsearch/jdk/bin/java
)
Java-Netzwerkdienste ermitteln
Sofern Sie nicht sicher sind, ob auf Ihrem Server ein Java-basierter Netzwerkdienst aktiviert ist, können Sie mithilfe des Shell-Befehls netstat -tulpn |grep java
ermitteln, ob Dienste über Java-basierte Anwendungen bereitgestellt werden.
netstat -tulpn |grep java
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::9200 :::* LISTEN 28739/java
tcp6 0 0 :::9300 :::* LISTEN 28739/java
In diesem Beispiel sind die Elasticsearch Ports 9200
und 9300
über Java geöffnet.
Weitere Rückfragen
Sofern Sie nicht sicher sind, ob Ihr creoline Server Java-basierete Dienste bereitstellt, die von der Sicherheitslücke betroffen sind, melden Sie sich umgehend bei unserem Support, damit wir abklären können, welche Maßnahmen speziell für Ihren Server getroffen werden müssen.
Quellen
Bundesamt für Sicherheit in der Informationstechnik | https://www.bsi.bund.de/SharedDocs/Cybersicherheitswarnungen/DE/2021/2021-549032-10F2.pdf |
Lunasec | https://www.lunasec.io/docs/blog/log4j-zero-day/ |
US Vulnerability Database | https://nvd.nist.gov/vuln/detail/CVE-2021-44228 | https://nvd.nist.gov/vuln/detail/CVE-2021-45046 |
Elasticsearch | https://discuss.elastic.co/t/apache-log4j2-remote-code-execution-rce-vulnerability-cve-2021-44228-esa-2021-31/291476 |