Как отсканировать и исправить уязвимость Log4j?
Опубликовано: 2022-05-10Уязвимость Log4j является одной из самых серьезных проблем безопасности в современных системах.
Ведение журнала является ключевой функцией современных приложений, и библиотека ведения журнала Log4j является лидером в этой области.
Эта библиотека используется в большинстве приложений, служб и систем. Следовательно, все те приложения, в которых используется Log4j, подвержены этой уязвимости Log4j, обнаруженной в прошлом году.
В связи с растущими проблемами кибербезопасности во всем мире организации и частные лица предпринимают шаги для защиты своих приложений, систем и данных.
И когда эта уязвимость была обнаружена, это еще больше напрягло профессионалов и бизнес.
Следовательно, обнаружение уязвимости Log4j и ее устранение необходимо, если вы хотите защитить свои данные, сеть, репутацию и доверие клиентов.
В этой статье я расскажу, что такое уязвимость Log4j, а также шаги по ее обнаружению и устранению.
Давайте начнем с понимания Log4j и того, зачем он вам нужен.
Что такое Log4j?
Log4j — это утилита ведения журналов с открытым исходным кодом, написанная на Java, которая в основном используется для хранения, форматирования и публикации записей журналов, созданных приложениями и системами, а затем для проверки на наличие ошибок. Записи могут быть разных типов, от веб-страницы и данных браузера до технических деталей системы, в которой работает Log4j.
Вместо написания кода с нуля разработчики могут использовать библиотеку Log4j, интегрируя ее код в свои приложения.
Используя Log4j, разработчики могут отслеживать все события, связанные с их приложениями, с точной регистрационной информацией. Это помогает им отслеживать приложения, вовремя выявлять проблемы и устранять их до того, как они перерастут в более серьезную проблему с точки зрения производительности и/или безопасности.

Эта библиотека на основе Java была написана Чеки Гулку и выпущена в 2001 году под лицензией Apache License 2.0. Он использует службы именования Java и интерфейса каталогов (JNDI), чтобы позволить приложениям взаимодействовать с другими приложениями, такими как LDAP, DNS, CORBA и т. д., и получать функции каталога и именования для приложений на основе Java. Log4j имеет три компонента для выполнения своих задач:
- Регистраторы для захвата записей журналов
- Макеты для форматирования записей журналов в разных стилях
- Appenders для публикации записей журнала в разных местах назначения
Log4j, по сути, является одной из самых известных библиотек ведения журналов в Интернете и используется организациями из разных отраслей и стран. Они интегрировали эту библиотеку журналов во множество приложений, включая ведущие облачные сервисы Google, Microsoft, Apple, Cloudflare, Twitter и т. д.
Его разработчик, Apache Software Foundation, разработал Log4j 2, обновление до Log4j для решения проблем, обнаруженных в более ранних выпусках. В прошлом году в Log4j была обнаружена уязвимость, которая, если ее не устранить, может позволить злоумышленникам взломать приложения и системы, украсть данные, заразить сеть и выполнить другие вредоносные действия.
Давайте поймем это больше.
Что такое Log4Shell — уязвимость Log4j?
Log4Shell — это критическая уязвимость кибербезопасности в библиотеке Log4j, которая влияет на основные функции библиотеки. Это позволяет злоумышленнику управлять устройством или приложением, подключенным к Интернету, путем удаленного выполнения кода. Добившись в этом успеха, они могут:
- Запустите любой код на устройстве или в системе
- Доступ ко всей сети и данным
- Измените или зашифруйте любой файл в уязвимом приложении или на устройстве.
Об этой уязвимости впервые сообщил 24 ноября 2021 года Чен Чжаоцзюнь, исследователь безопасности в Alibaba (китайский гигант электронной коммерции). Уязвимость затронула их серверы Minecraft, которую команда облачной безопасности Alibaba обнаружила 9 декабря.

