Шифрованный канал. Памятка по созданию безопасного канала связи. Схема применения протокола

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

Malware классифицируется, как ПО для кибершпионажа класса APT (Advanced Persistent Threat). Этой классификации соответствуют только самые сложные и длительные атаки кибершпионского ПО. APT malware являются также Equation , Regin , Duqu и Careto . ProjectSauron (кодовое название Strider) долго оставался незамеченным благодаря тому, что он находился в системе в качестве исполняемой библиотеки, загруженной в память контроллера домена в сети под управлением Microsoft Windows.

Скомпрометированная система считала библиотеку фильтром паролей, в результате чего ProjectSauron получал доступ к шифрованным данным в открытом виде. Разработчиком этого ПО, по мнению специалистов, обнаруживших его, является неизвестная кибергруппировка, которая несет ответственность за атаки на ключевые государственные предприятия в разных странах (РФ, Иран, Руанда). По мнению экспертов, стран и организаций, которые пострадали от вируса, гораздо больше, то, что известно - это только вершина айсберга. Основными объектами атак стали правительственные структуры, научно-исследовательские центры, центры вооруженных сил, телекоммуникационные компании, финансовые организации.

Алгоритмы с открытым ключом

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

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

Основные характеристики ProjectSauron:

  • Это не простой вирус, а модульная платформа, которая разработана для кибершпионажа;
  • Платформа и ее модули используют продвинутые алгоритмы шифрования, включая RC6, RC5, RC4, AES, Salsa20;
  • Для платформы разработано более 50 модулей-плагинов, расширяющих возможность центрального элемента;
  • Создатели ProjectSauron при помощи этого ПО похищают ключи шифрования, файлы конфигурации и IP-адреса главных серверов сети, которые имеют отношения к защите информации на предприятии или в организации;
  • Злоумышленники могут похищать данные даже из сетей, не подключенных к интернету. Это делается при помощи специальных USB-носителей. Похищенные данные размещаются в скрытой области, которая недоступна программным средствам ОС;
  • ProjectSauron работает, по крайней мере, с 2011 года.
Вирус очень сложно обнаружить. Дело в том, что платформа модифицируется для каждой новой атаки. Сервера, доменные имена, IP адреса, которые прописывают злоумышленники для каждого экземпляра модифицированной платформы уникальны. Уникальны и подключаемые модули. У них неповторяющиеся названия, размеры файлов и прочие характеристики. Временные метки модулей соответствуют характеристикам системы, в которой вирус должен работать. Модули предназначены для самых разных целей, включая кражу документов, кейлоггинг, кражу ключей шифрования.

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

Использование виртуального номера, для звонков

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

Прослушивание мобильных телефонов и их защита

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

Сейчас специалисты по информационной безопасности обнаружили 28 доменов, привязанных к 11 IP адресам в США и странах Европы. Malware обладает развитыми возможностями сетевой коммуникации на основе стека наиболее распространных протоколов ICMP, UDP, TCP, DNS, SMTP и HTTP. Платформа использует протокол DNS для отправки на удаленный сервер в режиме реального времени данных по текущим операциям.

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

Для того, чтобы ProjectSauron оставался незамеченным продолжительное время, его разработчики сделали очень многое. Это, например, использование разных командно-контрольных серверов для разных экземпляров ПО. Уникальные домены и IP адреса, использование различных криптографических алгоритмов в разных случаях, работа с обычными протоколами и форматами сообщений. Признаков повторного использования доменов и серверов нет. Для каждой атакованной цели использовался уникальный алгоритм, что делало невозможным обнаружение других копий ПО после обнаружения одной из них по определенному индикатору. Единственный вариант идентификации этого ПО - структурные схожести кода.

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

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



В первую очередь, злоумышленников интересовала информация, которая относится к нестандартному криптографическому ПО. Такое программное обеспечение обычно создается для организаций, которым необходимо защищать свои каналы связи, включая общение голосом, e-mail, обмен документами. Известны форматы файлов, которые больше других интересуют создателей вируса. Это *.txt;*.doc;*.docx;*.ppt;*.pptx;*.xls;*.xlsx;*.vsd;*.wab;*.pdf;*.dst;*.ppk;*.rsa;*.rar;*.one;*.rtf;~WPL*.tmp;*.FTS;*.rpt;*.conf;*.cfg;*.pk2;*.nct;*.key;*.psw. Также их интересует информация следующих типов: .*account.*|.*acct.*|.*domain.*|.*login.*|.*member.*|.*user.*|.*name|.*email|.*_id|id|uid|mn|mailaddress|.*nick.*|alias|codice|uin|sign-in|strCodUtente|.*pass.*|.*pw|pw.*|additional_info|.*secret.*|.*segreto.*

Вирус может красть как документы, так и перехватывать нажатия клавиш, искать и отправлять своим создателям ключи шифрования со скомпрометированных систем и подключенных к ним накопителей. Сейчас известно, что ProjectSauron способен атаковать все современные версии ОС Microsoft Windows. Другие типы этого ПО, предназначенные для работы в среде прочих ОС, пока не обнаружены.

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

Эксперты из «Лаборатории Касперского» предполагают, что стоимость подготовки кибершпионского ПО такого уровня составляет многие миллионы долларов США. Операция же подобного уровня может быть реализована только при активной поддержке целого государства. Вероятнее всего, для создания ProjectSauron привлекались различные группы специалистов.

