Программы-вымогатели и методы шифрования

Программы-вымогатели и методы шифрования

Методы шифрования, используемые программами-вымогателями

После недавней глобальной атаки шифровальщика WannaCry у пользователей по всему миру возникло множество вопросов о том, как работают шифровальщики-вымогатели и что можно сделать с ними. Как они проникают в систему? Что они делают, когда оказываются там? В серии статей Emsisoft «В центре внимания: программы-вымогатели» мы детально разбираем различные этапы атаки программ-вымогателей. В этой статье внимание сосредоточено на самом процессе шифрования, который используется программами-вымогателями.

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

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

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

Краткая справка о криптографии и криптоанализе

Криптография (от древнегреческих: κρυπτоς – «скрытый» и γραφειν – «пишу») – это наука о методах, предотвращающих прочтение передаваемой частной информации третьей стороной. Шифрование используется для преобразования открытого текста (незашифрованных данных) в шифротекст (зашифрованные данные), чтобы скрыть содержание сообщения от прочтения посторонними.

Существуют четыре основные задачи криптографии:

  • Конфиденциальность: только предполагаемый получатель может понять и прочитать сообщение,
  • Целостность данных: невозможно незаметно изменить сообщение,
  • Неотрицаемость: отправитель не может отрицать своих намерений, изложенных в созданном сообщении, и
  • Аутентификация: отправитель и получатель могут установить, что они общаются друг с другом.

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

Криптоанализ, как изучение криптосистем с целью найти слабые стороны и восстановить содержимое зашифрованного сообщения, развивался параллельно с криптографией. Несмотря на то, что сам термин появился лишь в 1920-х годах, первое упоминание практики взлома кодов и шифров датируется 9 веком н.э. Криптоанализ сыграл немаловажную роль и во время Второй мировой войны для дешифровки секретных донесений немецкой военной разведки, использовавшей шифровальную машину «Enigma» с применением незашифрованного симметричного ключа как для отправителя, так и для получателя сообщения.

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

Методы шифрования: симметричный и асимметричный

Современные методы шифрования стали невероятно сложными по сравнению с первым шифром подстановки, использовавшимся ещё Юлием Цезарем. В этом шифре буквы открытого текста заменялись другими буквами алфавита, находящимися на одинаковом удалении от заменяемых букв.

Шифр Цезаря

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

Симметричное шифрование: быстрое, но уязвимое

Однако шифр выше – это простой пример того, как работает симметричное шифрование: и отправитель, и получатель смещают буквы на одинаковое количество позиций. Количество позиций – это то, что называется «ключ». Поэтому крайне важно держать ключ в секрете, и именно поэтому симметричное шифрование часто упоминается как «закрытый ключ шифрования».

Симметричное шифрование

Существуют два основных алгоритма симметричного шифрования: блочный шифр и поточный шифр.

Блочные шифры, как можно понять из названия, оперируют шифрованием блоков байтов, используя аналогичный ключ. Само сообщение разделяется на множество блоков, в зависимости от его длины. Если сообщение не подходит под длину блока, то в процессе, известном в криптографии как «дополнение», к сообщению добавляются данные до целого блока. Самыми распространёнными блочными шифрами, с которыми Вы столкнётесь, будут AES и Blowfish, первый из которых часто используется криптовымогателями для шифрования (подробнее об этом дальше в статье).

Поточные шифры зашифровывают каждый знак открытого текста за один раз (обычно в виде бита) с помощью псевдослучайного потока ключей. Это значит, что для каждого бита используется другой ключ из потока. Математический оператор «исключающее ИЛИ» затем объединяет два бита для создания шифротекста. Самые используемые на сегодня поточные шифры – RC4 и Salsa20.

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

Однако в последнем случае возникает вопрос: как же можно секретно обмениваться ключом, если третья сторона может узнать, чем идёт обмен?

Асимметричное шифрование: безопасное, но медленное

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

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

Асимметричное шифрование

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

В основе большинства асимметричных криптосистем обычно лежит алгоритм, который требует сложных вычислительных операций. Наиболее распространёнными алгоритмами на сегодня являются Diffie-Hellman-Merkle, RSA и Elliptic Curve Cryptography. Объяснение каждого из этих алгоритмов, конечно, вышло бы за рамки данной статьи, но если у Вас есть интерес к теме, и Вы готовы погрузиться в математические объяснения, то можно изучить, например, довольно подробную англоязычную статью на сайте ArsTechnica.

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

С учётом того, что оба вида шифрования имеют свои уникальные преимущества и недостатки, в большинстве случаев применений (в том числе создателями шифровальщиков-вымогателей) будет использоваться сочетание и того, и другого вида: симметричное шифрование со случайно сгенерированным ключом, обычно относящееся к сеансовому ключу, зашифровывает само сообщение или файлы, и асимметричный алгоритм для шифрования использованного сеансового ключа.

Общие термины криптографии

Сообщение: Данные, которые Вы хотите защитить с помощью шифрования; это может быть текст сообщения или файл

Открытый текст: Незашифрованное сообщение

Шифротекст: Зашифрованное сообщение

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

Блочный шифр: Симметричное шифрование, оперирующее блоками байт.

Поточный шифр: Использует поток ключей для шифрования одного бита за один раз.

Симметричный (закрытый) ключ шифрования: Для шифрования и дешифрования сообщения используется один и тот же ключ.

Асимметричный (открытый) ключ шифрования: Для шифрования и дешифрования сообщения используются разные ключи.

Использование шифрования программами-вымогателями на примере CryptoLocker

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

Безусловно, CryptoLocker – это не первая программа-вымогатель, которая использовала шифрование файлов, но это было определённо первое крупное семейство программ-вымогателей, получившее внимание со стороны средств массовой информации. Оно использует 256-битный AES-ключ симметричного шифрования для зашифровки самого файла и асимметричное RSA шифрование для соединения и защиты симметричного сеансового ключа.

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

  1. Создание безопасных соединений

Оказавшись в системе, CryptoLocker шифрует файлы с помощью открытого RSA (=асимметричного) ключа, используемого для создания защищённого канала связи с сервером контроля и управления. Программа-вымогатель контролирует все сообщения по этому каналу между собой и сервером создателя вредоносной программы. Шифрование с помощью открытого ключа имеет два главных преимущества в этом случае:

  1. Любые третьи лица, подслушивающие сетевые сообщения, не могут видеть открытый текст сообщения, которым обменивается CryptoLocker и его сервер. Всё, что сможет увидеть криптоаналитик, когда попытается изучить сетевой трафик и понять протокол, так это кучу зашифрованной абракадабры.
  2. Однако ещё более важным является то, что создатели вредоносных программ не только прячут свои сообщения от посторонних глаз, но также и обеспечивают тот факт, что сервер, с которым общается программа-вымогатель, принадлежит именно создателям зловреда.

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

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

  1. Шифрование файлов

Во время обращения к своему серверу CryptoLocker запрашивает у него второй открытый RSA-ключ  ̶  уникальный для каждой жертвы. Затем он продолжает и создаёт 256-битный сеансовый AES-ключ, который будет использован для шифрования файлов жертвы. Как мы уже упоминали ранее, асимметричное шифрование, например, RSA, не очень хорошо подходит для шифрования больших объёмов данных напрямую, поскольку оно существенно медленнее своего симметричного «собрата». Поэтому для шифрования большой части пользовательских данных намного эффективнее использовуется симметричный алгоритм, например, AES.

  1. Защита общего ключа

На заключительном этапе CryptoLocker шифрует 256-битный AES-ключ, используя асимметричный открытый RSA-ключ (индивидуальный для каждой жертвы), и хранит его вместе с зашифрованными файлами данных.

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

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

Почти…

Понимание алгоритмов шифрования помогает бороться с программами-вымогателями

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

Иногда нам везёт: программа-вымогатель, которая полагается только на симметричное шифрование, например, Harasom, «прячет» ключ, используемый ею для шифрования каждого файла на каждой системе, прямо в исполняемый файл самой программы.

Конечно, хотелось бы, чтобы создатели программ-вымогателей всегда были столь незатейливы…

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

Возьмём, к примеру, CryptoDefense: это семейство программ-вымогателей, появившееся уже после CryptoLocker, использует почти аналогичный подход с одним небольшим отличием: вместо сервера, генерирующего закрытый и открытый ключ для жертвы, в данном случае пара ключей генерировалась прямо в системе жертвы и лишь потом отправлялась на сервер контроля и управления. К счастью для нас, создатели CryptoDefense не прочитали должным образом документацию библиотеки шифрования и случайно сохранили сгенерированную пару ключей прямо в системе жертвы. С этого момента для нас было уже легко найти эти ключи и использовать их для восстановления файлов пострадавших пользователей.

Защита системы лучше, чем последующая очистка

Учитывая все типы существующих вредоносных программ, намного безопаснее быть, в первую очередь, защищённым, а лишь потом пытаться очистить систему. Это ещё более актуально в случае с программами-вымогателями. Поэтому не ждите до тех пор, пока станет слишком поздно. Проверьте уже сегодня, защищён ли Ваш компьютер с помощью надёжного антивирусного решения.

Скачать антивирус Emsisoft для защиты от шифровальщиков

Желаем Вам отличного дня без шифровальщиков!