Активность вымогательского ПО (ransomware) в 2016 году находилась на рекордно высоком уровне, и об ее спаде в первом квартале 2017-го говорить не приходится. Эту статью мы решили посвятить самым популярным и злобным зловредам-вымогателям, особенно отличившимся в 2016 году. Мы разберем их устройство, поведение, обход песочниц и UAC, а также механизмы самозащиты.
 

Вымогатель CryptXXX

Вымогатель CryptXXX был обнаружен в апреле 2016 года и быстро стал одним из самых активных семейств рансомвари. Почти четверть успешных атак CryptXXX приходится на жителей США, также пострадали пользователи из Японии, Германии и России.

CryptXXX поставлялся через набор эксплоитов Angler Exploit Kit и распространялся посредством вируса-трояна Bedep. Вымогатель требует заплатить выкуп в 500 долларов США за восстановление зашифрованных файлов на компьютере и позволяет жертве расшифровать один файл бесплатно. Если жертва не платит выкуп, через несколько дней запрашиваемая сумма удваивается. По всей видимости, новый зловред создали те же хакеры, что стоят за вымогателем Reveton. Из-за сходства векторов заражения и кода считается, что они также связаны с авторами и распространителями эксплоит-кита Angler. 26 апреля «Лаборатория Касперского» выпустила под ОС Windows программу-дешифратор для этого типа вируса. Исполняемый файл программы можно скачать в центре поддержки.

Как и другие известные вымогатели, например Locky, CryptXXX уведомляет жертв о том, что их компьютер заражен, а файлы зашифрованы, создавая три файла-инструкции разных типов — de_crypt_readme.txt, de_crypt_readme.bmp, de_crypt_readme.html.

 

Использование бинарных кодов Microsoft

CryptXXX — это файл .dll (библиотека динамической компоновки), разновидность совместно используемой библиотеки. Другими словами, эта библиотека содержит файлы, к которым могут обращаться несколько программ одновременно. Ни в одной операции CryptXXX нет самостоятельных процессов.

Все запускаемые зловредом исполняемые файлы — хорошо известные и подписанные Windows процессы. Это самый простой способ избежать песочниц и продвинутых инструментов защиты от угроз. Его применение говорит о том, что разработчики вредоносного ПО снова адаптировались к окружающей среде.

Рис. 1. CryptXXX — обнаружение сигнатуры SandBlast Agent
Рис. 1. CryptXXX — обнаружение сигнатуры SandBlast Agent

CryptXXX dll использует процесс rundll32 — исполняемый файл Windows. Запуск в командной строке предельно прост — rundll32.exe. Вызов имени библиотеки DLL происходит без вызова расширения .dll, что само по себе подозрительно. При этом имя функции выглядит несоответствующим. В реальности код зловреда запускается одновременно с загрузкой библиотеки DLL.

Более того, бинарный код rundll32.exe, подписанный Windows, копируется в другие локации под именем svchost.exe, а затем запускается с помощью той же команды, что и rundll32.exe ранее.

Рис. 2. Запуск svchost
Рис. 2. Запуск svchost

Этот способ гениален в своей простоте: инструменты вроде диспетчера задач или приложения Process Explorer будут отображать название вредоносного процесса как svchost.exe — среди множества других процессов с таким же именем.

Рис. 3. Как CryptXXX выглядит в диспетчере задач
Рис. 3. Как CryptXXX выглядит в диспетчере задач

Если мы посмотрим на свойства процесса, он будет выглядеть как исполняемый файл, подписанный Microsoft, — вот только эта подпись предназначена совсем для другого файла. Использования известных сигнатур и известных учетных записей пользователей для симуляции известных процессов будет достаточно, чтобы обмануть автоматические инструменты.

Однако некоторые отличия могут вызвать подозрения:

  • Место запуска ПО не является местом запуска по умолчанию (в данном случае это папка «Загрузки», в других — папка %programdata%).
  • Параметры запущенного процесса соответствуют параметрам rundll32, что для svchost необычно.
  • Процесс не распознается как служба и запускается с разрешениями обычного пользователя.
 

Обход песочниц

Библиотеки динамической компоновки (.dlls) не запускаются сами по себе. Для их запуска необходим исполняемый файл. Большинство песочниц не умеют делать такую проверку и потому не смогут обнаружить новые образцы вируса CryptXXX.

Хотя и этого уже достаточно, CryptXXX еще и не спешит. Зловред умеет откладывать свой запуск на долгий срок — больше чем на час. Такое выжидание поможет обойти большинство традиционных песочниц, которые работают только в течение нескольких минут и не возобновляют проверку после задержек.

Сетевая активность, которая во многих случаях используется для обнаружения и блокировки ключевых обменов данными, здесь сведена до самого минимума, до двух запросов к удаленным серверам. Один из них адресован на совершенно неизвестный IP, который находится где-то в Германии.

Рис. 4. HTTPS-запрос на неизвестный IP
Рис. 4. HTTPS-запрос на неизвестный IP

Судя по сообщениям о дешифровке и методу внедрения, которые характерны для Angler Exploit Kit, CryptXXX очень похож на TeslaCrypt, однако по своей сути эти зловреды сильно отличаются.

Рис. 5. HTML-сообщение CryptXXX
Рис. 5. HTML-сообщение CryptXXX

Рис. 6. TeslaCrypt Ransom Note
Рис. 6. TeslaCrypt Ransom Note

Рис. 7. CryptXXX Ransom Note содержит тот же текст
Рис. 7. CryptXXX Ransom Note содержит тот же текст

Рис. 8. TeslaCrypt — обнаружение сигнатуры SandBlast Agent
Рис. 8. TeslaCrypt — обнаружение сигнатуры SandBlast Agent

Вымогатель Tesla получил распространение в 2015 году и перенял множество моделей поведения от своего успешного предшественника CryptoWall, включая оформление окон с требованием выкупа, которые также используются в CryptXXX. Следующие типы поведения помогли поставщикам продуктов безопасности разработать защиту против вируса:

  1. Хранение шаблонов кода и кодов шифрования в виде исполняемого файла.
  2. Удаление теневой копии файлов.
  3. Использование командной строки для самоудаления.
  4. Самокопирование с другим именем.

CryptXXX не содержит ни один из этих признаков:

  1. У него нет исполняемых файлов.
  2. Он не удаляет теневые копии файлов через Vssadmin или WMIC.
  3. Он не удаляет сам себя.
 

Постоянная эволюция

CryptXXX кажется похожим на TeslaCrypt, но этот зловред, очевидно, учел ошибки предшественника. Хотя шифрование файлов некоторыми его версиями удалось повернуть вспять, авторы вредоносного ПО не собираются сдаваться. Судя по различным образцам кода, вымогатель продолжает развиваться, и мы еще не раз встретимся с ним.

 

Вымогатель Locky

Уникальность Locky заключается в масштабах его распространения. За две недели после обнаружения аналитики Check Point выявили более 100 тысяч журнальных записей, свидетельствующих о попытке заразить компьютеры их клиентов более чем в 100 странах по всему миру. В сочетании с тем, что Locky имеет функцию шифрования сетевых ресурсов, последствия атаки этого зловреда могут быть разрушительными.

Вирус Locky был впервые обнаружен 16 февраля 2016 года, когда, по данным аналитиков Check Point, произошла вспышка атак с его применением — более 50 тысяч попыток в день.

INFO

В сентябре прошлого года, по данным отчета Check Point Threat Index, вымогательский зловред Locky впервые вошел в тройку самых опасных и популярных вредоносных программ в мире.

Большинство жертв вируса Locky проживают в США. Следующие в списке стран по числу пострадавших — Канада и Франция.

Locky шифрует файлы жертвы, а затем требует выкуп в биткойнах за их расшифровку. Главный способ заражения — электронные письма с вложенным документом Word, содержащим вредоносный макрос. Макрос запускает скрипт, который скачивает исполняемый файл, устанавливает его на компьютер пользователя, сканирует файлы системы и зашифровывает их.

Также Locky распознает и собирает информацию на машине жертвы. Например, собираются следующие данные:

  • является ли зараженная машина частью корпоративной сети;
  • сервер это или рабочая станция;
  • язык интерфейса пользователя ОС;
  • версия ОС;
  • статистика по каждому зашифрованному диску: число зашифрованных файлов, число неудачных попыток шифрования, объем зашифрованных исходных данных.

На сегодняшний день Locky по-прежнему распространяется среди ни в чем не повинных пользователей по электронной почте. Его инфраструктура развивается и поддерживается.

Атака вируса часто начинается с письма, к которому приложен счет. Отправитель представляется сотрудником известной компании. В примере ниже письмо как будто бы пришло от Praxair Inc.

Рис. 9. Оригинал письма, полученного сотрудниками Check Point
Рис. 9. Оригинал письма, полученного сотрудниками Check Point

Несколько сотрудников Check Point получили похожие электронные письма. Check Point SandBlast обнаружил и нейтрализовал вложение:

Рис. 10. Check Point SandBlast
Рис. 10. Check Point SandBlast

Рис. 11. Check Point SandBlast
Рис. 11. Check Point SandBlast

Вложение содержит макрос, запуск которого пользователь должен разрешить вручную (как правило, иначе текст документа был нечитабелен):

Рис. 12. Макрос
Рис. 12. Макрос

Разрешение макроса запускает скачивание вредоносного ПО, которое распознается как вымогатель Locky.

Рис. 13. Скачивание трафика, зафиксированное Wireshark
Рис. 13. Скачивание трафика, зафиксированное Wireshark

На сегодняшний день мы выявили более десяти различных вариантов загрузчика Locky.

Каждый вариант имеет свой собственный способ обхода обнаружения, некоторые из них используют разные типы файлов: .doc, .docm, .xls и .js.

Рис. 14. Примеры электронных писем
Рис. 14. Примеры электронных писем

Давай разберемся, как работает Locky и что он делает. Первый этап — жертва получает электронное письмо с подозрительным вложением (загрузчиком). Если жертва открывает вложение, скачивается вредоносный элемент (Locky) с удаленного сервера. Затем Locky подключается к своим C2-серверам для обмена ключами шифрования. Наконец, Locky шифрует определенные файлы только заданного типа и отображает классическое сообщение с требованием выкупа.

Рис. 15. Путь письма
Рис. 15. Путь письма
 

Загрузчики

По сравнению с более ранними вымогательскими кампаниями технология обфускации (маскировка кода), применяемая в загрузчиках Locky, совсем не сложная — скорее наоборот. Некоторые примеры содержали один массив со строкой загрузки URL, зашифрованной в виде списка числовых значений (пример будет ниже). В других в качестве метода маскировки кода использовался обычный пропуск символов с помощью JavaScript. Мы проанализировали имеющиеся образцы кода по тому, какое расширение файла они используют:

Рис. 16. Расширение файлов
Рис. 16. Расширение файлов

Давай рассмотрим конкретный пример работы загрузчика Locky (MD5: 45B849E00131B4434D488295CB48B36C). Если открыть файл в VBA-редакторе (команда Alt + F11 в Word), можно увидеть замаскированную макрокоманду:

Рис. 17. Замаскированная макрокоманда
Рис. 17. Замаскированная макрокоманда

Эта макрокоманда использует объект Microsoft’s XMLHTTP, чтобы загрузить вредоносный элемент с удаленного сервера, а затем запускает его с помощью команды WScript.Shell object. Функция MsgBox (1) добавлена в макрос для вывода PubDoStop, восстановленного массива KogdaGe_7 после процесса деобфускации.

Рис. 18. Расшифрованный URL
Рис. 18. Расшифрованный URL

Чтобы вручную размаскировать массив KogdaGe_7, нам просто необходимо уменьшить значение каждого его элемента на 142 (99 + 43), а затем представить его в виде соответствующего этому значению символа ASCII (2). Пример:

  • 1st character: chr(246-99-43) = chr(104) = ‘h’
  • 2nd character: chr(258-99-43) = chr(116) = ‘t’

И так далее...

 

Ссылки для загрузки вредоносного элемента (payload)

