Log4Shell – найбільша вразливість року

Автор: Андрій Михалюк, CEO CoreWin

Минула п’ятниця закінчилась начебто непомітно, але лише на перший погляд. В когось “підглючував” Linkedin, у когось “вилітав” поштовий клієнт, постійно втрачаючи з’єднання, але загалом більшість з нас списали це на звичайні незручності та спокійно відправились на вихідні. Log4Shell – найбільша вразливість року. В кінці статті я поділюсь власними напрацюваннями для перевірки сервісу на вразливість.

Суботу ж частина з нас, шановні колеги, зустріла з важким серцем, оскільки світом почали нестись новини про нову вразливість – log4shell. Дехто вже в суботу аварійно виїхав в офіс, хтось занурився у проблему вже у п’ятницю, але для всіх у світі ІТ стало зрозуміло — під ялиночку зловмисники нам всім поклали дуже неприємний подаруночок: безсонні ночі та необхідність в ударних дозах заспокійливих.

Щоб зрозуміти чому новина про вразливість у бібліотеці log4j наробила стільки шуму варто трошки зануритись у суть цієї бібліотеки, чи навіть фреймворку.

Перший фактор:
Бібліотека розповсюджується за ліцензією Apache, тобто вона безплатна.

Другий фактор:
Це рішення для Java розробок.

Третій фактор:
Ця бібліотека потрібна для журналювання, тобто запису системних і не тільки дій програми.

Розберемо по пунктах чому кожен з цих факторів привів до БАБАХу!

1. Ліцензія Apache

Ця ліцензія дозволяє використовувати бібліотеку вільно, для будь-яких цілей, розповсюджуючи необмежену кількість копій. На додаток — ліцензія не ставить умовою незмінність ліцензії розповсюдження програмного забезпечення і не наполягає навіть на збереженні його безоплатного та відкритого статусу. Єдиною умовою, що накладається Apache ліцензією, є інформування одержувача про факт використання початкового коду, що ліцензований під ліцензією Apache. Перекладаючи простою мовою — можна взяти цю бібліотеку, використати у своєму рішенні та спокійно застосувати пропрієтарну ліцензію на результат та отримувати з нього чесно зароблені кошти.

2. Це інструмент Java розробки

Java – це негласний лідер на ринку великих підприємств. Ось декілька причин:

  • це стара мова і дуже багато корпоративних систем написані на ній, оскільки так склалось (так звані legacy системи), а значить написані на Java рішення мають перевагу перед іншими
  • Java має велику кількість відкритих і не тільки готових до використання бібліотек (так-так, саме таких, як log4j), а значить не доведеться вигадувати велосипед і можна зосередитись на інноваціях
  • зрештою Java дуже добре себе зарекомендувала на великих масштабах, що і є, по суті, визначенням корпоративного клієнта

3. Журналювання

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

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

Приміром за одним із досліджень 10 000 серверів були визнані вразливими. Більшість з них в США, які історично використовують багато legacy технологій.

log4shell_stat

Джерело

Трохи мемів

log4shell_mem

На додаток, ця бібліотека виявилась вживаною в дуже популярних компонентах, таких як Apache Struts чи ElasticSearch, тому поверхня атаки була і досі залишається неймовірною. Найкраще цю ситуацію ілюструє один вдалий мем з минулого.

Тепер зануримось трохи у технологію

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

1. Ця вразливість є дуже простою для використання

По суті для того, щоб використати не потрібно нічого окрім ноутбука з будь-якою ОС, доступ в Інтернет та базові вміння використовувати консоль (чи то cmd, чи то shell – немає різниці). До того, на момент суботи навіть знання були не потрібні. На YouTube вже були відео з використання вразливості (на момент публікації статті — вже заблоковані) на GitHub готові jar пакети для використання в одну команду (на момент публікації статті — вже видалені).

2. Ця вразливість надає ДУЖЕ глибокий доступ до сервера

Об’єктивно при вмілому використанні можна надіслати будь-яку команду на рівень операційної системи та вона буде виконана.

3. Ця вразливість є дуже гнучкою

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

Нам відомо що ця вразливість була відома хакерам принаймні з 1 грудня. Але у своєму дослідженні я зустрічав готові до атаки пакети, з поміткою що вони завантажені ще 2 роки тому. Не берусь судити наскільки вони “робочі”, але факт залишається фактом.

Отже, в п’ятницю відбулась успішна атака на сервер Minecraft і світова спільнота як професійних хакерів, так і любителів кинулись перевіряти свої сили в новому інструменті. В неділю ми вже отримали повідомлення про те, що організовані злочинці додали цю вразливість як у свої сканери, так і в віруси. Тобто з розділу таємних знань для обраних, ці атаки додались в сірий шум постійних масових атак. БАБАХ! Бо значна частина корпорацій виявилась просто не готовою до цієї атаки, а тому ми і досі отримуємо інформацію про нові успішні атаки.

І так, що робити?

  1. Потрібно оперативно (якщо не зроблено досі) провести детальний аудит не тільки сервісів компанії, але і зробити аналіз всіх їх компонентів. Скласти список в яких з них є log4j.
  2. Провести оперативну ручну перевірку найбільш критичних сервісів і black-box сканування всіх вебсервісів, що мають доступ в інтернет.
  3. Оновити або іншим чином закрити цю вразливість (благо наразі всі поширені рішення чи компоненти вже мають hotfix і готують bugfix).
  4. Переглянути та почистити всі сервіси де була бібліотека. Можливо ви вже атаковані та не знаєте цього.
  5. Розробити чи скористатись платформою, яка аналізуватиме бібліотеки та компоненти корпоративних рішень на вразливості хоча б наявні, а в ідеалі мати команду яка б аналізувала вразливості хоча б Github. Приміром у цьому випадку ви знали б про вразливість ще з грудня і могли вжити заходів до масових атак.

Додаткові матеріали

В допомогу колегам, ділюсь також відкритим безкоштовним інструментом перевірки на вразливість та інструкцією для відтворення вразливості в тестовому середовищі. Перевірені власноруч як робочі.

Підписатися на новини