Затем NIST опубликовал эту уязвимость в Национальной базе данных уязвимостей и назвал ее CVE-2021-44228. Затем Apache Software Foundation оценила эту уязвимость в 10 баллов по шкале CVSS. Это редко назначается и является очень серьезным, поскольку может быть широко и легко использовано, что приведет к огромному ущербу для организаций и отдельных лиц.
Apache в ответ выпустил патч для этой уязвимости, но все же некоторые части остались неустраненными, что привело к другим уязвимостям:
- CVE-2021-45046, которая способствовала атакам типа «отказ в обслуживании» (DoS) через поиск JNDI.
- CVE-2021-45105, позволяющая хакерам управлять информацией карты контекста потока и вызывать DoS-атаки путем интерпретации созданной строки.
- CVE-2021-44832 влияет на все версии Log4j 2 через удаленную инъекцию кода (RCE).
Как работает Log4Shell?
Чтобы понять ее серьезность и какой вред может нанести Log4Shell, уместно узнать, как работает эта уязвимость Log4j.
Уязвимость Log4Shell позволяет злоумышленнику удаленно внедрить любой произвольный код в сеть и получить над ней полный контроль.
Эта последовательность кибератак начинается с библиотеки ведения журналов, такой как Log4j, которая собирает и хранит информацию журнала. Если библиотеки ведения журналов нет, все данные с сервера будут архивироваться сразу после их сбора.
Но если вы хотите проанализировать эти данные или вам нужно предпринять какие-либо действия на основе определенной информации журнала, вам потребуется библиотека журналов для анализа данных журнала перед их архивированием.

Из-за уязвимости Log4j любая система или приложение, использующие Log4j, становятся уязвимыми для кибератак. Библиотека протоколирования выполняет код на основе ввода. Хакер может заставить библиотеку журналов выполнить вредоносный код, поскольку уязвимость позволит им манипулировать входными данными.
Между тем, на заднем плане происходит множество событий. Когда Log4j получает специально созданную строку, он вызывает сервер LDP и загружает этот код, размещенный в его каталоге, для выполнения кода. Таким образом, злоумышленники могут создать сервер LDAP для хранения вредоносного кода, который поможет им контролировать любой сервер, на котором выполняется этот код. Затем он отправит строку, направляющую их вредоносный код в целевое приложение или систему, и получит полный контроль над ним.
Итак, вот как можно использовать уязвимость Log4j:
- Злоумышленник находит сервер с уязвимой версией Log4j.
- Они отправят целевому серверу запрос на получение со ссылкой на свой вредоносный сервер LDAP.
- Целевой сервер вместо проверки запроса будет напрямую подключаться к этому серверу LDAP.
- Злоумышленники теперь отправят целевой сервер с ответом сервера LDAP, содержащим вредоносный код. Из-за уязвимости Log4j, которая позволяет получить код и выполнить его без проверки, хакер может использовать эту уязвимость, чтобы проникнуть на целевой сервер и использовать подключенные системы, сети и устройства.
Как уязвимость Log4j может навредить пользователям?
Уязвимость Log4j вызывает беспокойство, поскольку она используется в широком спектре программных приложений и систем.
Поскольку ведение журнала является важной функцией в большинстве программных приложений, а Log4j является ведущим решением в этой области, Log4j находит применение в различных программных системах.
Некоторые из популярных сервисов и приложений, использующих Log4j, — это Minecraft, AWS, iCloud, Microsoft, Twitter, интернет-маршрутизаторы, инструменты разработки программного обеспечения, инструменты безопасности и так далее. Следовательно, злоумышленники могут нацеливаться на большое количество приложений, служб и систем домашних пользователей, разработчиков кода, поставщиков услуг и других связанных специалистов и отдельных лиц.

Кроме того, уязвимость Log4j чрезвычайно проста для злоумышленника. Общий процесс требует меньшего количества навыков, а не уровня эксперта, для проведения атаки. Вот почему количество атак, использующих эту уязвимость, увеличивается.
Влияние уязвимости Log4j:
- DoS-атаки
- Атаки на цепочку поставок
- Добыча монет
- Внедрение вредоносных программ, таких как программы-вымогатели и троянские кони
- Внедрение произвольного кода
- Удаленное выполнение кода
И более.
В результате этих атак вы можете потерять доступ к своим приложениям, системам и устройствам, а ваши данные могут стать жертвой злоумышленников, которые могут продать ваши данные, манипулировать ими или предоставить их внешнему миру. Следовательно, вашему бизнесу может быть нанесен ущерб с точки зрения конфиденциальности данных клиентов, доверия, секретов организации и даже ваших продаж и доходов, не говоря уже о рисках соответствия.
Согласно отчету, более 40% глобальных корпоративных сетей подверглись атакам из-за этой уязвимости.
Таким образом, даже если вы не используете какие-либо уязвимые версии Log4j в своих приложениях, ваши сторонние интеграции могут использовать его, что делает ваше приложение уязвимым для атак.
Обратите внимание, что все версии Log4j до Log4j 2.17.0. подвержены влиянию; следовательно, вы должны обновить регистратор, если вы его используете. Кроме того, этой уязвимостью Log4j подвержены известные поставщики: Adobe, AWS, IBM, Cisco, VMware, Okta, Fortinet и т. д. Если вы используете какой-либо из них, постоянно следите за своими приложениями и используйте системы безопасности для устранения проблем, как только они появятся. возникает.