Сейчас ПО «Лаборатории Касперского» умеет определять признаки наличия в системе ProjectSauron, с детектированием образцов этого malware как ProjectSauron как HEUR:Trojan.Multi.Remsec.gen.

Полный отчет по анализу вируса и его работы доступен по

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

Часть 1. Алгоритмы шифрования информации

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

1.1. Симметричные алгоритмы

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

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

Разумеется, устойчивость к взлому подбором для таких алгоритмов зависит от длины ключа. В современном мире наиболее часто встречающимися являются ключи длиной 128 бит (16 байт). Такие ключи гарантируют сохранность зашифрованной информации в течение нескольких лет (разумеется, если не произойдет какого-нибудь технологического рывка, при котором появятся сверхбыстрые компьютеры, подбирающие ключ).

В качестве примеров алгоритмов с симметричным ключом можно привести AES, DES и BlowFish.

1.2. Алгоритмы с открытым ключом

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

Ключи называются «открытый» и «закрытый» из-за их применения. Закрытый ключ, известен только одной стороне, в то время как открытый ключ доступен вообще всему миру.

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

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

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

Длина ключей алгоритмов с открытым ключом гораздо больше, чем длина ключей симметричных алгоритмов. В современном мире наиболее часто встречаются ключи длиной в 1024 бита и 2048 бит (128 и 256 байт, соответственно).

В качестве примеров алгоритмов с открытым ключом, можно привести DSA и RSA.

Часть 2. Обеспечение шифрованного канала

В современном интернете для обеспечения безопасного шифрования при передаче информации используется комбинация алгоритмов с открытым ключом и симметричных. Расмотрим пример. Пусть сторона А собирается передать некоторую информацию стороне Б в зашифрованном виде. Тогда между сторонами происходит приблизительно такое общение:

  1. Сторона А подключается к стороне Б;
  2. Сторона Б создает пару ключей (открытый и закрытый) и передает стороне А открытый ключ в незашифрованном виде (открытый ключ доступен всему миру);
  3. Сторона А создает симметричный ключ, шифрует его с помощью открытого ключа стороны Б и передает его стороне Б в зашифрованном виде (и, как Вы помните, информация, зашифрованная открытым ключом, может быть расшифрована только закрытым, который по сети не передавался);
  4. Теперь у обе стороны знают симметричный ключ и могут обмениваться зашифрованной информацией.

Часть 3. Аутентификация

Пример инициализации шифрованного канала выглядит замечательно, но, к сожалению, он не работает. Дело в том, что злоумышленник, который хочет получить доступ к передаваемой информации, может перехватить соединение (на самом первом этапе примера) и «притвориться» стороной Б. То есть он может сам создать пару ключей и инициализировать соединение со стороной А. Более того, он даже может не знать о том, какая информация передается по каналу.

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

  1. Сторона А пытается подключиться к Б, но соединение перехватывает З и А подключается к З;
  2. Сторона З создает пару ключей, передает открытый ключ А и инициализирует шифрованный канал к стороне А;
  3. Сторона З создает второе шифрованное соединение к стороне Б с помощью другого набора ключей;
  4. Когда одна из сторон А или Б передает информацию, З расшифровывает ее, зашифровывает другими ключами и передает второй стороне. В результате А и Б считают, что общаются по шифрованному каналу, но на самом деле злоумышленник имеет доступ к информации.

3.1. Третья сторона

Для того, чтобы избежать описанной атаки «человек посередине», стороне А всего лишь достаточно удостовериться в том, сторона Б - это действительно сторона Б, а не злоумышленник, который пытается выдать себя за сторону Б, то есть аутентифицировать сторону Б.

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

Минус такого способа аутентификации в том, что сторона А должна знать открытый ключ стороны Б заранее, что просто невозможно обеспечить, например, для передачи зашифрованной информации между человеком и сайтом, на который человек пришел впервые. Именно здесь вступают в силу «третьи стороны».

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

Часть 4. Проигрывание данных

Казалось бы, в схеме с аутентификацией есть всё, чтобы злоумышленник не получил доступа к зашифрованной информации. Часто, однако, злоумышленнику не нужна информация в открытом виде, чтобы устроить атаку на сервис. Самый простой способ атаковать сервис не зная данных - записать общение сторон в зашифрованном виде, а затем изобразить из себя сторону А, проигрывая зашифрованные данные. Очень часто такая атака (особенно проведенная во много потоков) может вызвать отказ в обслуживании.

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

Часть 5. Итоговый протокол и замечания

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

Как и раньше, сторона А - это подключающийся к серверу Б клиент.

  1. Клиент А соединяется с сервером Б;
  2. Сервер Б посылает клиенту А подписанный центром сертификации открытый ключ;
  3. Клиент А проверяет подпись;
  4. Клиент А создает симметричный ключ, шифрует его с помощью открытого ключа сервера Б и отправляет серверу Б;
  5. Сервер Б расшифровывает этот симметричный ключ своим закрытым ключом, создает новый сеансовый симметричный ключ и шифрует его с помощью ключа, полученного от клиента А;
  6. Полученный шифрованный ключ отсылается клиенту А, с этого момента устанавливается шифрованный канал с помощью симметричного ключа, созданного сервером Б.


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



Статьи по теме: