Введение
В данной работе исследуется возможность использования методов криптографии с временным раскрытием (англ. «timed-releasecryptography») для противодействия детектированию вредоносных программ, основанному на использовании таких проактивных технологий, как эмуляция кода и эвристический анализ, широко применяемых в средствах антивирусной защиты.
Криптография с временным раскрытием представляет собой совокупность методов, позволяющих зашифровать данные таким образом, чтобы обеспечить их расшифровку по истечении заранее определенного срока и исключить возможность досрочного раскрытия.
Задачи с временным замком были предложены в работе [1] как один из способов реализации криптографии с временным раскрытием. Под задачей с временным замком далее понимается вычислительная задача, которая:
Имеет решение, однозначно определяемое некоторым набором входных параметров;
Решение может быть получено вычислением значения некоторой функцииF от этих параметров;
Функция F должна быть такой, что невозможно ускорить ее вычисления посредством распараллеливания, т.е. процесс вычисления строго последователен.
Использование задач с временным замком для введения в заблуждение антивирусных анализаторов относительно безопасности исследуемого объекта предложено в работе [2], однако в ней не представлено убедительного доказательства того, что такой подход имеет какой-либо эффект в достижении обозначенной цели.
Для демонстрации эффективности предложенного подхода автор приводит далее эксперимент со специально созданной программой-инсталлятором (англ. «dropper»), несущей в себе зашифрованную полезную нагрузку и выполняющую функции ее расшифровки и инсталляции в систему.
Использование задач с временным замком для противодействия проактивным технологиям детектирования вредоносных программ
Рассмотрим модификацию алгоритма создания задач с временным замком, предложенного в работе [1].
Пусть M –некоторое сообщение; через и обозначим, соответственно, шифрование сообщения M на ключе Kи расшифровку криптограммы на ключеKс использованием некоторой симметричной криптосистемы.
Пусть T – время, которое должен затратить получатель зашифрованного сообщения на расшифровку полученной криптограммы.
Тогда задача с временным замком строится в соответствии с алгоритмом:
Выход алгоритма – задача с временным замком.Все другие промежуточные параметры уничтожаются.
Получателю задачи с временным замком неизвестно разложение на множители числа . В связи с этимон должен затратить в среднем T секунд на вычисление ключа шифрования. Для этого нужно вычислить значение функции . Наиболее эффективный способ вычислить ее – это последовательное выполнение операций возведения в квадрат по модулю большого числа. Неизвестен способ распараллеливаниявычисления данной функции.
Таким образом, если имеется задача с временным замком, то получение исходного сообщения Mпроисходит в соответствии с алгоритмом:
Использование задач с временным замком для противодействия проактивным технологиям детектирования можно рассмотреть на примере программы-инсталлятора, содержащей вредоносную полезную нагрузку, зашифрованную в соответствии с описанным выше алгоритмом, и осуществляющей функции по ее расшифровке и инсталляции в систему.
Пусть имеется вредоносная программа, которая содержится в базе знаний антивирусного программного обеспечения, что позволяет ему обнаруживать эту программу с использованием сигнатурных и, возможно, проактивных методов анализа. Эта программа будет выступать в качестве полезной нагрузки указанной выше программы-инсталлятора.
Если зашифровать вредоносный код, то метод сигнатурного анализа станет неприменим для его обнаружения. Однако, так как зашифрованный код расшифровывается перед исполнением, его можно обнаружить, эмулируя выполнение программы-инсталлятора. Детектирование вредоносной программы, основанное на эмуляции, может быть предотвращено, в частности, посредством превышения глубины анализа или же максимального времени работы эмулятора с программой. Для того чтобы превысить максимальное время работы эмулятора, будем использовать шифрование и расшифровку полезной нагрузки программы-инсталлятора в соответствии с вышеописанными алгоритмами.
Эксперимент: противодействие детектированию
Цель эксперимента – продемонстрировать практическое применение рассмотренного способа противодействия детектированию вредоносных программ, основанного на методах криптографии с временным раскрытием.
При проведении эксперимента использовался онлайн-сервис «VirusTotal» (www.virustotal.com), предоставляющий сведения об исследовании присланного объекта различными антивирусными продуктами. На момент проведения эксперимента на сервисе«VirusTotal» были представлены 43 различных антивирусных продукта.
В рамках эксперимента были созданы следующие приложения:
Программа-инсталлятор, в одной из секций которой должна содержаться полезная нагрузка в виде набора данных, представляющего описанную выше задачу с временным замком. Это приложение выполняет функции по расшифровке полезной нагрузки и ее инсталляции в систему;
Приложение, генерирующее задачу с временным замком на основе выбранной вредоносной программы и внедряющее ее в программу-инсталляторв виде дополнительной секции данных.
Указанные приложения представляют собой исполнимые модули формата Portable Executable семейства операционных систем Windows, написанные на языке С++ и использующие интерфейсыWin32 API и библиотеку BigDigits, предоставляющую функционал арифметики многократной точности для работы с большими числами.
Программа-инсталлятор выполняет следующие шаги:
Вычисляет ключ шифрования;
Расшифровывает полезную нагрузку;
Записывает полезную нагрузку на жесткий диск;
Запускает записанный на шаге 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. Тестирование программы-инсталлятора с
Заключение
В данной работе была продемонстрирована возможность применения методов криптографии с временным раскрытием для эффективного противодействия проактивным технологиям детектирования вредоносных программ. Приведен простой способ превышения глубины анализа исследуемого приложения, позволяющий снизить «процент детектируемости» известных вредоносных программ.
Литература:
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.
Ebringer T. Anti-Emulation Through Time-Lock Puzzles // Second International CARO Workshop. —Hoofddorp, Netherlands, 2008. — 10 p.
Классификация именований вирусов по «Доктор Веб» [Электронный ресурс]. –Режим доступа: http://vms.drweb.com/classification/
Baumgartner K. AntiRE en Masse — Investigating Ferrie’s Documented AntiUnpacking Tricks in the World’s Worst Mal-Families // Virus Bulletin. — 2009.