Как обнаружить программы, затронутые Log4j, и устранить проблемы
Уязвимость Log4Shell имеет 10 баллов по шкале CVSS. Следовательно, все проблемы в Log4j еще не исправлены. Но есть вероятность, что вы или ваш сторонний поставщик можете использовать Log4j, который вы использовали в своем приложении.
Следовательно, если вы хотите защитить свои данные, системы и сеть, убедитесь, что вы выполнили некоторые шаги по исправлению.
№1. Обновите версию Log4j

Обновление текущей версии Log4j до Log 4j 2.17.1 — наиболее эффективный метод исправления, если вы хотите защитить свое устройство и приложения от атак, вызванных уязвимостью Log4j.
Log4Shell — это тип атаки нулевого дня, которая потенциально может повлиять на вашу программную экосистему. В последних версиях Apache исправлены некоторые уязвимости, но если ваша система была скомпрометирована до обновления, вы все еще находитесь в зоне риска.
Следовательно, предполагая это, вы должны не только обновить версию, но и немедленно начать процедуры реагирования на инциденты, чтобы убедиться в отсутствии уязвимостей в ваших системах и приложениях и смягчить атаки. Вы также должны просматривать все журналы своего сервера, чтобы найти индикаторы компрометации (IOC) и постоянно контролировать свои системы и сеть.
№ 2. Используйте новейшие брандмауэры и системы безопасности
Брандмауэры, такие как брандмауэр веб-приложений (WAF) и брандмауэры следующего поколения, могут помочь защитить периметр вашей сети от злоумышленников, сканируя входящие и исходящие пакеты данных и блокируя подозрительные. Итак, используйте новейшие брандмауэры в своей сети и установите строгие исходящие правила на своих серверах, чтобы предотвратить атаки, связанные с уязвимостью Log4j.
Хотя злоумышленники могут обойти брандмауэры, вы все равно получите некоторую степень безопасности с помощью брандмауэров, которые могут блокировать запросы злоумышленника.
Кроме того, обновите все свои системы безопасности, такие как системы обнаружения вторжений (IDS), системы предотвращения вторжений (IPS) и т. д., добавив последние сигнатуры и правила. Эти системы помогут блокировать или фильтровать трафик RMI и LDAP от подключения к вредоносному серверу LDAP.
№3. Реализовать многофакторную идентификацию

