TeslaCrypt 2.0 в обличии CryptoWall

Тема в разделе "Аналитические статьи", создана пользователем akok, 17 июл 2016.

  1. akok
    Оффлайн

    akok Команда форума Администратор

    Сообщения:
    12.455
    Симпатии:
    13.954
    Семейство шифровальщиков-вымогателей TeslaCrypt – относительно новая угроза, первые ее экземпляры были обнаружены в феврале 2015 года. С тех пор зловред успел пошуметь в СМИ как «гроза» компьютерных игроков, ведь он целенаправленно поражает множество связанных с играми типов файлов (сохранения, пользовательские профили и т.п.). Целями троянца были жители США, Германии, Испании и других стран, несколько десятков попыток заражения было зафиксировано и в России.

    TeslaCrypt до сих пор находится в фазе активной разработки: за прошедшие месяцы менялись внешний вид, демонстрируемое жертве название (зловред мимикрировал под CryptoLocker, выступал под именем TeslaCrypt и AlphaCrypt), расширения зашифрованных файлов (.ecc, .ezz, .exx), а также детали реализации.

    Недавно «Лаборатория Касперского» обнаружила новейшую версию троянца – TeslaCrypt 2.0. Эта версия отличается от предшественников существенно улучшенной криптографической схемой, из-за которой в данный момент нельзя расшифровать затронутые TeslaCrypt файлы, и отказом от GUI в пользу HTML-страницы, причем скопированной у другого троянца – Cryptowall.

    Продукты «Лаборатории Касперского» детектируют представителей семейства TeslaCrypt как Trojan-Ransom.Win32.Bitman. Новейшая версия троянца, рассматриваемая в данной статье, детектируется как Trojan-Ransom.Win32.Bitman.tk, ее MD5-хэш: 1dd542bf3c1781df9a335f74eacc82a4

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

    [​IMG]

    TeslaCrypt 0.2.5

    Но уже к версии 0.4.0 создатели TeslaCrypt полностью пересмотрели внешний вид зловреда.

    [​IMG]

    TeslaCrypt 0.4.0

    Но независимо от версии неизменными остаются следующие черты семейства:

    • Троянец сам генерирует новый уникальный адрес Bitcoin и секретный ключ для него. Адрес используется и в качестве ID жертвы, и для приема платежей от нее.
    • Для шифрования файлов применяется алгоритм AES-256-CBC, все файлы шифруются одним ключом.
    • Не шифруются файлы размером более 0x10000000 байт (~268 Мб).
    • Серверы C&C располагаются в сети Tor, общение с ними происходит через публичные tor2web-сервисы.
    • Среди шифруемых файлов значится множество расширений, соответствующих файлам компьютерных игр.
    • Троянец удаляет shadow-копии.
    • Несмотря на «страшилку» про RSA-2048, демонстрируемую жертве, этот алгоритм не применяется в коде ни в каком виде.
    • Троянец написан на C++, собран компилятором Microsoft, а реализация криптоалгоритмов взята из библиотеки OpenSSL.
    Интересные факты
    • Ранние версии TeslaCrypt (0.2.5 – 0.3.x) самостоятельно проверяли на сайте Bitcoin Block Explorer - Blockchain.info, прошел ли платеж bitcoin – в случае успеха зловред рапортовал об этом командному серверу и получал ключ для расшифровки файлов. Такая схема была уязвима, поскольку позволяла специалисту самостоятельно сделать такой запрос к C&C и без оплаты получить заветный ключ.
    • Версии 0.2.5 – 0.3.x сохраняли ключ расшифровки (вместе с другими данными) в собственном служебном файле key.dat. Область с ключом занулялась в этом файле лишь после завершения шифрования, что давало возможность сохранить ключ, прервав работу шифровальщика (например, выключив ПК). Далее можно было извлечь из key.dat ключ и расшифровать все файлы.
    • В версии 0.4.0 файл key.dat переименовали в storage.bin, а ключ расшифровки сохраняли не в открытом виде, а обращенным по модулю порядка стандартной эллиптической кривой secp256k1. После завершения шифрования ключ затирали не нулями, а случайными байтами, но, тем не менее, пока эта область не затерта, ключ извлечь можно – это и было реализовано в нашей утилите RakhniDecryptor.
    День сегодняшний
    И вот недавно наше внимание привлек образец данного троянца, имеющий внутреннюю версию 2.0.0 – что же изменилось на этот раз?

    Первое, что бросается в глаза – из TeslaCrypt исчез код, отвечающий за отображение GUI (окна приложения). Вместо этого после шифрования троянец показывает в браузере HTML-страницу, полностью скопированную у другого широко известного вымогателя – CryptoWall 3.0.

    [​IMG]

    Страница, открывающаяся по предложенным жертве ссылкам, также полностью повторяет страницу оплаты CryptoWall, но, ясное дело, указанные URL ведут на сервер TeslaCrypt – авторы данного зловреда явно не планируют отдавать деньги жертв конкурентам.

    [​IMG]

    TeslaCrypt заполняет строку текстом о CryptoWall

    К чему такая маскировка? Тут мы можем только гадать – возможно, злоумышленники хотели таким образом вселить в жертв уверенность в серьезности ситуации. Ведь файлы после CryptoWall до сих пор не поддаются расшифровке, чего нельзя сказать о многих случаях заражения TeslaCrypt.

    Так или иначе, это не единственное изменение, пришедшее с новой версией TeslaCrypt. В очередной раз была доработана криптографическая схема, которая в итоге стала еще более «навороченной». При генерации ключей применяется алгоритм ECDH (злоумышленники ввели его использование в версиях 0.3.x), но, в отличие от предыдущих версий, он здесь кажется более уместным, поскольку служит определенной цели – дает злоумышленникам возможность расшифровать файлы, используя лишь «мастер-ключ». Но обо всем по порядку.

    Криптографическая схема TeslaCrypt 2.0
    Генерация ключевых данных
    Троянец использует два набора ключей – «мастер-ключи», которые уникальны в рамках одной зараженной системы, и «сессионные ключи», которые генерируются заново при каждом перезапуске зловреда в системе.

    Генерация мастер-ключей
    Пусть Q – стандартная эллиптическая кривая secp256k1 («SECG curve over a 256 bit prime field»), а G – образующий элемент циклической подгруппы группы точек на кривой.

    Пусть malware_pub – содержащийся в теле троянца открытый ключ злоумышленников (он является точкой на кривой Q, хранится в виде отдельных координат x, y).

    При заражении системы троянец генерирует:

    • install_id – идентификатор заражения – случайные 8 байт.
    • master_btc_priv – секретный мастер-ключ – случайные 32 байта; отправляется на C&C.
    • master_btc_pub = master_btc_priv * G (точка на кривой) – открытый мастер-ключ; сохраняется в зашифрованных файлах.
    • btc_address – адрес bitcoin для приема выкупа – генерируется по стандартному для bitcoin алгоритму на основе master_btc_pub.
    • master_ecdh_secret = ECDH(malware_pub, master_btc_priv) – «общий мастер-ключ», понадобится для расшифровки, если master_btc_priv был утерян либо не дошел до C&C; в таком виде нигде не сохраняется.
    • master_ecdh_secret_mul = master_ecdh_secret * master_btc_priv – число, которое позволит восстановить master_btc_priv; сохраняется в системе.
    Примечание
    master_btc_priv (в соответствии с принципом работы bitcoin) – это секретный ключ, необходимый, чтобы «снять» биткоины, отправленные на свежесозданный адрес btc_address.

    Генерация сессионных ключей
    При каждом запуске (при первом заражении, или, например, после перезагрузки ПК) троянец заново генерирует:

    • session_priv – секретный сессионный ключ – случайные 32 байта. Используется для шифрования файлов, нигде не сохраняется.
    • session_pub = session_priv * G – открытый сессионный ключ. Сохраняется в зашифрованных файлах.
    • session_ecdh_secret = ECDH(master_btc_pub, session_priv) – «общий сессионный ключ» — необходим для расшифровки файлов, в таком виде нигде не сохраняется.
    • session_ecdh_secret_mul = session_ecdh_secret * session_priv – число, которое позволит восстановить session_ecdh_secret. Сохраняется в зашифрованных файлах.
    Ключевые данные, сохраняемые в системе
    В отличие от предыдущих версий TeslaCrypt 2.0.0 не использует для хранения данных key.dat или storage.bin. Вместо них используется реестр: в HKCU\Software\msys\ID сохраняется значение install_id, а в HKCU\Software\<install_id>\data помещается следующая структура:

    [​IMG]

    В привычном синтаксисе языка C структуру можно описать следующим образом:

    [​IMG]

    Вот как это выглядит в зараженной системе:

    [​IMG]

    Шифрование файлов
    TeslaCrypt, начиная от версии 0.3.5, поражает как обычные носители, подключенные к системе, так и все доступные сетевые файловые ресурсы (shares), даже если они не смонтированы в качестве диска с отдельной буквой. Кстати, немногие шифровальщики могут похвастаться такой функциональностью.

    Каждый файл шифруется алгоритмом AES-256-CBC с ключом session_priv. Зашифрованный файл получает дополнительное расширение «.zzz». В начало файла помещается служебная структура, после нее следует шифрованное содержимое. Формат структуры:

    [​IMG]

    Та же структура в синтаксисе языка C:

    [​IMG]

    Расшифровка файлов
    Авторы TeslaCrypt 2.0.0 полностью убрали из зловреда функцию расшифровки файлов, которая присутствовала в предыдущих версиях. Исходя из анализа представленной выше криптографической схемы, мы видим такие алгоритмы расшифровки файлов:

    1. Если известен master_btc_priv, то нужно:
      • Прочитать из зашифрованного файла session_pub;
      • Вычислить session_ecdh_secret = ECDH(session_pub, master_btc_priv);
      • Прочитать из зашифрованного файла session_ecdh_secret_mul;
      • Вычислить session_priv = session_ecdh_secret_mul / session_ecdh_secret;
      • Расшифровать файл ключом session_priv.
    2. Если нет master_btc_priv, но известен malware_priv (а известен он только злоумышленникам, которые поместили в тело трояна соответствующий malware_pub):
      • Прочитать из реестра или зашифрованного файла master_btc_pub;
      • Вычислить master_ecdh_secret = ECDH(master_btc_pub, malware_priv);
      • Прочитать из зашифрованного файла master_ecdh_secret_mul;
      • Вычислить master_btc_priv = master_ecdh_secret_mul / master_ecdh_secret;
      • Со знанием master_btc_priv выполнить шаги из пункта 1.
    Для полного понимания происходящего желательно ознакомиться с алгоритмом Диффи-Хеллмана и его версией для эллиптических кривых ECDH – например, здесь.

    Другие особенности
    Обход детектирования
    В троянце используется техника обхода детектирования, основанная на применении COM-объектов. Мы впервые обнаружили ее использование в TeslaCrypt версии 0.4.0, но с тех пор она претерпела небольшие изменения. Сгенерированный по образцу версии 2.0.0 псевдокод выглядит следующим образом:

    [​IMG]

    Коммуникация с командным сервером
    В образце троянца содержится статический список адресов C&C. Сами серверы находятся в сети Tor, но коммуникация осуществляется через обычный web с помощью tor2web-сервисов.

    До TeslaCrypt версии 0.4.1 запросы к серверу отправлялись в открытом виде, в последующих же версиях стали шифроваться алгоритмом AES-256-CBC; в качестве ключа берется хэш SHA256 от статической строки из тела зловреда.

    Формирование HTTP-запроса, отправляемого троянцем при заражении системы, показано на скриншоте псевдокода.

    [​IMG]

    Распространение
    Зловреды семейства TeslaCrypt были замечены в распространении через эксплойт-киты Angler, Sweet Orange, Nuclear. При данной схеме распространения жертва заходит на зараженный веб-сайт, и вредоносный код эксплойта, используя уязвимости браузера (чаще всего плагинов), устанавливает в систему целевое вредоносное ПО.

    [​IMG]

    Географическое распределение пользователей, атакованных зловредами семейства TeslaCrypt

    Рекомендации
    Для защиты данных от действий щифровальщика мы рекомендуем озаботиться своевременным резервным копированием всех важных файлов. Копии стоит создавать регулярно и хранить на носителях, недоступных для записи в любое время, кроме непосредственно процесса резервирования. Например, для домашних пользователей – на внешнем жестком диске, физически отключаемом сразу после завершения бэкапа.

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

    Если зловред все-таки попал в систему, остановить его поможет актуальный антивирусный продукт с обновленными базами и активированными модулями защиты. Особенно это касается модуля проактивной защиты, который в случае 0-day угроз становится последней линией обороны.
     
    Охотник нравится это.
  2. SNS-amigo
    Оффлайн

    SNS-amigo SNS System Watch Freelance reporter

    Сообщения:
    5.222
    Симпатии:
    8.904
    Список всех расширений TeslaCrypt 0.x - 2.2.0
    .aaa
    .abc
    .ecc
    .exx
    .ezz
    .vvv
    .xyz
    .zzz

    Список всех расширений TeslaCrypt 3.0 +
    .micro
    .xxx
    .ttt
    .mp3

    TeslaCrypt 4.0 +
    без расширений
     
    Последнее редактирование: 23 июл 2016
    Охотник нравится это.

Поделиться этой страницей