Анатомия Cryptolocker

Он не прячет свой код под покровом обфускации и шифрования. Он не использует никаких техник антиотладки, детекта виртуальных машин и песочниц. Он не скрывается в недрах оперативной памяти и чудесно виден в диспетчере задач. Он прост, как автомат Калашникова. Но он реально опасен. Ведь это он заставил тысячи незадачливых пользователей платить деньги своим создателям, он ухитрился поставить на бабки сотрудников полиции Массачусетса (им пришлось покупать биткоины, чтобы расшифровать свои данные), он прославился «джентльменским» «снижением» цен в связи с резким ростом курса биткоина!

Анатомия Cryptolocker

В подавляющем большинстве случаев зловред попадает в систему путем рассылки по электронной почте от якобы служб доставки Fedex или UPS под видом отчета в формате PDF (а русский человек бы сразу понял, что письмо о доставке от Почты России — это палево ;). — Прим. ред.). Однако эксплуатацией какой-либо уязвимости этого формата здесь даже и не пахнет. Вместо отчета о доставке в письме лежит обыкновенный исполняемый файл с именем вроде FORM_1088.pdf.exe и с иконкой, очень и очень похожей на настоящую PDF’овскую. Несмотря на такую простую и избитую схему, в первые сто дней функционирования трояна, по некоторым оценкам, было заражено от 200 до 250 тысяч компьютеров (правда, преимущественно в США).

После первого запуска Cryptolocker собирает в реестре различную информацию о системе и на ее основе генерирует для себя уникальное имя файла, представляющее собой бессмысленный набор некоторого количества латинских букв. Далее зловред обретает пристанище на жестком диске жертвы в каталоге %AppData% (или %LocalAppData% в Win XP) с атрибутом скрытого файла.

Анатомия Cryptolocker
Cryptolocker на жестком диске жертвы

Для обеспечения своего запуска одновременно с запуском системы троян создает в реестре в ветках автозапуска два ключа, в которых прописан путь к Criptolocker’у на диске:

  • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunCryptoLocker
  • HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce*CryptoLocker

Ключ с символом звездочки позволяет запускать зловред при старте системы в Safe Mode.

Анатомия Cryptolocker
Автозапуск Cryptolocker’а в реестре

Для сохранения содержимого этих ключей Cryptolocker постоянно мониторит их состояние и восстанавливает в случае необходимости.

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

После запуска Cryptolocker по специальному алгоритму генерирует доменное имя и пытается подсоединиться к нему. В случае неудачи генерация доменного имени и попытки подключиться продолжаются.

В качестве исходных данных для алгоритма генерации доменного имени используется системное время, получаемое путем вызова API GetSystemTime.

Анатомия Cryptolocker
Генерация доменного имени (в нижней части выделено сгенерированное доменное имя olphjvttuqdxm.com)

Доменное имя состоит из набора латинских букв в количестве от 12 до 15 и поочередно генерируется в следующих доменных зонах:

  • .org
  • .co.ua
  • .info
  • .com
  • .net
  • .biz
  • .ru
Анатомия Cryptolocker
Неудачные попытки присоединения к командному серверу

Попытки подключения к командному серверу могут продолжаться довольно долго, до тех пор, пока не будет сгенерировано нужное доменное имя, актуальное на данный момент.

В случае успешного подсоединения (когда статья создавалась, троян подключался к командному серверу и исправно работал) на сервере генерируется пара ключей для алгоритма шифрования RSA–2048. Закрытый ключ, предназначенный для расшифровки, остается храниться на сервере, а открытый, предназначенный для шифрования, передается на компьютер жертвы, где сохраняется в реестре в специально созданном разделе

  • HKEY_CURRENT_USERSoftwareCryptoLocker_0388

с именем параметра PublicKey.

В этом же разделе создается параметр с именем VersionInfo, в котором содержится информация о текущей версии трояна, IP-адрес командного сервера и время установки. На данный момент актуальная версия трояна — 0388, что также отражено в названии раздела, создаваемого им в реестре.

Анатомия Cryptolocker
Параметры PublicKey и VersionInfo в реестре

После успешного внедрения в систему и получения ключа для шифрования троян ищет нужные файлы на компьютере жертвы. Для начала с помощью функции GetLogicalDrives он получает список всех дисков в системе, далее с помощью API GetDriveType определяются диски, с которыми можно работать (Cryptolocker шифрует файлы на дисках, имеющие тип DRIVE _ FIXED, DRIVE _ REMOTE и DRIVE _ REMOVABLE). После этого начинается поиск нужных файлов на всех доступных дисках поочередно с применением API-функций FindFirstFile и FindNextFile. Отбор нужных файлов ведется по 72 маскам.

Анатомия Cryptolocker
Маски для отбора файлов

Создатели Cryptolocker’а не стали обременять себя самостоятельной реализацией алгоритмов шифрования и использовали в своем творении возможности, предлагаемые компанией Microsoft в виде CryptoAPI и стандартного криптопровайдера Microsoft Enhanced RSA and AES Cryptographic Provider.

Содержимое файла криптуется с помощью алгоритма AES–256, ключ для которого генерирует API-функция CryptGenKey с параметром CALG _ AES _ 256. После шифрования файла этот AES-ключ шифруется алгоритмом RSA–2048 с помощью открытого ключа, полученного с командного сервера (и заблаговременно сохраненного в реестре), далее с открытого RSA-ключа снимается SHA-хеш длиной 20 байт.

