Нові подробиці атак, спрямованих на Україну: аналіз бекдору групи TeleBots

27 червня 2017 року нова атака вразила багато комп'ютерних систем в Україні та інших країнах світу. Ця атака була проведена за допомогою загрози, яку продукти ESET виявляють як Diskcoder.C (відома також як ExPetr, PetrWrap, Petya або NotPetya). Ця загроза вдає з себе типову програму-вимагач — шифрує дані на комп'ютері та вимагає 300 доларів за їх відновлення. Насправді ж автори цієї шкідливої програми мали намір заподіяти шкоду, тому вони зробили все можливе, щоб зробити розшифрування даних дуже малоймовірним.

У попередній публікації спеціалісти ESET приписали цю атаку групі TeleBots і описали деталі щодо інших подібних атак на ланцюг постачання в Україні. Ця стаття розкриває деталі про початковий вектор зараження, який використовувався під час спалаху DiskCoder.C.

Департамент Кіберполіції Національної Поліції України на своїй сторінці у Facebook, як і інші компанії, що займаються кібербезпекою, у тому числі і ESET, зазначила, що для розповсюдження загрози DiskCoder.C на початковому етапі атаки зловмисники використали легальну програму для бухгалтерського обліку в Україні — M.E.Doc. Проте до сих пір не було надано жодної детальної інформації щодо того, яким чином це було реалізовано.

Спеціалісти ESET продовжили дослідження і виявили ретельно прихований та майстерно зроблений бекдор, який був доданий злочинцями в легітимні модулі M.E.Doc. Здається малоймовірним, що зловмисники могли це зробити без доступу до програмного коду M.E.Doc.

Модуль, що містить частини бекдору, має ім’я файлу ZvitPublishedObjects.dll та написаний з використанням фреймворку .NET. Це файл розміром 5 Мб, який значною мірою складається з корисного легального коду, який можуть використовувати інші компоненти продукту, включаючи головний виконуваний файл M.E.Doc ezvit.exe.

Спеціалісти ESET проаналізували усі оновлення програми M.E.Doc, які вийшли у 2017 році та встановили, що було як мінімум 3 оновлення, які містили бекдор:

  • версія 10.01.175-10.01.176, яка вийшла 14 квітня 2017 року;
  • версія 10.01.180-10.01.181, яка вийшла 15 травня 2017 року;
  • версія 10.01.188-10.01.189, яка вийшла 22 червня 2017 року.

Атака з використанням Win32/Filecoder.AESNI.C сталася через три дні після оновлення 10.01.180-10.01.181, а спалах загрози DiskCoder.C стався через п'ять днів після оновлення 10.01.188-10.01.189. Цікавим є той факт, що 4 оновлення, які вийшли у період з 24 квітня 2017 року до 10 травня 2017 року, та 7 оновлень програми, які вийшли у період з 17 травня 2017 року до 21 червня 2017 року не містили модуль з бекдором.

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

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

Рис. 1. Відмітка часу компіляції модуля, який містить бекдор, доданого в оновлення 15 травня року

На Рис. 2 показано різницю між списком класів у ILSpy .NET Decompiler у модулі з бекдором та без нього.

Рис. 2. Список класів у модулі з бекдором (ліворуч) та без нього (праворуч)

Основний клас бекдора має ім'я MeCom і знаходиться у гілці ZvitPublishedObjects.Server, як показано на Рис. 2.

Рис. 3. Клас MeCom зі шкідливим кодом, який представлено у ILSpy .NET Decompiler

Методи класу MeCom викликаються методом IsNewUpdate класу UpdaterUtils з гілки ZvitPublishedObjects.Server. Метод IsNewUpdate визивається періодично, щоб перевірити наявність нового оновлення. Від 15 травня модуль з бекдором спрацьовував у дещо інший спосіб і мав менше можливостей, ніж той, який був активний з 22 червня.

Шкідливий код, який було додано в метод IsNewUpdate, збирав усі коди ЄДРПОУ (Єдиного державного реєстру підприємств та організацій України) з даних програми. Це дуже важлива інформація для зловмисників: використовуючи коди ЄДРПОУ, злочинці можуть ідентифікувати організацію, яка використовує інфікований бекдором M.E.Doc. Як тільки така організація буде ідентифікована, хакери можуть використовувати різну тактику проти комп'ютерної мережі організації, залежно від своєї мети.

Оскільки M.E.Doc є бухгалтерським програмним забезпеченням, цей код присутній у програмних даних. Таким чином, код, який було додано в метод IsNewUpdate, збирає усі значення коду ЄДРПОУ з програми: кожна інсталяція програми M.E.Doc може бути використана для здійснення бухгалтерського обліку декількох організацій, тому зловмисний код збирав усі можливі коди ЄДРПОУ.

Рис. 4. Шкідливий код, який збирає коди ЄДРПОУ

Окрім кодів ЄДРПОУ, бекдор збирає з програми M.E.Doc налаштування проксі-сервера та електронної пошти, включаючи імена користувачів і паролі.

Звертаємо увагу! Спеціалісти ESET рекомендують змінити паролі проксі-сервера та електронної пошти для всіх користувачів M.E.Doc, які використовували їх у програмному забезпеченні.

Шкідливий код записує інформацію, зібрану в реєстрі Windows, у гілці HKEY_CURRENT_USER\SOFTWARE\WC, використовуючи імена Cred та Prx. Таким чином, існування даних ключів вказує на те, чи був запущений коли-небудь модуль, інфікований бекдором, на комп'ютері потенційної жертви.

І ось найбільш хитра та майстерно організована частина! Модуль з бекдором не використовував жодних зовнішніх командних серверів (C&C): він використовував офіційний сервер M.E.Doc upd.me-doc.com[.]ua. Єдина відмінність від легітимного запиту полягає в тому, що заражена бекдором версія додає зібрану інформацію до файлів cookies.

Рис. 5. HTTP-запит, який містить коди ЄДРПОУ у файлах cookies

Спеціалісти ESET не проводили криміналістичну експертизу на сервері M.E.Doc. Однак, як вже зазначалося у попередній публікації ESET, є ознаки того, що сервер був скомпрометований. Тому можна припустити, що злочинці розгорнули серверне програмне забезпечення, яке дозволяло їм диференціювати запити з файлами cookies або без них. Це давало їм контроль над інфікованим комп'ютером.

Рис. 6. Код бекдора, який додає файли cookies до запиту

І, звичайно ж, злочинці додали можливість контролювати інфіковану машину. Код отримує бінарний blob (binary linked object) з офіційного сервера M.E.Doc, розшифровує його за допомогою алгоритму Triple DES, а потім розпаковує його, використовуючи GZip. Результатом є файл XML, який може містити кілька команд одночасно. Ця функція дистанційного керування робить бекдор повнофункціональною платформою для кібершпіонажу та кіберсаботажу одночасно.

Рис. 7. Код бекдора, який розшифровує команди оператора бекдору

У наведеній нижче таблиці подані можливі команди:

Слід зазначити, що команда № 5, названа авторами зловмисних програм як AutoPayload, ідеально співпадає з тим, яким чином було запущено DiskCoder.C на машинах, уразливих до «0-денних» загроз.

Рис. 8. Метод AutoPayload, який використовувався для виконання шкідливої програми DiskCoder.C

Висновки:

Як показує аналіз спеціалістів ESET, це ретельно продумана і добре виконана кібероперація. Спеціалісти ESET припускають, що зловмисники мали доступ до програмного коду M.E.Doc. Вони мали час вивчити код і додати до нього ретельно прихований та добре спланований бекдор. Розмір повної установки M.E.Doc становить близько 1,5 ГБ, і спеціалісти ESET не можуть перевірити, чи немає інших доданих бекдорів.

Ще залишається багато запитань. Як довго цей бекдор використовувався? Які команди та зловмисне програмне забезпечення, крім DiskCoder.C або Win32/Filecoder.AESNI.C, було запущене через цей канал? Які ще ланцюги постачання оновлень програмного забезпечення могли бути уражені даною атакою і досі залишаються невиявленими?

Індикатори загрози

ESET виявляє загрозу як:
MSIL/TeleDoor.A

Легітимні сервери, які були інфіковані та несанкціоновано використані загрозою:
upd.me-doc.com[.]ua

Реєстраційний ключ:
HKEY_CURRENT_USER\SOFTWARE\WC

Хеші SHA-1:
7B051E7E7A82F07873FA360958ACC6492E4385DD
7F3B1C56C180369AE7891483675BEC61F3182F27
3567434E2E49358E8210674641A20B147E0BD23C

Звертаємо Вашу увагу! Спеціалісти ESET регулярно оновлюють список інструкцій для користувачів щодо здійснення перевірки та «лікування» систем, усунення наслідків атаки, проведення заходів для посилення безпеки корпоративної ІТ-інфраструктури. Актуальні рекомендації спеціалістів ESET завжди доступні у документі «ESET_Recommendations.pdf». Будь ласка, слідкуйте за оновленнями!

У разі якщо Ваш комп’ютер вже інфіковано, будь ласка, напишіть запит до служби технічної підтримки ESET в Україні на електронну адресу support@eset.ua, вказавши контактний номер телефону та ім'я відповідальної особи для зворотнього зв'язку.