Устранение уязвимостей
Примечание
-
данная инструкция актуальна для тех версий серверов, которые содержат контейнеры logstash и elasticsearch;
-
если версия log4j менее 2.16, требуется обновление до самой последней версии. Исключением является версия 1.х, так как для нее данная уязвимость отсутствует.
Для устранения уязвимости log4j (CVE-2021-44228), CVE-2021-45046:
-
Проверьте версию log4j с помощью команды:
find / -name ‘log4j*.jar’
или найдите через вывод CLASSPATH используемой установки java:
echo $CLASSPATH
-
В настройках Java Virtual Machine (JVM) для пакетов log4j версий 2.0-2.15 добавьте флаг для приложения:
-
Dlog4j2.formatMsgNoLookups=true.
Внимание!
Поставьте последний пакет обновлений Log4j 2.16.0, исправляющий пакет обновлений, который был сделан для CVE-2021-45046 Log4j 2.15.0. Установка последнего пакета не отличается от предыдущей установки и не требуется, если не используется дополнительная программа APM с настройкой журналирования в режиме "tracing".
В ином случае настоятельно рекомендуется обновить текущую версию Elasticsearch до 7.16.1 (или до 6.8.21) и выполнить последовательный перезапуск нод:
-
для elasticsearch — /etc/elasticsearch/jvm.options;
-
для logstash — /etc/logstash/jvm.options.
Примечание
Путь может отличаться и зависит от способа установки.
-
-
Перезапустите приложение командой:
systemctl restart elasticsearch
-
Проверьте, что настройка jvm активна:
ps axw | grep formatMsgNoLookups
Флаг должен быть виден в строке запуска приложения.
Пример обновления log4j для elasticsearch:
```
wget https://dlcdn.apache.org/logging/log4j/2.16.0/apache-log4j-2.16.0-bin.tar.gz
tar zxvf apache-log4j-2.16.0-bin.tar.gz
cd apache-log4j-2.16.0-bin/
ls /usr/share/elasticsearch/lib/log4*
cp log4j-api-2.16.0.jar /usr/share/elasticsearch/lib/
cp log4j-core-2.16.0.jar /usr/share/elasticsearch/lib/
rm -f /usr/share/elasticsearch/lib/log4j-api-2.11.1.jar
rm -f /usr/share/elasticsearch/lib/log4j-core-2.11.1.jar
```
Для Logstash версий ниже 6.8.21 и 7.16.0 выполните:
```
zip -q -d <LOGSTASH_HOME>/logstash-core/**/*/log4j-core-2.* org/apache/logging/log4j/core/lookup/JndiLookup.class
```
или
```
wget https://dlcdn.apache.org/logging/log4j/2.16.0/apache-log4j-2.16.0-bin.tar.gz
tar zxvf apache-log4j-2.16.0-bin.tar.gz
cd apache-log4j-2.16.0-bin/
ls /usr/share/logstash/lib/log4*
cp log4j-api-2.16.0.jar /usr/share/logstash/lib/
cp log4j-core-2.16.0.jar /usr/share/logstash/lib/
rm -f /usr/share/logstash/lib/log4j-api-2.11.1.jar
rm -f /usr/share/logstash/lib/log4j-core-2.11.1.jar
```