Настройка многофакторной аутентификации (MFA) в ваших приложениях и системе обеспечит лучшую защиту от злоумышленников. Это обеспечит второй уровень безопасности, даже если злоумышленнику удастся взломать первый уровень. Вы можете сделать это с помощью биометрических данных, таких как отпечатки пальцев, сканирование радужной оболочки глаза и т. д., задав секретный вопрос или включив защитный PIN-код.
Использование MFA увеличит сложность атаки и время для проведения полномасштабной атаки. В то же время он также может немедленно сообщить вам об инциденте, чтобы вы могли предпринять необходимые шаги по исправлению, когда у вас еще есть время.
Кроме того, вы также должны применять строгие политики VPN, чтобы уменьшить утечку данных. Это позволит пользователям безопасно получать доступ к вашим системам из любого места, не опасаясь злоумышленников.
№ 4. Изменить свойства системы
Если вы не можете выполнить обновление до последней версии библиотеки Log4j, вы должны немедленно изменить свойства системы Java, если вы используете версию от Log4j 2.10 до Log4j 2.14.1.
Вы должны настроить его таким образом, чтобы предотвратить поиск, который злоумышленники используют для обнаружения уязвимостей, а затем найти способы их использования.
№ 5. Удалить JNDI
Причина этой критической уязвимости безопасности кроется в его конструкции. Плагин JNDI Lookup имеет конструктивный недостаток, благодаря которому злоумышленники могут провести атаку.
JNDI используется для выполнения кода на основе входных данных в его журнале, которым любой может легко манипулировать, поскольку регистратор принимает любой запрос без проверки.
Исследователи безопасности обнаружили, что этот плагин всегда разрешал неанализированные данные с момента его выпуска в 2013 году и отправлял их в библиотеку Log4j.
Таким образом, уязвимость Log4j легко эксплуатировать с помощью простой инъекции строки. Как только злоумышленник введет его, регистратор примет операцию, запрошенную в строке, и немедленно выполнит ее без проверки.
Итак, если вы хотите защитить свои системы и приложения, вы должны отключить класс — JndiLookup. Это предотвратит действия регистратора на основе данных журнала.
Фактически поиск JNDI уже отключен в Log4j 2.16.0 по умолчанию в попытке защитить ваши приложения и системы.
Итак, если вы используете версию Log4j ниже 2.16.0, убедитесь, что вы отключили поиск JNDI.
№ 6. Поговорите со своими поставщиками
Если у вас все правильно, ваши брандмауэры и системы безопасности обновлены, версия Log4j обновлена, JNDI Lookup отключен и т. д., не расслабляйтесь.
Даже если вы не используете уязвимую версию Log4j в своих приложениях, ее могут использовать сторонние поставщики. Таким образом, вы никогда не узнаете, как ваше приложение или система были взломаны, потому что реальная проблема была со сторонней интеграцией.
Поэтому поговорите со своими поставщиками и убедитесь, что они также обновили Log4j до последней версии и внедрили другие меры безопасности, описанные выше.
№ 7. Используйте сканер уязвимостей Log4j
На рынке доступно множество инструментов сканирования уязвимостей Log4j, упрощающих обнаружение уязвимостей Log4j в ваших системах и приложениях.
Итак, когда вы ищете эти инструменты, проверьте их точность, поскольку многие из них дают ложные срабатывания. Кроме того, найдите инструмент, который может удовлетворить ваши потребности, поскольку он может сосредоточиться на выявлении уязвимости Log4j, сообщении о воздействии и устранении уязвимости.
Итак, если вы сосредоточены на обнаружении, найдите сканер уязвимостей Log4j, который может обнаружить проблему, или используйте тот, который может обнаружить и устранить проблему.

Некоторые из лучших инструментов сканирования Log4j:
- Защитник Microsoft 365 : Microsoft предлагает ряд решений и инструментов для обеспечения безопасности, которые помогут вам обнаруживать и предотвращать эксплойты Log4j в вашей сети. Вы сможете обнаруживать удаленное выполнение кода и попытки эксплуатации, защищая вас от уязвимостей Log4j на устройствах Windows и Linux.
- Amazon Inspector и AWS: Amazon создала инструмент сканирования для поиска уязвимости Log4j в инстансах Amazon EC2 и Amazon ECR.
- Инструмент сканирования архива CloudStrike (CAST): CloudStrike также создал отличный инструмент сканирования для обнаружения уязвимости Log4j, чтобы помочь вам вовремя устранить проблемы, прежде чем злоумышленники смогут их использовать.
- Обнаружение Google Cloud Logging: решение Google для обнаружения облачных журналов позволяет обнаруживать эксплойты Log4j с помощью Logs Explorer. Вы можете создать запрос журнала в этом инструменте и сканировать потенциальные строки эксплойта.
- Google также создал log4jscanner, сканер файловой системы с открытым исходным кодом для обнаружения уязвимости Log4j.
- BurpSuite Log4j Scanner: это плагин безопасности для профессионалов и предприятий, который помогает им обнаруживать уязвимости Log4j.
- Huntress Log4Shell Vulnerability Tester: этот инструмент случайным образом генерирует уникальный идентификатор, который вы можете использовать при проверке полей ввода. При обнаружении уязвимости в приложении или поле ввода его безопасный сервер LDAP мгновенно прервет вредоносное соединение и защитит вас.
- WhiteSource Log4j Detect: WhiteSource создал бесплатный инструмент командной строки WhiteSource Log4j Detect, размещенный на GitHub, чтобы помочь вам обнаружить и исправить уязвимости Log4j — CVE-2021-445046 и CVE-2021-44228.
- Инструменты сканирования JFrog с открытым исходным кодом для Log4j: JFrog создала различные решения и инструменты с открытым исходным кодом для поиска уязвимостей Log4j в ваших двоичных файлах и исходном коде.
Вывод
Уязвимость Log4j является критической проблемой безопасности. Поскольку эта библиотека ведения журналов широко используется в различных приложениях и системах, уязвимость Log4j получила широкое распространение, позволяя злоумышленникам использовать широкий спектр систем и приложений.
Итак, если вы хотите защитить свои системы и приложения от этой уязвимости, убедитесь, что вы обновили библиотеку Log4j до последней версии и внедрили передовые методы обеспечения безопасности, описанные выше.