Новые подробности атак, направленных на Украину: анализ бэкдора группы 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 мая 2017 года

На рис. 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) c официального сервера M.E.Doc, расшифровывает его с помощью алгоритма Triple DES, а потом распаковывает его, используя GZip. Результатом является файл XML, который может содержать несколько команд одновременно. Функция дистанционного управления делает бэкдор полнофункциональной платформой для кибершпионажа и киберсаботажа одновременно.

Рис. 7. Код бэкдора, который расшифровывает команды оператора бэкдора

В приведенной ниже таблице представлены возможные команды:

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

Рис. 8. Метод AutoPayload, который использовался для выполнения вредоносной программы DiskCoder.C

Выводы:

Как показывает анализ специалистов ESET, атака Diskcoder.C является тщательно продуманной и искусно выполненной кибероперацией. Специалисты 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, указав контактный номер телефона и имя ответственного лица для обратной связи.