Як сканувати та виправити вразливість Log4j?

Небезпека, яку становить вразливість Log4j, є однією з найсерйозніших проблем у сфері кібербезпеки сучасних технологій.

Система ведення журналів є життєво важливою складовою сучасних програмних продуктів, а бібліотека Log4j є провідним інструментом у цій сфері.

Ця бібліотека застосовується в багатьох програмах, сервісах та системах. Відповідно, майже всі програмні рішення, де інтегровано Log4j, піддаються впливу цієї вразливості, яку було ідентифіковано минулого року.

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

Виявлення цієї вразливості стало додатковим випробуванням для фахівців з кібербезпеки та компаній.

Саме тому виявлення та нейтралізація вразливості Log4j є вкрай важливими для гарантування захисту ваших даних, мережі, репутації та довіри клієнтів.

У цій статті ми розглянемо, що саме являє собою вразливість Log4j, та запропонуємо кроки для її ідентифікації та усунення.

Розпочнемо з детального аналізу Log4j та її значення для вас.

Що таке Log4j?

Log4j – це програмне забезпечення з відкритим кодом, розроблене на мові Java, що використовується для ведення журналів. Воно призначене для зберігання, форматування та публікації записів журналу, які генеруються програмами та системами, а також для їх подальшого аналізу на наявність помилок. Записи можуть бути різноманітні: від даних веб-сторінок і браузерів до технічних характеристик системи, де працює Log4j.

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

Використовуючи Log4j, програмісти можуть відстежувати всі події, пов’язані з їхніми додатками, з точною інформацією журналу. Це допомагає їм контролювати програмне забезпечення, оперативно виявляти проблеми та виправляти їх, перш ніж вони призведуть до серйозних наслідків для продуктивності та/або безпеки.

Ця бібліотека, написана на Java, була розроблена Ceki Gülcü і випущена у 2001 році під ліцензією Apache 2.0. Вона використовує Java Naming and Directory Interface (JNDI) для забезпечення взаємодії програм з іншими сервісами, такими як LDAP, DNS, CORBA та іншими, а також для отримання доступу до функцій каталогізації та іменування для Java-додатків. Log4j має три основні компоненти для виконання своїх функцій:

  • Реєстратори (Loggers) для запису подій у журнали.
  • Макетувальники (Layouts) для форматування записів у журналах у різноманітних стилях.
  • Додатки (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, важливо розібратися в механізмі її дії.

Вразливість Log4Shell дозволяє зловмиснику віддалено впроваджувати довільний код у мережу та отримати повний контроль над нею.

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

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

Через вразливість Log4j будь-яка система або програма, що використовує Log4j, стає вразливою до кібератак. Бібліотека ведення журналів виконує код на основі введених даних. Хакер може змусити бібліотеку виконати шкідливий код, оскільки вразливість дозволяє маніпулювати введенням.

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

Отже, ось як може бути використана вразливість Log4j:

  • Зловмисник ідентифікує сервер з вразливою версією Log4j.
  • Він надсилає запит на цільовий сервер, що містить посилання на його шкідливий сервер LDAP.
  • Цільовий сервер, не перевіряючи запит, підключається безпосередньо до цього сервера LDAP.
  • Потім зловмисник надсилає відповідь сервера LDAP, яка містить шкідливий код. Завдяки вразливості 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

Налаштування багатофакторної аутентифікації (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 Lookup вимкнено.

#6. Зв’яжіться зі своїми постачальниками

Навіть якщо ви впевнені в тому, що ваші брандмауери та системи безпеки оновлені, версія Log4j також оновлена, JNDI Lookup вимкнено, і т.д., не розслабляйтеся.

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

Тому слід зв’язатися зі своїми постачальниками та переконатися, що вони також оновили Log4j до останньої версії та вжили інші заходи безпеки, описані вище.

#7. Скористайтеся сканером вразливостей Log4j

На ринку є велика кількість інструментів сканування вразливостей Log4j, які допомагають виявити вразливості Log4j у ваших системах та програмах.

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

Отже, якщо ваше завдання полягає лише в виявленні, потрібно знайти сканер вразливостей Log4j, який зможе виявити проблему, або скористатися інструментом, який здатен і виявити, і усунути проблему.

Нижче наведено деякі з найкращих інструментів сканування Log4j:

  • Microsoft 365 Defender: 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: Цей інструмент генерує випадковий унікальний ідентифікатор, який можна використовувати під час тестування полів введення. У разі виявлення вразливості в програмі або полі введення його захищений сервер LDAP негайно припинить шкідливе з’єднання та захистить вас.
  • WhiteSource Log4j Detect: WhiteSource розробила безкоштовний інструмент CLI WhiteSource Log4j Detect, розміщений на GitHub, що допомагає виявляти та усувати вразливості Log4j – CVE-2021-445046 та CVE-2021-44228.
  • Інструменти сканування з відкритим кодом JFrog для Log4j: JFrog розробила різноманітні рішення та інструменти з відкритим кодом для пошуку вразливостей Log4j у ваших двійкових файлах і вихідному коді.

Висновок

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

Тому для захисту ваших систем та додатків від цієї вразливості необхідно оновити бібліотеку Log4j до останньої версії та застосувати наведені вище заходи безпеки.