Перейти к содержанию

Устранение уязвимостей

Примечание

  • данная инструкция актуальна для тех версий серверов, которые содержат контейнеры logstash и elasticsearch;

  • если версия log4j менее 2.16, требуется обновление до самой последней версии. Исключением является версия 1.х, так как для нее данная уязвимость отсутствует.

Для устранения уязвимости log4j (CVE-2021-44228), CVE-2021-45046:

  1. Проверьте версию log4j с помощью команды:

    find / -name ‘log4j*.jar’
    

    или найдите через вывод CLASSPATH используемой установки java:

    echo $CLASSPATH
    
  2. В настройках 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.

    Примечание

    Путь может отличаться и зависит от способа установки.

  3. Перезапустите приложение командой:

    systemctl restart elasticsearch
    
  4. Проверьте, что настройка 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
```