Групи безпеки великих і малих компаній намагаються виправити раніше невідому вразливість під назвою Log4Shell, яка може дозволити хакерам скомпрометувати мільйони пристроїв в інтернеті.

Назва Log4Shell походить від популярної бібліотеки коду Java під назвою Log4j (Logging for Java), а також від того, що в разі успішної експлуатації зловмисники отримують спосіб запуску будь-якого коду у системі за їхнім вибором. Майже кожна система мережевої безпеки запускає якийсь процес логування (журналювання), що надає популярним бібліотекам, таким як log4j, величезний доступ. Log4Shell дозволяє віддалено виконувати код на вразливих серверах, надаючи зловмиснику можливість імпортувати шкідливе програмне забезпечення, яке повністю скомпрометує машини.

На жаль, вразливість була опублікована у Twitter як вразливість нульового дня (назва помилки безпеки, яка задокументована перед виходом виправлення) та опублікована як підтвердження концепції (PoC) на GitHub, тому світ вперше почув про неї, не маючи виправлення.

Маркус Хатчінс, видатний дослідник безпеки, відомий тим, що зупинив глобальну атаку зловмисного програмного забезпечення WannaCry, зазначив, що постраждають мільйони програм. «Мільйони додатків використовують Log4j для логування (журналювання), і все, що зловмиснику потрібно зробити, це змусити додаток записувати спеціальний рядок», — написав Хатчінс у твіті.

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

У блозі компанії LunaSec з безпеки додатків стверджується, що ігрова платформа Steam і Apple iCloud вже були визнані вразливими. Звернувшись за коментарем, представник Valve Дуг Ломбарді сказав, що інженери негайно переглянули її системи, і через правила безпеки мережі щодо не довіреного коду вони не вірять, що Steam знаходиться в зоні ризику.

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

«Це дуже серйозна вразливість через широке використання Java та цього пакета log4j», — сказав технічний директор Cloudflare Джон Грем-Каммінг у коментарі The Verge. «Існує величезна кількість програмного забезпечення Java, підключеного до інтернету та внутрішніх систем. За останні 10 років я можу пригадати лише дві настільки серйозні вразливості: Heartbleed, який дозволяв отримувати інформацію з серверів, які б мали бути захищеними, та Shellshock, що дозволяв запускати код на віддаленій машині».

Оновлення бібліотеки log4j вже було випущено, щоб пом’якшити вразливість, але враховуючи час, необхідний для оновлення всіх уразливих машин, Log4Shell залишається актуальною загрозою.

Apache, який доглядає за продуктом Log4j, опублікував рекомендації щодо розв’язання цієї проблеми, які включають:

  • Оновлення до Apache Log4j 2.15.0. Якщо використовується Log4j будь-якої версії 2.x та від 2.14.1 і раніше, вони є вразливими за замовчуванням. (Якщо використовується Log4j 1.x, то потрібно припинити це робити, оскільки він повністю не підтримується);
  • Блокувати JNDI від надсилання запитів до ненадійних серверів. Якщо немає можливості оновити, але використовується Log4j 2.10.0 або новішої версії, то можна встановити значення конфігурації log4j2.formatMsgNoLookups на true, що запобігти виходу LDAP і подібних запитів.