Использование криптографии с временным раскрытием для противодействия проактивным технологиям детектирования вредоносных программ | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 4 мая, печатный экземпляр отправим 8 мая.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №2 (37) февраль 2012 г.

Статья просмотрена: 259 раз

Библиографическое описание:

Усенко, А. В. Использование криптографии с временным раскрытием для противодействия проактивным технологиям детектирования вредоносных программ / А. В. Усенко. — Текст : непосредственный // Молодой ученый. — 2012. — № 2 (37). — С. 66-70. — URL: https://moluch.ru/archive/37/4202/ (дата обращения: 26.04.2024).

Введение

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

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

Задачи с временным замком были предложены в работе [1] как один из способов реализации криптографии с временным раскрытием. Под задачей с временным замком далее понимается вычислительная задача, которая:

  • Имеет решение, однозначно определяемое некоторым набором входных параметров;

  • Решение может быть получено вычислением значения некоторой функцииF от этих параметров;

  • Функция F должна быть такой, что невозможно ускорить ее вычисления посредством распараллеливания, т.е. процесс вычисления строго последователен.

Использование задач с временным замком для введения в заблуждение антивирусных анализаторов относительно безопасности исследуемого объекта предложено в работе [2], однако в ней не представлено убедительного доказательства того, что такой подход имеет какой-либо эффект в достижении обозначенной цели.

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

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

Рассмотрим модификацию алгоритма создания задач с временным замком, предложенного в работе [1].

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

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

Тогда задача с временным замком строится в соответствии с алгоритмом:

    1. Сгенерировать составной модуль , где – случайные большие простые числа. Вычислить функцию Эйлера:

;

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

    2. Выбрать случайное , такое, что ,и вычислить ключ шифрования:

,

;

    1. Зашифровать сообщение :

.

Выход алгоритма – задача с временным замком.Все другие промежуточные параметры уничтожаются.

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

Таким образом, если имеется задача с временным замком, то получение исходного сообщения Mпроисходит в соответствии с алгоритмом:

      1. ;

      2. .

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

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

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

Эксперимент: противодействие детектированию

Цель эксперимента – продемонстрировать практическое применение рассмотренного способа противодействия детектированию вредоносных программ, основанного на методах криптографии с временным раскрытием.

При проведении эксперимента использовался онлайн-сервис «VirusTotal» (www.virustotal.com), предоставляющий сведения об исследовании присланного объекта различными антивирусными продуктами. На момент проведения эксперимента на сервисе«VirusTotal» были представлены 43 различных антивирусных продукта.

В рамках эксперимента были созданы следующие приложения:

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

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

Указанные приложения представляют собой исполнимые модули формата Portable Executable семейства операционных систем Windows, написанные на языке С++ и использующие интерфейсыWin32 API и библиотеку BigDigits, предоставляющую функционал арифметики многократной точности для работы с большими числами.

Программа-инсталлятор выполняет следующие шаги:

      1. Вычисляет ключ шифрования;

      2. Расшифровывает полезную нагрузку;

      3. Записывает полезную нагрузку на жесткий диск;

      4. Запускает записанный на шаге 3файл.

Основной характеристикой программы-инсталлятора является время, необходимое для вычисления ключа и расшифровки полезной нагрузки. Оно задается значением параметра для каждого отдельного экземпляра программы-инсталлятора. В качестве значений брались степени числа 2. В таблице 1 приводятся сведения о среднем времени, необходимом программе-инсталлятору для расшифровки полезной нагрузки в конкретной системе (ОС Windows XP Professional, процессор AMD Sempron 2200+ 1.5 GHz, 512 MB RAM), с округлением до миллисекунд.

Таблица 1

Среднее время, затрачиваемое программой-инсталлятором на расшифровку полезной нагрузки, мс

t

T,мс

0

1

1

9

235

7709

58214

235039


В качестве вредоносных программ были выбраны следующие, обнаруженные в «диком виде» (названия вредоносных программ приведены в соответствии с классификацией «Доктор Веб»[3], в скобках указаны их обозначения далее в работе):

    • Joke.Forgery.336 («joke»);

    • Trojan.Packed.365 («pack»);

    • Trojan.PWS.Gameff («troj1»);

    • Trojan.Eesdns («troj2»);

    • Win32.HLLW.Amorale («vir1»);

    • Win32.HLLP.Kvex («vir2»).

Все они в «диком виде» обнаруживаются большинством антивирусных продуктов, представленных на сервисе«VirusTotal»–от 31 до 37 продуктов из 43 представленных.

Для каждой из данных программ была создана выборка программ-инсталляторов, различающихся значением параметра. Использовались следующие значения этого параметра:, , , , , , .Были проведены две серии тестирований созданных выборок на сервисе «VirusTotal», с интервалом в несколько дней между сериями.

При анализе результатов необходимо учитывать следующее:

  • Результатом тестирования может быть точная классификация полезной нагрузки инсталлятора (пометки типа «dropped», «memscan» и др.), что означает, что полезная нагрузка была расшифрованаи «опознана» анализатором. Условно назовем такой результат «точной классификацией»;

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

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

В таблицах2и 3 приведены результаты тестирований созданной выборки программ-инсталляторов на сервисе «VirusTotal».Условное значение«–» параметра tв таблицах 2 и 3 соответствует тестированию непосредственно полезной нагрузки, обнаруженной в «диком виде».

Таблица 2

Отношение числа точных классификаций, присвоенных исследуемой программе, к общему числу присвоенных классификаций (в первой серии тестирований)

t

Полезная нагрузка программы-инсталлятора

«joke»

«pack»

«troj1»

«troj2»

«vir1»

«vir2»

32/32

35/35

37/37

36/36

31/31

31/31

5/5

5/7

4/5

5/7

5/6