Мы обнаружили достаточное количество URL, на которых размещаются вредоносы. Большинство этих хостов — зараженные русские сайты. Некоторые из них уже не существуют. Среди найденных нами шаблонов:

  • hxxp://almazuelas[.]es/1/1.exe
  • hxxp://lasmak[.]pl/2/2.exe
  • ...
  • hxxp://luigicalabrese[.]it/7/7.exe
  • hxxp://173.214.183[.]81/tomorrowhope/09u8h76f/65fg67n
  • hxxp://iynus[.]net/test/09u8h76f/65fg67n
  • hxxp://5.101.152[.]77/system/logs/56y4g45gh45h
  • hxxp://tcpos.com[.]vn/system/logs/56y4g45gh45h
  • hxxp://accesorios.nuestroservidor[.]es/system/logs/7623dh3f.exe?.7055475
  • hxxp://blitz174[.]ru/system/smsgate/7623dh3f.exe?.7055475
  • hxxp://acilkiyafetgulertekstil[.]com/system/logs/exe
  • hxxp://alkofuror[.]com/system/engine/7647gd7b43f43.exe
  • hxxp://hazentrumsuedperlach[.]de/1/1_5a0befc0.exe
  • hxxp://afive[.]net/3/3_7223d94c.exe
  • hxxp://demo2.master-pro[.]biz/plugins/ratings/87h754
  • hxxp://firstcopymall[.]com/system/logs/87h754

