У популярній бібліотеці Java Apache Log4j виявили вразливість яка дозволяє зловмисникам отримати повний контроль над серверами за допомогою одного рядку коду, який можна надіслати практично будь-куди.

Як повідомляє WIRED, під загрозою опинилися сотні мільйонів серверів — від техногігантів (як Google, Microsoft чи Apple) до серверів комп’ютерних ігор, на зразок Minecraft. Загрозі вже надано найвищий рівень небезпеки, а деякі країни навіть змушені призупиняти роботу своїх онлайн-сервісів.

Що таке вразливість бібліотеки Log4j?

  • Log4j2 — це фреймворк ведення журналів (логування) на основі Java з відкритим вихідним кодом, який розробники використовують для запису активності в програмі. (Зазвичай вбудовується у веб-сервери Apache).
  • 9 грудня 2021 року в Log4j 2 було виявлено критичну вразливість що дозволяє виконати довільний код. Вразливості було надано код CVE-2021-44228.
  • Суть вразливості така: якщо будь-яким чином змусити Log4J записати в журнал подій програми рядок з певною командою, це дозволить зловмиснику віддалено запускати на сервері будь-який код, у тому числі шкідливий.
  • І хоча Java сьогодні не дуже популярна серед користувачів, вона все ще широко використовується в корпоративних системах і веб-додатках.
  • Голова американського агентства з кібербезпеки (CISA) Джен Істерлі навіть заявила, що вразливість у log4j є однією з найсерйозніших, якщо не найсерйозніша, яку вона бачила за час своєї роботи. А це майже 20 років.

Як нею користуються зловмисники?

Основна проблема нової вразливості — легкість її використання. Розробники використовують фреймворки журналів, щоб відстежувати те, що відбувається в певній програмі. Щоб скористатися Log4Shell, зловмиснику потрібно лише змусити систему зареєструвати спеціальний рядок коду. Звідти вони можуть завантажувати довільний код на цільовий сервер і встановлювати шкідливе програмне забезпечення або запускати інші атаки. 

Для доставки початкового коду хакери можуть використати будь-який спосіб, який відобразиться в журналі, наприклад надіславши рядок в електронному листі або встановивши його як ім’я користувача облікового запису.

Мережею вже ширяться записи, де зловмисники отримують доступ до серверів Minecraft, просто написавши команду у внутрішньоігровий чат, або змінюють ім’я свого iPhone на програмний код і його назва починає фігурувати у всьому мережевому обладнанні, яке розпізнає пристрій.

Тобто використати цей експлойт може навіть користувач без специфічних знань та навичок, що ставить під загрозу навіть невеликі нішеві сервіси.

Хто під загрозою?

Згідно з нещодавнім звітом Microsoft, зловмисники вже використовували цю вразливість для встановлення криптомайнерів на чужих системах, крадіжки системних облікових даних, проникнення в зламані мережі та крадіжки даних. 

Як повідомляє WIRED, найбільші технічні компанії світу, включно з Amazon Web ServicesMicrosoftCisco, Steam, Apple iCloudGoogle Cloud і IBM вже заявили, що принаймні деякі з їхніх служб були вразливими, і намагаються виправляти проблеми та радять клієнтам, як краще діяти.

Але меншим організаціям або невеликим розробникам, в яких немає окремого відділу кібербезпеки, чи просто не вистачає ресурсів, будуть повільніше протистояти загрозі. А точний масштаб впливу нової вразливості все ще залишається невідомим, але це точно мільйони серверів.

Що робити?

Дослідники з’ясували, що уразливі всі версії Java, що вийшли до 11 грудня та версії Log4j від 2.0 до 2.14.1. Як повідомляє LunaSec, найпростіший спосіб визначити, чи є віддалена кінцева точка вразливою — це додаток CanaryTokens.org, який навіть автоматично генерує рядок експлойту та надсилає сповіщення електронною поштою, коли запитується DNS.

Найпростіший метод захисту від Log4Shell — це встановлення найсвіжішої версії бібліотеки Log4j, де описана вразливість вже була знешкоджена. Apache вже навіть випустила ще один реліз бібліотеки, він доступний за посиланням.