4/5

5/5

5/7

4/5

5/7

5/6

4/5

4/4

5/6

3/4

5/6

5/5

3/4

0/0

0/1

0/1

0/1

0/0

0/1

0/0

0/1

0/1

0/1

0/0

0/1

0/0

0/1

0/1

0/1

0/0

0/1

0/0

0/1

0/1

0/1

0/0

0/1

Таблица 3

Отношение числа точных классификаций, присвоенных исследуемой программе, к общему числу присвоенных классификаций (во второй серии тестирований)

t

Полезная нагрузка программы-инсталлятора

«joke»

«pack»

«troj1»

«troj2»

«vir1»

«vir2»

32/32

35/35

37/37

36/36

31/31

31/31

5/20

5/19

5/13

5/22

5/16

4/15

5/19

5/21

5/13

5/23

5/15

5/16

4/17

5/17

5/12

5/20

5/14

4/14

0/3

0/6

0/5

0/8

0/1

0/6

0/3

0/4

0/4

0/7

0/1

0/6

0/3

0/5

0/5

0/7

0/2

0/4

0/4

0/4

0/4

0/4

0/1

0/4


На рисунках 1 и 2 представлены снимки экрана с результатами тестирований на сервисе «VirusTotal» инсталляторов с различными значениями параметра t, содержащих в качестве полезной нагрузки объект «vir1».Результаты получены в рамках первой серии тестирований.

Рис. 1. Тестирование программы-инсталлятора с

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

              • Упростить транспортировку известных вредоносных программ в глобальной сети в случае, когда промежуточные узлы сети используют антивирусную проверку хранимого или пересылаемого контента;

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

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

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

Рис. 2. Тестирование программы-инсталлятора с

Заключение

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


Литература:

  1. Rivest R. L., Shamir A., Wagner D. A. Time-Lock Puzzles and Timed-Release Crypto // Massachusetts Institute of Technology. Cambridge, MA, USA. 1996. 9 p.

  2. Ebringer T. Anti-Emulation Through Time-Lock Puzzles // Second International CARO Workshop. Hoofddorp, Netherlands, 2008. 10 p.

  3. Классификация именований вирусов по «Доктор Веб» [Электронный ресурс]. –Режим доступа: http://vms.drweb.com/classification/

  4. Baumgartner K. AntiRE en Masse Investigating Ferrie’s Documented AntiUnpacking Tricks in the World’s Worst Mal-Families // Virus Bulletin. 2009.


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


Похожие статьи

Методика исследования вредоносных программ...

Методика исследования вредоносных программ с использованием инструмента ProcDOT.

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

Рис. 1. Поведенческая активность вредоносной программы в виде графа.

Анализ методов обнаружения вредоносных программ

Полезная информация.

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

Методика исследования вредоносных программ с использованием инструмента ProcDOT.

Современные системы автоматизированного динамического...

Вредоносные программы являются одной из самых серьезных угроз компьютерной

Задача генератора — сконструировать необходимый код-заглушку для функции обратного вызова

Таким образом становится возможным детектирование местоположения всех структур ядра...

Когда прекращать тестирование программ? Критерии...

Конечно, тестирование наиболее полезно на ранних этапах разработки проекта, так как это более экономично. Программа считается готовой к выпуску, когда устранены абсолютно все критические ошибки и ~85 % не критических ошибок.

Применение машинного обучения для обнаружения сетевых...

Полезная информация. Спецвыпуски.

Нейронная сеть может выполнять задачи, которые не выполнит линейная программа.

Серия 10. Инновационная деятельность..

Контролируемые методы машинного обучения как средство детектирования сетевых вторжений.

Формализация процесса удаленного взлома информационной...

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

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

Современные технологии обнаружения и уничтожения...

Полезная информация.

Методика исследования вредоносных программ с использованием инструмента ProcDOT. Модель взаимодействия с системами автоматизированного динамического анализа вредоносных программ.

Особенности изучения способа тестирования базового пути...

Полезная информация.

Они гарантируют однократное выполнение каждого оператора программы при тестировании. Для представления программы при использовании данного способа тестирования используется потоковый граф.

Похожие статьи

Методика исследования вредоносных программ...

Методика исследования вредоносных программ с использованием инструмента ProcDOT.

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

Рис. 1. Поведенческая активность вредоносной программы в виде графа.

Анализ методов обнаружения вредоносных программ

Полезная информация.

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

Методика исследования вредоносных программ с использованием инструмента ProcDOT.

Современные системы автоматизированного динамического...

Вредоносные программы являются одной из самых серьезных угроз компьютерной

Задача генератора — сконструировать необходимый код-заглушку для функции обратного вызова

Таким образом становится возможным детектирование местоположения всех структур ядра...

Когда прекращать тестирование программ? Критерии...

Конечно, тестирование наиболее полезно на ранних этапах разработки проекта, так как это более экономично. Программа считается готовой к выпуску, когда устранены абсолютно все критические ошибки и ~85 % не критических ошибок.

Применение машинного обучения для обнаружения сетевых...

Полезная информация. Спецвыпуски.

Нейронная сеть может выполнять задачи, которые не выполнит линейная программа.

Серия 10. Инновационная деятельность..

Контролируемые методы машинного обучения как средство детектирования сетевых вторжений.

Формализация процесса удаленного взлома информационной...

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

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

Современные технологии обнаружения и уничтожения...

Полезная информация.

Методика исследования вредоносных программ с использованием инструмента ProcDOT. Модель взаимодействия с системами автоматизированного динамического анализа вредоносных программ.

Особенности изучения способа тестирования базового пути...

Полезная информация.

Они гарантируют однократное выполнение каждого оператора программы при тестировании. Для представления программы при использовании данного способа тестирования используется потоковый граф.

Задать вопрос