Последняя ссылка была обнаружена в замаскированном JS-загрузчике. Хакеры, скорее всего, поленились как следует замести следы, поскольку мы можем увидеть уже незамаскированный код (обрати внимание на двойные http://):

Рис. 19. Незамаскированный код
Рис. 19. Незамаскированный код

Для того чтобы Locky мог зашифровать файлы жертвы, как минимум один из C2-серверов должен быть активен. Этот важный факт побуждает нас к поиску как можно большего числа C2-серверов — чтобы защитить наших заказчиков. Мы обнаружили сотни C2-серверов. Распределение доменов верхнего уровня (Top Level Domains, TLD) на них представлено на следующем рисунке. Благодаря алгоритму генерирования доменов (Domain Generation Algorithm, DGA) Locky довольно равномерно распределяет свои домены между TLD — на каждый TLD их приходится 6–8%. «Другие» TLD с загрузочными элементами Locky, не использовавшие DGA, вместо них имели списки явно заданных C2-серверов.

Рис. 20. C2
Рис. 20. C2
 

Шифрование сетевого трафика с серверов C2 с помощью Locky

Все HTTP-запросы — это запросы типа POST, отправляемые на http://<C2Server>/main.php.

Locky использует выделенную пару разных алгоритмов шифрования: один — для запросов к серверу, а другой — для расшифровки ответов. В обоих алгоритмах применяются 32-битные ключи шифрования — очень слабые по сегодняшним меркам. На следующем рисунке мы отобразили алгоритмы запроса на шифрование EncryptRequest и отклика на дешифровку DecryptResponse.

Рис. 21. Криптоалгоритмы сетевого трафика Locky
Рис. 21. Криптоалгоритмы сетевого трафика Locky

Locky может зашифровать ваши файлы, только если его C2-сервер активен. Теневые копии файлов не могут использоваться в качестве резервных — Locky их удаляет. Все подключенные диски будут зашифрованы, в том числе любые общие сетевые диски и съемные носители.

 

Не инновационный, но крайне эффективный

Locky не привносит никаких новшеств в сферу программ-вымогателей, но он эффективен — как в создании огромных объемов вредоносного спама, так и в шифровании сетевых дисков. Дважды подумай, прежде чем разрешить макрос, — это действие может заблокировать все общие корпоративные диски.

 

Вымогатель Cerber

Вымогатель Cerber имеет сложный процесс внедрения и использует в своих атаках очень интересную тактику. Он действует всплесками, между которыми наблюдаются периоды относительно низкой активности. Мы обнаружили два таких пика активности Cerber — первый был в апреле, второй — в мае 2016 года. Каждый из всплесков собрал значительное число жертв, как показано на графике ниже:

Рис. 22. Количество атак Cerber
Рис. 22. Количество атак Cerber

Жертвами Cerber стало множество пользователей, главным образом из США, Турции и Великобритании. Подобно Locky, Cerber распространяется через фишинговые письма с вредоносными вложениями. Как только пользователь открывает вложение, он подвергается атаке с применением методов социальной инженерии — его пытаются убедить в необходимости активировать встроенную в файл макрокоманду, которая запускает вирус.

 

Классическое поведение

Cerber демонстрирует классическое поведение программы-вымогателя. Зловред создает свои копии в различных локациях и обращается к ним с различными параметрами. Атака запускается при помощи бинарных кодов Windows без всяких параметров. Это достигается за счет внедрения кода (code injection) в explorer.exe и вызова следующих приложений Windows:

  • adaptertroubleshooter.exe;
  • bthudtask.exe — задание по деинсталляции устройства Bluetooth, которое часто запускается вымогателями.

Затем Cerber использует другую распространенную тактику — загружает файл DLL. После того как процесс шифрования запущен, Cerber удаляет теневые копии для предотвращения восстановления файлов. Кроме того, вирус вносит изменения в процесс загрузки, чтобы лишить пользователя любой возможности восстановить свои файлы. Файлы шифруются с помощью алгоритмов AES-265 и RSA, которые на сегодняшний день невозможно взломать.

Cerber отображает свое сообщение с требованием выкупа с помощью программ «Блокнот» (стандартного приложения Windows) и Google Chrome. Еще одна характерная черта вируса Cerber — завершив работу, он самоудаляется. Для обеспечения собственной устойчивости Cerber инициирует программу блокировки, которая препятствует любым попыткам деинсталляции. Cerber также запускает сетевой поиск, обращаясь к очень большому количеству IP-адресов, которые находятся преимущественно во Франции.

Вся схема работы вируса Cerber, выявленная инструментом для отчета о проведенной экспертизе SandBlast Agent, представлена ниже.

Рис. 23. Cerber Execution Tree
Рис. 23. Cerber Execution Tree

В июне прошлого года компания Avanan опубликовала пост о возможности заражения вымогателем Cerber через файл Microsoft Office с расширением .dotm. Как объяснили специалисты Avanan в своем блоге, атака производилась через файл dotm, который был разослан множеству пользователей в фишинговом электронном письме. Файл dotm — это шаблон документа Microsoft Word, в котором разрешено использование макроса. Этот тип файла был впервые внедрен в Office 2007. Он использует формат OpenXML и ZIP-сжатие. Далее приведено краткое содержание отчета о проведенной экспертизе вредоносного ПО.

Рис. 24. Дерево инцидента
Рис. 24. Дерево инцидента
 

Отчет о проведенной экспертизе вредоносного ПО

Выше мы видим увеличенное «дерево инцидента», построенное после того, как зловред закончил шифрование файлов в системе. Обрати внимание на количество процессов, выделенных голубым и серым. Это исходные процессы операционной системы Windows, которые используются вирусом для совершения атаки. Тот факт, что большинство современных вредоносных программ опираются в достижении своих целей на доверенные, легитимные процессы, заслуживает особого внимания. При открытии документа пользователю предлагается разрешить редактирование и разрешить содержимое (разблокировать контент). Без разблокировки контента макрокоманда не может быть выполнена, а вирус не может продолжить свою работу.

Рис. 25. Макрос вызывает выполнение cmd.exe
Рис. 25. Макрос вызывает выполнение cmd.exe

Как видно на изображении выше, при разрешении макроса он запускает интерпретатор командной строки (в данном отчете — cmd.exe PID 1272) с очень длинным аргументом, включая код на языке Visual Basic Script (VBS). Эта команда также создает файл VBS (28156.vbs, фигурирует в отчете либо в разделе «Операции по созданию файлов» (file ops creations), либо в разделе «Подозрительные события: Создание скрипта (Dropped Script)»).

Рис. 26. Создание файла tmp с помощью wscript
Рис. 26. Создание файла tmp с помощью wscript

Затем командная строка запускает команду wscript (wscript.exe PID: 1432) с созданным VBS-файлом (28156.vbs), который, в свою очередь, скачивает первый вредоносный файл вируса-вымогателя Cerber (272730.tmp), обращаясь к следующим сайтам:

  • Solidaritedeproximite[.]org/mhtr.jpg;
  • 92.222.104[.]182/mhtr.jpg.

После создания 272730.tmp этот файл запускается с помощью еще одной командной строки с PID 3068 — так начинается заражение компьютера вирусом Cerber. Запуск файла с расширением tmp в виде процесса считается очень подозрительным действием (272730.tmp PIDs: 128 и 2152) и помечается системой как подозрительное событие: Unusual Process Extension (необычное расширение процесса).

Рис. 27. Создание копии и удаление оригинала tmp
Рис. 27. Создание копии и удаление оригинала tmp

Процесс 272730.tmp с PID 128 затем запускает собственную копию с PID 2152. Процесс с PID 2152 затем создает еще одну копию файла с собой в папке appdata под именем raserver.exe. Это отмечается в качестве подозрительного события Executable Copies (исполняемые копии). Затем вирус запускает процесс raserver.exe с PID 1432. Следующий шаг — запуск командной строки с PID 2592 для удаления оригинального файла 272730.tmp. Эта задача решается вызовом taskkill.exe для остановки процесса 272730.tmp и последующего вызова команды ping, позволяющей подождать определенное время до остановки процесса с тем, чтобы файл можно было удалить. Точно так же все эти события отмечаются как подозрительные в схеме ниже:

Рис. 28. UAC Bypass Attempts
Рис. 28. UAC Bypass Attempts
 

Обход UAC

В блоге MalwareBytes, в статье Cerber Ransomware — New, But Mature исследователи подробно рассказывают о том, как Cerber пытался обойти систему контроля доступа пользователей (User Access Control, UAC), чтобы поднять уровень привилегий процессов, занятых в атаке. В частности, они показывают, как Cerber пробует запустить свою копию в проводнике Windows, а затем внедряет в эту копию код, который позволит ему использовать процессы операционной системы Microsoft Windows, чтобы обойти UAC.

Однако в нашей лаборатории все попытки запуска Cerber с обходом UAC оказались безуспешными — в каждом случае мы получали предупреждение системы UAC. Новое сообщение UAC появлялось при каждой неудачной попытке обхода. После очередной неудачи Cerber пытался запустить новое окно проводника с другим выполняемым файлом ОС Windows (см. рис. 29). Процесс raserver.exe с PID 2212 в данном инциденте пытался обойти UAC. Наша команда по обратному конструированию вредоносного ПО отметила, что исполняемые файлы, которые использовались для попыток обхода, имели манифесты со следующей информацией:

<autoElevate>true</autoElevate>
<requestedExecutionLevel level="requireAdministrator"/>
Рис. 29. Пример сообщения UAC
Рис. 29. Пример сообщения UAC

Мы ответили «да» на все запросы системы UAC, выждав некоторое время, — именно поэтому в отчете мы видим четыре запущенных процесса explorer. У процесса raserver.exe с PID 2540 теперь имеются повышенные привилегии (отмечены красной стрелкой), которые позволяют процессу приступить к шифрованию пользовательского документа.

Рис. 30. Data Ransom, Shadow Copy Deletion, Boot Tampering и так далее
Рис. 30. Data Ransom, Shadow Copy Deletion, Boot Tampering и так далее

На рис. 30 показан процесс raserver.exe с PID 2540, запущенный с повышенными привилегиями и создающий свою копию с PID 4688. Именно процесс с PID 4688 шифрует все документы пользователя. Кроме того, этот процесс также пытается произвести удаление теневых копий (обычная тактика вирусов-вымогателей) через vssadmin.exe и wmic.exe. Наконец, зловред пытается внести изменения в загрузочные файлы с помощью службы bcdedit.exe.

Рис. 31. Требование выкупа сохраняется как фон рабочего стола
Рис. 31. Требование выкупа сохраняется как фон рабочего стола

Судя по всему, после того как Cerber определил, что все пользовательские файлы были зашифрованы, он удаляет вредоносные выполняемые файлы. Поэтому при перезагрузке системы мы не наблюдаем распространение заражения вредоносом. Однако фоновое сообщение (рис. 31) остается.

 

Продолжение следует

Техники, которые использует Cerber, — это классика вымогательского ПО, за исключением периодичности атак: такие «всплески» активности не очень характерны и могут ввести в заблуждение. Рекомендуем всегда быть готовым к возвращению этого зловреда.

 

Заключение

К сожалению, сегодня нет предпосылок для того, чтобы опасный тренд развития ransomware начал терять актуальность. Скорее наоборот: рост активности вымогательского ПО — одно из самых уверенных предсказаний на 2017 год.

  • Подпишись на наc в Telegram!

    Только важные новости и лучшие статьи

    Подписаться

  • Подписаться
    Уведомить о
    2 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии