Содержание статьи
- Вымогатель CryptXXX
- Использование бинарных кодов Microsoft
- Обход песочниц
- Постоянная эволюция
- Вымогатель Locky
- Загрузчики
- Ссылки для загрузки вредоносного элемента (payload)
- Шифрование сетевого трафика с серверов C2 с помощью Locky
- Не инновационный, но крайне эффективный
- Вымогатель Cerber
- Классическое поведение
- Отчет о проведенной экспертизе вредоносного ПО
- Обход 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 процессы. Это самый простой способ избежать песочниц и продвинутых инструментов защиты от угроз. Его применение говорит о том, что разработчики вредоносного ПО снова адаптировались к окружающей среде.
CryptXXX dll использует процесс rundll32 — исполняемый файл Windows. Запуск в командной строке предельно прост — rundll32.exe
. Вызов имени библиотеки DLL происходит без вызова расширения .dll, что само по себе подозрительно. При этом имя функции выглядит несоответствующим. В реальности код зловреда запускается одновременно с загрузкой библиотеки DLL.
Более того, бинарный код rundll32.exe
, подписанный Windows, копируется в другие локации под именем svchost.exe
, а затем запускается с помощью той же команды, что и rundll32.exe
ранее.
Этот способ гениален в своей простоте: инструменты вроде диспетчера задач или приложения Process Explorer будут отображать название вредоносного процесса как svchost.exe
— среди множества других процессов с таким же именем.
Если мы посмотрим на свойства процесса, он будет выглядеть как исполняемый файл, подписанный Microsoft, — вот только эта подпись предназначена совсем для другого файла. Использования известных сигнатур и известных учетных записей пользователей для симуляции известных процессов будет достаточно, чтобы обмануть автоматические инструменты.
Однако некоторые отличия могут вызвать подозрения:
- Место запуска ПО не является местом запуска по умолчанию (в данном случае это папка «Загрузки», в других — папка
%programdata%
). - Параметры запущенного процесса соответствуют параметрам rundll32, что для svchost необычно.
- Процесс не распознается как служба и запускается с разрешениями обычного пользователя.
Обход песочниц
Библиотеки динамической компоновки (.dlls) не запускаются сами по себе. Для их запуска необходим исполняемый файл. Большинство песочниц не умеют делать такую проверку и потому не смогут обнаружить новые образцы вируса CryptXXX.
Хотя и этого уже достаточно, CryptXXX еще и не спешит. Зловред умеет откладывать свой запуск на долгий срок — больше чем на час. Такое выжидание поможет обойти большинство традиционных песочниц, которые работают только в течение нескольких минут и не возобновляют проверку после задержек.
Сетевая активность, которая во многих случаях используется для обнаружения и блокировки ключевых обменов данными, здесь сведена до самого минимума, до двух запросов к удаленным серверам. Один из них адресован на совершенно неизвестный IP, который находится где-то в Германии.
Судя по сообщениям о дешифровке и методу внедрения, которые характерны для Angler Exploit Kit, CryptXXX очень похож на TeslaCrypt, однако по своей сути эти зловреды сильно отличаются.
Вымогатель Tesla получил распространение в 2015 году и перенял множество моделей поведения от своего успешного предшественника CryptoWall, включая оформление окон с требованием выкупа, которые также используются в CryptXXX. Следующие типы поведения помогли поставщикам продуктов безопасности разработать защиту против вируса:
- Хранение шаблонов кода и кодов шифрования в виде исполняемого файла.
- Удаление теневой копии файлов.
- Использование командной строки для самоудаления.
- Самокопирование с другим именем.
CryptXXX не содержит ни один из этих признаков:
- У него нет исполняемых файлов.
- Он не удаляет теневые копии файлов через Vssadmin или WMIC.
- Он не удаляет сам себя.
Постоянная эволюция
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.
Несколько сотрудников Check Point получили похожие электронные письма. Check Point SandBlast обнаружил и нейтрализовал вложение:
Вложение содержит макрос, запуск которого пользователь должен разрешить вручную (как правило, иначе текст документа был нечитабелен):
Разрешение макроса запускает скачивание вредоносного ПО, которое распознается как вымогатель Locky.
На сегодняшний день мы выявили более десяти различных вариантов загрузчика Locky.
Каждый вариант имеет свой собственный способ обхода обнаружения, некоторые из них используют разные типы файлов: .doc, .docm, .xls и .js.
Давай разберемся, как работает Locky и что он делает. Первый этап — жертва получает электронное письмо с подозрительным вложением (загрузчиком). Если жертва открывает вложение, скачивается вредоносный элемент (Locky) с удаленного сервера. Затем Locky подключается к своим C2-серверам для обмена ключами шифрования. Наконец, Locky шифрует определенные файлы только заданного типа и отображает классическое сообщение с требованием выкупа.
Загрузчики
По сравнению с более ранними вымогательскими кампаниями технология обфускации (маскировка кода), применяемая в загрузчиках Locky, совсем не сложная — скорее наоборот. Некоторые примеры содержали один массив со строкой загрузки URL, зашифрованной в виде списка числовых значений (пример будет ниже). В других в качестве метода маскировки кода использовался обычный пропуск символов с помощью JavaScript. Мы проанализировали имеющиеся образцы кода по тому, какое расширение файла они используют:
Давай рассмотрим конкретный пример работы загрузчика Locky (MD5: 45B849E00131B4434D488295CB48B36C). Если открыть файл в VBA-редакторе (команда Alt + F11 в Word), можно увидеть замаскированную макрокоманду:
Эта макрокоманда использует объект Microsoft’s XMLHTTP, чтобы загрузить вредоносный элемент с удаленного сервера, а затем запускает его с помощью команды WScript.Shell object
. Функция MsgBox (1)
добавлена в макрос для вывода PubDoStop, восстановленного массива KogdaGe_7 после процесса деобфускации.
Чтобы вручную размаскировать массив 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://
):
Для того чтобы Locky мог зашифровать файлы жертвы, как минимум один из C2-серверов должен быть активен. Этот важный факт побуждает нас к поиску как можно большего числа C2-серверов — чтобы защитить наших заказчиков. Мы обнаружили сотни C2-серверов. Распределение доменов верхнего уровня (Top Level Domains, TLD) на них представлено на следующем рисунке. Благодаря алгоритму генерирования доменов (Domain Generation Algorithm, DGA) Locky довольно равномерно распределяет свои домены между TLD — на каждый TLD их приходится 6–8%. «Другие» TLD с загрузочными элементами Locky, не использовавшие DGA, вместо них имели списки явно заданных C2-серверов.
Шифрование сетевого трафика с серверов C2 с помощью Locky
Все HTTP-запросы — это запросы типа POST, отправляемые на http://<C2Server>/main.php
.
Locky использует выделенную пару разных алгоритмов шифрования: один — для запросов к серверу, а другой — для расшифровки ответов. В обоих алгоритмах применяются 32-битные ключи шифрования — очень слабые по сегодняшним меркам. На следующем рисунке мы отобразили алгоритмы запроса на шифрование EncryptRequest и отклика на дешифровку DecryptResponse.
Locky может зашифровать ваши файлы, только если его C2-сервер активен. Теневые копии файлов не могут использоваться в качестве резервных — Locky их удаляет. Все подключенные диски будут зашифрованы, в том числе любые общие сетевые диски и съемные носители.
Не инновационный, но крайне эффективный
Locky не привносит никаких новшеств в сферу программ-вымогателей, но он эффективен — как в создании огромных объемов вредоносного спама, так и в шифровании сетевых дисков. Дважды подумай, прежде чем разрешить макрос, — это действие может заблокировать все общие корпоративные диски.
Вымогатель Cerber
Вымогатель Cerber имеет сложный процесс внедрения и использует в своих атаках очень интересную тактику. Он действует всплесками, между которыми наблюдаются периоды относительно низкой активности. Мы обнаружили два таких пика активности Cerber — первый был в апреле, второй — в мае 2016 года. Каждый из всплесков собрал значительное число жертв, как показано на графике ниже:
Жертвами 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, представлена ниже.
В июне прошлого года компания Avanan опубликовала пост о возможности заражения вымогателем Cerber через файл Microsoft Office с расширением .dotm. Как объяснили специалисты Avanan в своем блоге, атака производилась через файл dotm, который был разослан множеству пользователей в фишинговом электронном письме. Файл dotm — это шаблон документа Microsoft Word, в котором разрешено использование макроса. Этот тип файла был впервые внедрен в Office 2007. Он использует формат OpenXML и ZIP-сжатие. Далее приведено краткое содержание отчета о проведенной экспертизе вредоносного ПО.
Отчет о проведенной экспертизе вредоносного ПО
Выше мы видим увеличенное «дерево инцидента», построенное после того, как зловред закончил шифрование файлов в системе. Обрати внимание на количество процессов, выделенных голубым и серым. Это исходные процессы операционной системы Windows, которые используются вирусом для совершения атаки. Тот факт, что большинство современных вредоносных программ опираются в достижении своих целей на доверенные, легитимные процессы, заслуживает особого внимания. При открытии документа пользователю предлагается разрешить редактирование и разрешить содержимое (разблокировать контент). Без разблокировки контента макрокоманда не может быть выполнена, а вирус не может продолжить свою работу.
Как видно на изображении выше, при разрешении макроса он запускает интерпретатор командной строки (в данном отчете — cmd.exe PID 1272
) с очень длинным аргументом, включая код на языке Visual Basic Script (VBS). Эта команда также создает файл VBS (28156.vbs
, фигурирует в отчете либо в разделе «Операции по созданию файлов» (file ops creations), либо в разделе «Подозрительные события: Создание скрипта (Dropped Script)»).
Затем командная строка запускает команду 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 (необычное расширение процесса).
Процесс 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, позволяющей подождать определенное время до остановки процесса с тем, чтобы файл можно было удалить. Точно так же все эти события отмечаются как подозрительные в схеме ниже:
Обход 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"/>
Мы ответили «да» на все запросы системы UAC, выждав некоторое время, — именно поэтому в отчете мы видим четыре запущенных процесса explorer
. У процесса raserver.exe
с PID 2540 теперь имеются повышенные привилегии (отмечены красной стрелкой), которые позволяют процессу приступить к шифрованию пользовательского документа.
На рис. 30 показан процесс raserver.exe с PID 2540, запущенный с повышенными привилегиями и создающий свою копию с PID 4688. Именно процесс с PID 4688 шифрует все документы пользователя. Кроме того, этот процесс также пытается произвести удаление теневых копий (обычная тактика вирусов-вымогателей) через vssadmin.exe
и wmic.exe
. Наконец, зловред пытается внести изменения в загрузочные файлы с помощью службы bcdedit.exe
.
Судя по всему, после того как Cerber определил, что все пользовательские файлы были зашифрованы, он удаляет вредоносные выполняемые файлы. Поэтому при перезагрузке системы мы не наблюдаем распространение заражения вредоносом. Однако фоновое сообщение (рис. 31) остается.
Продолжение следует
Техники, которые использует Cerber, — это классика вымогательского ПО, за исключением периодичности атак: такие «всплески» активности не очень характерны и могут ввести в заблуждение. Рекомендуем всегда быть готовым к возвращению этого зловреда.
Заключение
К сожалению, сегодня нет предпосылок для того, чтобы опасный тренд развития ransomware начал терять актуальность. Скорее наоборот: рост активности вымогательского ПО — одно из самых уверенных предсказаний на 2017 год.