Анатомия Cryptolocker
Процесс шифрования файла TestDoc.rtf

Все это дело записывается поверх старого, незашифрованного содержимого файла в определенной последовательности: сначала пишется 20 байт хеша RSA-ключа, далее 256 байт зашифрованного AES-ключа, после чего пишется сам зашифрованный файл. В итоге длина зашифрованного файла увеличивается на 276 байт по сравнению с исходным, незашифрованным файлом. SHA-хеш нужен для того, чтобы, во-первых, избежать повторного шифрования файлов, а во-вторых, чтобы найти на командном сервере нужный закрытый ключ для расшифровки файла в случае, если жертва все-таки заплатила денежки.

Анатомия Cryptolocker
Внутренности незашифрованного (вверху) и зашифрованного (внизу) файла TestDoc.rtf

После того как файл зашифрован, Cryptolocker пишет путь и имя зашифрованного файла в реестр, в ветке

  • HKEY_CURRENT_USERSoftwareCryptoLocker_0388Files.
Анатомия Cryptolocker
Имя и путь зашифрованного файла в реестре

Как только все файлы на всех доступных дисках компьютера жертвы будут зашифрованы, Cryptolocker показывает свое «истинное лицо» в виде окна красного цвета с надписью «Your personal files are encrypted!», обратным счетчиком времени, который начинается с 72 часов, и требованием оплаты за получение приватного ключа для расшифровки файлов.

Анатомия Cryptolocker
«Истинное лицо» Cryptolocker’а

Вариантов оплаты предлагается всего два — битокоинами и с помощью платежной системы MoneyPak (что говорит о большей направленности трояна на англоязычную аудиторию). В случае неуплаты в срок Cryptolocker грозит удалить приватный ключ с командного сервера и, соответственно, невозможностью расшифровки файлов в дальнейшем. Если попытаться самостоятельно или с помощью антивируса удалить файл трояна, то жертве представится возможность лицезреть новые обои рабочего стола с устрашающими надписями и предложением повторно скачать и запустить Cryptolocker для проведения оплаты и расшифровки файлов. Путь к этим обоям прописывается в реестре в том же разделе, где лежит открытый RSA-ключ и информация о версии зловреда, в параметр с именем Wallpaper.

Анатомия Cryptolocker
Пугающие обои Cryptolocker’а

Если по истечении трех дней троян оплаты так и не дождался, он убирает все, что записал в реестр, меняет обратно обои и самоуничтожается, оставив жертву один на один с зашифрованными файлами.

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

Помимо командного сервера, создатели этой малвари организовали сервис по онлайн-расшифровке файлов. Его можно найти по тому же URL, с которого в тексте на устрашающих обоях предлагается скачать троян. После заливки на него зашифрованного файла заказу присваивается идентификационный номер и производится поиск открытого RSA-ключа на всех командных серверах. После того как ключ будет найден, появится надпись с суммой и Bitcoin-кошельком, куда и нужно перевести средства за получение приватного ключа.

Анатомия Cryptolocker
Сервис расшифровки файлов. До 18.00 9.01.2014 расшифровка мне бы обошлась всего в 0,5 биткоинов :)

WARNING

Cryptolocker шифрует файлы и на дисках с параметром DRIVE _ REMOTE, то есть на расшаренных сетевых дисках. Поэтому резервные копии на таких носителях тоже могут быть под угрозой.

Это не примитивный Winlocker, требующий 200 рублей на счет мобильника. Файлы шифруются действительно стойкими алгоритмами, и без приватного ключа расшифровать их на данный момент практически не представляется возможным, даже если у тебя есть знакомые в АНБ. Поэтому резервное копирование, резервное копирование и еще раз резервное копирование. Все, что представляет ценность, должно периодически бэкапиться и складываться в надежном месте, куда не сможет протянуть свои руки Cryptolocker. Ну и в конце концов, сколько можно уже открывать аттачи от неведомых и нежданных отправителей?

INFO

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

Подробнее: http://xakep.ru/articles/62262/

Читать комменты и комментировать

Добавить комментарий / отзыв



Защитный код
Обновить

Анатомия Cryptolocker | | 2014-03-26 22:14:00 | | Статьи об Интернет безопасности | | Он не прячет свой код под покровом обфускации и шифрования. Он не использует никаких техник антиотладки, детекта виртуальных машин и песочниц. Он не скрывается в недрах оперативной памяти и чудесно | РэдЛайн, создание сайта, заказать сайт, разработка сайтов, реклама в Интернете, продвижение, маркетинговые исследования, дизайн студия, веб дизайн, раскрутка сайта, создать сайт компании, сделать сайт, создание сайтов, изготовление сайта, обслуживание сайтов, изготовление сайтов, заказать интернет сайт, создать сайт, изготовить сайт, разработка сайта, web студия, создание веб сайта, поддержка сайта, сайт на заказ, сопровождение сайта, дизайн сайта, сайт под ключ, заказ сайта, реклама сайта, хостинг, регистрация доменов, хабаровск, краснодар, москва, комсомольск |
 
Поделиться с друзьями: