В феврале 2016 года интернет потрясла эпидемия нового троянца-шифровальщика Locky (вердикт «Лаборатории Касперского» — Trojan-Ransom.Win32.Locky). Активность распространения зловреда не утихает и по сей день, продукты «Лаборатории Касперского» зафиксировали попытки заражения пользователей этим троянцем в 114 странах мира.
Анализ образцов показал, что это абсолютно новый представитель класса вымогателей, написанный с нуля. Что же из себя представляет Locky, и как от него защититься?
Распространение
Для распространения троянца злоумышленники осуществляют массированные рассылки спама с прикрепленными вредоносными загрузчиками.
Сначала вредоносные спамовые письма содержали во вложении DOC-файл с макросом, который загружал с удаленного сервера и запускал на исполнение троянец Locky.
Письмо из первых рассылок с прикрепленным вредоносным документом
Фрагмент вредоносного макроса
Продукты «Лаборатории Касперского» детектируют файлы с вредоносными макросами как Trojan-Downloader.MSWord.Agent и HEUR:Trojan-Downloader.Script.Generic.
Отметим, что в современных версиях пакета MS Office из соображений безопасности автоматическое исполнение макросов выключено. Однако, как показала практика, зачастую пользователи включают макросы вручную даже в документах неизвестного происхождения, что приводит к печальным последствиям.
В настоящее время рассылка вредоносного спама продолжается, но к письмам прикреплены уже не DOC-файлы, а ZIP-архивы, которые содержат один или несколько обфусцированных скриптов на языке JavaScript. Язык писем в основном английский, но встречаются и двуязычные варианты.
Письмо на английском языке с прикрепленным архивом
Письмо на немецком и английском языках с прикрепленным архивом
Запустить скрипты жертве предлагается вручную.
Содержимое прикрепленного к письму архива
Фрагмент скрипта из архива
После запуска скрипт загружает с удаленного сервера и запускает на исполнение троянец Locky.
Такие скриптовые загрузчики продукты «Лаборатории Касперского» детектируют как Trojan-Downloader.JS.Agent и HEUR:Trojan-Downloader.Script.Generic.
География атак
По данным KSN, атаки Locky были зафиксированы в 114 странах.
TOP 10 стран
Страна | Количество атакованных пользователей |
Франция | 469 |
Германия | 340 |
Индия | 267 |
США | 224 |
ЮАР | 182 |
Италия | 171 |
Мексика | 159 |
Бразилия | 156 |
Китай | 126 |
Вьетнам | 107 |
Отметим, что это статистика только по детектированию самого троянца, в ней не учитываются детекты на ранних стадиях атаки (вредоносный спам и загрузчики).
География атак Trojan-Ransom.Win32.Locky (количество атакованных пользователей)
Как мы видим, троянец атакует практически все регионы. Мы можем предположить, на какие страны злоумышленники нацелились в первую очередь, на основе списка языков на странице оплаты выкупа (об этом рассказано ниже).
Схема работы троянца
Троянец Locky представляет собой исполняемый файл размером около 100 Кб. Зловред написан на языке С++ с использованием STL и скомпилирован в MS Visual Studio. После старта он копируется в %TEMP%\svchost.exe и удаляет у своей копии NTFS-поток Zone.Identifier (это сделано, чтобы при запуске файла Windows не выводила предупреждение о том, что файл скачан из интернета и потенциально опасен). Затем троянец запускается из %TEMP%.
Запустившись, троянец проверяет наличие и содержимое приведенных ниже ключей реестра.
Путь | Тип | Значение |
HKEY_CURRENT_USER\Software\Locky\id | REG_SZ | Идентификатор заражения |
HKEY_CURRENT_USER\Software\Locky\pubkey | REG_BINARY | Открытый ключ RSA в формате MSBLOB |
HKEY_CURRENT_USER\Software\Locky\paytext | REG_BINARY | Текст, демонстрируемый жертве |
HKEY_CURRENT_USER\Software\Locky\completed | REG_DWORD | Статус (завершено ли шифрование) |
Если в ключах реестра уже есть данные (например, в случае, если зловред запустился не в первый раз, но его работу что-то прервало), Locky считывает их и продолжает заражение.
Если же это первый запуск, троянец выполняет следующие действия:
- Связывается с командным сервером и рапортует о заражении;
- Получает с сервера открытый ключ RSA-2048 и ID заражения, сохраняет их в реестре;
- Отправляет на сервер информацию о языке зараженной ОС, получает текст с требованиями злоумышленников, который впоследствии будет показан жертве, и сохраняет этот текст в реестре;
- На локальных дисках ищет и шифрует файлы с определенными расширениями;
- Удаляет теневые копии («shadow copies») файлов;
- Прописывается в автозагрузку (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run);
- На сетевых дисках (в том числе и на сетевых файловых ресурсах, которым не присвоена буква диска) ищет и шифрует файлы с определенными расширениями;
- Показывает жертве требования злоумышленников;
- Завершает свой процесс и самоудаляется.
Фрагмент кода для получения информации о языке системы
Шифрование файлов
Зловред производит поиск файлов для шифрования по заданному списку расширений.
Список расширений файлов для шифрования
Для каждого найденного файла Locky генерирует новый 128-битный ключ и шифрует содержимое файла алгоритмом AES-128 в режиме CTR. Зашифрованный файл получает имя вида <16 hex-символов ID><16 случайных hex-символов>.locky. В конец файла помещается структура:
Структура, которую Locky помещает в конец зашифрованного файла
В синтаксисе языка C эту структуру можно описать так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
struct file_data { uint32_t start_marker; //Сигнатура начала структуры = 0x8956FE93 char id[16]; //ID заражения uint8_t aes_key[256]; //Ключ AES, зашифрованный RSA-2048 uint32_t name_marker; //Зашифрованная AES сигнатура начала имени (= 0xD41BA12A после расшифровки) uint8_t orig_name[520]; //Зашифрованное AES исходное имя файла WIN32_FILE_ATTRIBUTE_DATA attr; //Зашифрованные AES исходные атрибуты файла }; |
Описание добавленной структуры в синтаксисе языка С
Требования злоумышленников
После того, как файлы зашифрованы, зловред демонстрирует жертве текст с требованиями злоумышленников.
Требования злоумышленников на английском языке
Требования злоумышленников на немецком языке
Сообщение содержит адрес «секретного сервера» злоумышленников, где они разместили информацию о выкупе, которую они требуют заплатить за программу для расшифровки. Все четыре ссылки в сообщении ведут на один и тот же сайт в сети Tor.
В период первых волн рассылки Locky дизайн страницы оплаты выкупа выглядел так:
Страница Locky с условиями оплаты программы для расшифровки (ранняя версия)
На этой странице злоумышленники предлагали оплатить программу для расшифровки файлов, зашифрованных на компьютере жертвы, биткойнами. И давали рекомендации, где и как можно раздобыть криптовалюту.
Впоследствии дизайн и содержимое страницы поменялись. На сегодняшний день она поддерживает более двух десятков языков (выпадающий список) и выглядит так:
Страница оплаты выкупа Locky (современная версия)
Если рассмотреть исходный код этой страницы, то мы увидим полный список поддерживаемых языков. Очевидно, именно на те страны, где используются языки из списка, злоумышленники и нацеливают троянца-вымогателя. Что интересно, в списке отсутствует русский язык и языки стран СНГ. Видимо, по каким-то причинам злоумышленники не стремятся атаковать жертв в соответствующих странах, что подтверждается статистикой KSN.
Список языков, которые поддерживает страница оплаты выкупа Locky
Коммуникация с командным сервером
В коде троянца содержатся от одного до трех IP-адресов C&C. Вдобавок к этому в зловреде реализован алгоритм генерации новых адресов C&C (DGA, domain generation algorithm) в зависимости от текущего дня, месяца и года. С помощью этого алгоритма генерируется шесть адресов C&C в сутки. Псевдокод, иллюстрирующий алгоритм DGA Locky, показан на скриншоте ниже.
Псевдокод алгоритма генерации адресов C&C Locky
Взаимодействие с командным сервером происходит по протоколу HTTP. Троянец отправляет POST-запрос на адрес вида http://<cnc_url>/main.php, пересылаемые данные шифруются простым симметричным алгоритмом.
Рассмотрим возможные типы передаваемых параметров.
-
Нотификация о заражении и запрос ключа.
id=<id заражения>
&act=getkey&affid=<id партнера, содержится в теле трояна>
&lang=<язык системы>
&corp=<корпоративная ли ОС>
&serv=<серверная ли ОС>
&os=<версия ОС>
&sp=<версия сервис-пака ОС>
&x64=<битность системы>Судя по параметру affid, Locky распространяется партнерской программой.
-
Отправка списка зашифрованных путей.
id=<id заражения>
&act=report&data=<список путей>Для каждого обработанного диска троянец отправляет на сервер список всех путей ко всем зашифрованным файлам.
-
Отправка статистики по каждому обработанному диску.
id=<id заражения>
&act=stats&path=<путь>
&encrypted=<число зашифрованных файлов>
&failed=<число ошибок>
&length=<общий размер зашифрованных файлов>
Отметим, что зловред собирает очень подробную статистику по каждому заражению. Другие ранее исследованные нами семейства вымогателей не отличались такой скрупулезностью.
Противодействие
Продукты «Лаборатории Касперского» защищают от троянца-вымогателя Locky на всех этапах атаки:
- Модуль антиспама детектирует письма, рассылаемые распространителями троянца;
- Скриптовые загрузчики детектируются статическими и эвристическими сигнатурами почтового и файлового антивирусов с вердиктами Trojan-Downloader.MSWord.Agent, Trojan-Downloader.JS.Agent, HEUR:Trojan-Downloader.Script.Generic;
- Исполняемый файл троянца детектируется сигнатурами файлового антивируса с вердиктом Trojan-Ransom.Win32.Locky;
- Неизвестные образцы Locky проактивно детектируются модулем «Мониторинг активности» с вердиктом PDM:Trojan.Win32.Generic.
Профилактика заражения
Locky – типичный троянец-вымогатель, по внутреннему устройству и принципу работы не демонстрирующий никаких кардинальных отличий от других семейств шифровальщиков. Но внимание исследователей привлекло очень активное и широкое распространение этого зловреда. По данным KSN, продукты «Лаборатории Касперского» отразили атаки Locky в более чем 100 странах мира – до сих пор ни один другой троянец-вымогатель не атаковал столько стран одновременно.
Чтобы не стать жертвой троянца-шифровальщика необходимо выполнять следующие профилактические меры:
- Не открывать в электронной почте почтовые вложения в письмах от неизвестных отправителей;
- Регулярно создавать резервные копии файлов и хранить их вне компьютера на съемных носителях информации или в «облачных» хранилищах;
- Своевременно обновлять антивирусные базы, операционную систему и другие программы на компьютере;
- Управляя доступом к общим сетевым папкам, создавать отдельную сетевую папку для каждого пользователя.
Более подробную информацию о защите от троянцев-шифровальщиков можно найти по ссылке.
Locky: кругосветный шифровальщик
Владимир
Сегодня у брата жена открыла письмо и поймала этот шифровальщик. Систему установили недавно и Касперского еще не установили, подскажите что делать? Сам вирус здесь: ***
Поможет ли установка антивира, сканирование и лечение или есть утилиты от этой заразы!?
На компе семейный архив фото, документы по работе и конечно танки и все это не работает… (((( СПАСИТЕ!!!
EK
Обратитесь на http://support.kaspersky.ru/
ivica
Пожалуйста, вы можете мне помочь? Сa Интернет я случайно взял вирус под названием –Cerber-
Необходимо, чтобы файлы, которые он запирал, их отперить, чтобы они могли быть использованы снова.
Спасибо за вашу помощь !!
EK
Обратитесь на http://support.kaspersky.ru/