Екстренний патч для сумнозвісної вразливості в бібліотеці Java Log4j не є надійним. Apache Software Foundation випускає нову версію, щоб раз і назавжди виправити вразливість.
Уразливість у надзвичайно популярній бібліотеці для Java стрясає глобальний IT-ландшафт. Підраховано, що бібліотека існує в більшості корпоративних середовищ.
Log4j в основному використовується для реєстрації. Події в додатках можна реєструвати за допомогою приміток. Подумайте про роздруківку даних для входу після спроби входу. Або, у випадку веб-програми на Java, ім’я браузера, до якого користувач намагається під’єднатися.
Останні приклади поширені. В обох випадках зовнішній користувач впливає на журнал, який виводить Log4j. Цим впливом можна зловживати. Журнали будь-якої версії Log4j у період з 13 вересня 2013 року по 5 грудня 2021 року можуть давати вказівки додаткам Java запускати код з віддаленого сервера на локальному пристрої.
З 2013 року Log4j обробляє API: JNDI, або Java Naming and Directory Interface. Додавання JNDI дозволяє програмі Java запускати код з віддаленого сервера на локальному пристрої. Програмісти інструктують, додаючи один рядок інформації про віддалений сервер у програмі.
Проблема в тому, що не тільки програмісти можуть додавати правило в програми. Припустимо, Log4j реєструє імена користувачів спроб входу. Коли хтось вводить вищезгаданий рядок у поле імені користувача, Log4j запускає рядок, а програма Java інтерпретує команду для запуску коду на вказаному сервері. Те ж саме стосується випадків, коли Log4j реєструє запит HTTPS. Якщо ви змінюєте назву браузера на рядок, Log4j запускає рядок, опосередковано вказуючи йому виконувати бажаний код.
Екстренний пластир також може бути небезпечним
9 грудня вразливість з’явилася у великих масштабах. Apache Software Foundation, розробник Log4j, випустив екстренне виправлення (2.15) для усунення вразливості. З тих пір першочерговим пріоритетом для постачальників програмного забезпечення стало обробка версії 2.15 і надання виправлення для організацій.
Однак організація безпеки LunaSec стверджує, що пластир не повністю водонепроникний. Залишається можливим налаштувати параметри і виконувати зареєстровані команди JNDI.
Зверніть увагу: відповідне налаштування потрібно налаштувати вручну, щоб незмінені варіанти 2.15 були дійсно безпечними. Тим не менш, Luna Sec рекомендує постачальникам та організаціям оновити до Log4j 2.16. 2.16 був опублікований Apache Software Foundation у відповідь на LunaSec. У новій версії повністю видалено вразливий параметр, що унеможливлює створення умов для зловживань.