Экстренный патч для печально известной уязвимости в библиотеке Java Log4j не является надежным. Apache Software Foundation выпускает новую версию, чтобы раз и навсегда устранить уязвимость.
Уязвимость в очень популярной библиотеке для Java сотрясает глобальный ИТ-ландшафт. Подсчитано, что библиотека существует в большинстве корпоративных сред.
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. В новой версии полностью удалена уязвимая настройка, что делает невозможным создание условий для злоупотреблений.