ON THE QUESTION OF DETECTION MALWARE THAT USE CUDA TECHNOLOGY


Cite item

Full Text

Abstract

The problem of detection malware that use NVIDIA graphic processing units and CUDA technology is considered. The signature-based method was used to solve the problem of mal-ware detection in the files. We designed and developed software that implements this method of malware detection. We also demonstrated its applicability to detection malware that use graphic processing units in their work.

Full Text

Введение В настоящее время все большую популярность набирает использование широко распространенных на пользовательских системах графических процессоров (GPU) для решения неграфических задач. Их использование позволяет в некоторых случаях существенно увеличить производитель ность вычислительной системы. Одним из популярных подходов к программированию GPU для таких задач является использование технологии CUDA (Compute Unified Device Architecture) -архитектуры параллельных вычислений от компании NVIDIA, которая позволяет реализовать многопоточные вычисления общего назначения на графических процессорах ее производства [1]. На сегодняшний день продажи графических процессоров с поддержкой CUDA достигли 128 миллионов. Тысячи разработчиков программного обеспечения, ученых и исследователей широко используют CUDA в различных областях, включая обработку видео, астрофизику, вычислительную биологию и химию, моделирование динамики жидкостей, электромагнитных взаимодействий, восстановление изображений, полученных путем компьютерной томографии, сейсмический анализ, трассировку луча и многое другое [2]. Графические процессоры добавляются в систему посредством установки графический платы (ви «Инфокоммуникационные технологии» Том 11, № 3, 2013 Мостовой Я. А., Рахмаев Д.М. 31 деокарты) или специализированной платы для параллельных вычислений в слот PCI Express. На современной графической плате располагается собственная быстрая память объемом 1-2 Гб. На специализированных графических платах объем памяти составляет 5-8 Гб. Таким образом, в современных компьютерных системах GPU является не только графическим процессором, но также и универсальным процессором для параллельных вычислений общего назначения, работающим с любыми приложениями. Учитывая большой потенциал вычислений общего назначения на графических процессорах, естественно ожидать, что авторы вредоносных программ попытаются использовать мощные возможности современных GPU к своей выгоде [3]. Два ключевых фактора, которые влияют на жизненный цикл и результативность сложных ВП, - это способность обходить существующую антивирусную защиту и трудозатраты, требуемые аналитику вредоносных программ для анализа и раскрытия их функциональности, что зачастую является необходимым условием для реализации соответствующих механизмов обнаружения и сдерживания. Упаковка и полиморфизм - это одни из наиболее используемых техник для уклонения от обнаружения сканерами антивирусов [4]. Запутывание кода и антиотладочные приемы обычно используются, чтобы затруднить реверс-инжиниринг и анализ вредоносного кода [5]. До сих пор эти техники уклонения от обнаружения и антиотладки использовали особенности наиболее распространенных сред исполнения кода. Следовательно, механизмы защиты и анализа вредоносных программ, а также знания и опыт исследователей в области безопасности сфокусированы на IA-32, архитектуре с наиболее распространенным набором инструкций (ISA). Появившаяся возможность исполнять код общего назначения на GPU открывает совершенно новое окно возможностей для разработчиков ВП, чтобы значительно осложнить работу существующим средствам защиты. В [6] было показано, что вычисления общего назначения на графических процессорах позволяют авторам вредоносных программ использовать преимущества GPU, установленных в современных персональных компьютерах, и увеличить стойкость их ВП против существующих систем защиты. Техники защиты кода, представленные в [6] - распаковка с использование GPU и полиморфизм во время выполнения, не только демонстрируют осуществимость создания ВП с поддержкой GPU, но также показывают большой потенциал вычислений общего назначения на GPU в повышении живучести и функциональности ВП. Мы говорим об этом, чтобы вслед за [6] подчеркнуть, что лучшее понимание наступательных возможностей атакующих может привести исследователей к созданию более эффективных и стойких систем защиты. Задачей данной статьи является представить один из методов решения описанной выше проблемы анализа и обнаружения исполняемых файлов ВП, использующих GPU сигнатурным методом. С целью демонстрации эффективности метода представляется проект и реализация программного средства, которое, используя сигнатурный метод, эффективно решает задачу обнаружения вредоносных программ, использующих GPU. Сигнатурный метод обнаружения файлов ВП, использующих GPU Рассматриваются вредоносные программы, использующие GPU, которые могут копировать себя в каждый исполняемый файл, который они заражают. Этот тип ВП размножает идентичные побайтовые копии себя раз за разом. Они могут быть детектированы поиском определенной строки байтов, называемой сигнатурой ВП, которая была ранее извлечена из тела ВП. Сигнатура ВП - это последовательность байтов, которая может быть найдена в коде ВП, но не может встретиться где-либо еще. Извлечение сигнатуры ВП представляет собой сложную работу. Аналитики вредоносных программ должны внимательно проанализировать тело ВП, чтобы извлечь ее сигнатуру. Когда появляются новые ВП, аналитик должен проанализировать инфицированный файл и обнаружить паттерн, или сигнатуру, этой вредоносной программы. После обнаружения сигнатуры различных ВП сохраняются в базу данных сигнатур антивирусной программы. Эта база данных с сигнатурами распространяется среди пользователей вместе с антивирусной программой. Антивирусная программа использует эти сигнатуры, чтобы просканировать уязвимую область компьютера (сюда включаются файлы, загрузочная запись, файлы документов с макросами и т.д.), чтобы обнаружить присутствие какой-либо из известных сигнатур. Если обнаруживается какая-либо из сигнатур ВП, то целевая программа считается зараженной, в противном случае незараженной. Хотя обнаружение сигнатур - это простой и надежный метод, он имеет ограничения, которые заключаются в том, что он может обнаруживать известные ВП, чьи сигнатуры уже извлечены и «Инфокоммуникационные технологии» Том 11, № 3, 2013 32 Мостовой Я. А., Рахмаев Д.М. включены в базу данных сигнатур антивирусной программы. Он не может обнаруживать вариации известных ВП, даже несмотря на то, что различия между сигнатурами могут быть очень невелики. Рис. 1. Последовательность этапов сигнатурного метода Исполняемый код распаковщика ВП для GPU как сигнатура ВП Авторы [6] привели серьезные доводы об опасном потенциале использования GPU во вредоносных программах, но не учли того факта, что сам исполняемый код распаковщика ВП для GPU может послужить сигнатурой, которая будет выявлена и использована аналитиком вредоносных программ. С точки зрения аналитика вредоносных программ, двоичный файл ВП, использующей GPU, содержит код, предназначенный для запуска на различных процессорах, как показано на рис. 2. Код для CPU (Подготовка и запуск кода для GPU, прием результатов, исполнение распакованного тела ВП) Код для GPU (Распаковка тела ВП на графическом процессоре) Тело ВП Во время своего исполнения вредоносная программа загружает зависимый от устройства код на GPU, выделяет область памяти, доступную и для CPU, и для GPU, инициализирует разделяемыми данными и планирует исполнение GPU кода. В зависимости от проекта поток управления может переключаться туда и обратно между CPU и GPU или параллельно выполняться на обоих процессорах. Однако до момента запуска исполняемый файл вредоносной программы - самый обычный файл, и его можно просканировать на предмет наличия сигнатур ВП. Если исполняемый код процедуры распаковки вредоносной программы на GPU возможно обнаружить, то вирусному аналитику нет необходимости знать, что и каким именно образом делает процедура распаковки, работающая на графическом процессоре. Не нужно производить пошаговое выполнение и динамическое дизассемблирование GPU кода, не нужны виртуальные машины и эмуляторы GPU, достаточно просто знать, что процедура распаковки есть, и выделить из нее сигнатуру. Таким образом, без использования сложных приемов и необходимости трудоемкой отладки GPU-кода проблема обнаружения вредоносных программ, использующих GPU, может быть решена путем обнаружения сигнатуры GPU-распаковщика. Реализация сигнатурного метода сканирования файлов ВП, использующих GPU Был спроектирован и реализован прототип файлового антивирусного сканера, реализующий сигнатурный метод обнаружения (см. рис. 3). [^Администратор: C:\Wjndow5\Sy5teiii32\cmd. d:\trip\nalware_scannerJSignatureScanning.exe nd5.exe nd5clsn.exe nd5g.exe nd5gcl sn.exe MonteCanloSinulator.exe SelfUnpackep.exe Сканер врепоносного ПО использующего GPU Сканирую md5.exe... OK Сканирую md5clsn.exe... OK Сканирую md5g.exe... OK Сканирую md5gclsn.exe... OK Сканирую MonteCarloSimulatoi'.exe... OK Сканирую SelfUnpacker.exe... ИНФИЦИРОВАН? d:\trip\nalware_scanner>_ Рис. 2. Двоичный файл ВП, использующей GPU Рис. 3. Результат работы антивирусного сканера, способного обнаруживать ВП, использующие GPU Полученный прототип демонстрирует применимость сигнатурного метода обнаружения к ВП, использующим GPU. При некоторых доработках он может быть использован для поиска подобных вредоносных программ в рабочих системах. Также он может стать частью более сложной системы обнаружения существующих и будущих угроз со стороны ВП. «Инфокоммуникационные технологии» Том 11, № 3, 2013 Мостовой Я. А., Рахмаев Д.М. 33 Недостатки сигнатурного метода обнаружения ВП и дальнейшие исследования Как упоминалось выше, сигнатурный метод анализа имеет и свои недостатки. Один их худших из них - это задержка по времени между созданием ВП и его обнаружением. Так как сигнатурный метод требует выполнения процесса выявления сигнатуры, распространения базы сигнатур среди пользователей и постоянного обновление этой базы, новые ВП, еще не включенное в базу, могут успеть распространиться и нанести значительный ущерб. Чем выше задержка, тем более вероятно возникновение эпидемий вредоносных программ. Этот недостаток преодолевается использованием техник автоматического выделения сигнатур, добавлением сигнатур пользователями антивирусов, регулярного автоматического обновления баз с сигнатурами ВП через Internet. Однако в любом случае задержка до появления сигнатур ВП в базах будет существовать. И чем сложнее вредоносная программа, тем больше времени понадобится аналитикам ВП на выявление сигнатуры. В [6] показано, что использование графических процессоров и наиболее распространенной технологии их программирования CUDA может серьезно усложнить и замедлить анализ ВП. К тому же авторы вредоносных программ могут попытаться применить и уже известные техники, и возможности GPU с целью построения полностью полиморфных образцов ВП. Такие ВП не могут быть обнаружено сигнатурными методами, так как постоянных сигнатур не имеют. Изучение подобных вредоносных программ, разработка методов их анализа и обнаружения будет предметом дальнейших исследований. Лучшее понимание наступательных возможностей ВП, использующих GPU, может привести исследователей к созданию более эффективных и стойких систем защиты. Заключение Показано, что сигнатурный метод обнаружения ВП может быть применен в решении проблемы анализа и обнаружения файлов вредоносных программ, использующих GPU. К этим ВП метод применяется путем использования в качестве сигнатуры GPU-кода распаковщика тела ВП. Применение сигнатурного метода в этом случае позволяет избежать необходимости решать трудоемкие и сложные проблемы, связанные с анализом GPU-кода, а именно: производить пошаговое выполнение и динамическое дизассемблирование GPU-кода, разрабатывать и использовать виртуальные машины и эмуляторы GPU. Эффективность метода продемонстрирована на примере программного средства, реализующего сигнатурный метод, которое решает задачу обнаружения ВП, использующих GPU. Рассмотрены недостатки сигнатурного метода, намечен
×

References

  1. Сандерс Дж., Кэндрот Э. Технология CUDA в примерах. Введение в программирование графических процессоров. Пер. с англ. М.: ДМК Пресс, 2011. - 232 с.
  2. Что такое CUDA // http://www.nvidia.ru/ /object/ what_is_cuda_new_ru.html
  3. Reynaud D. GPU Powered Malware. // Ruxcon 2008 // http://2008.ruxcon.org.au/files/2008/ reynaud_slides.pdf
  4. Szor P. The Art of Computer Virus Research and Defense. Addison-Wesley Professional, 2005. -744 p.
  5. Ferrie P. Anti-Unpacker Tricks. // 2nd International CARO Workshop, 2008 // http://pferrie. tripod.com/papers/unpackers.pdf
  6. Vasiliadis G., Polychronakis M., Ioannidis S. GPU-Assisted Malware. // 5th International Conference on Malicious and Unwanted Software (MALWARE), 2010. - P. 1-6.

Supplementary files

Supplementary Files
Action
1. JATS XML

Copyright (c) 2013 Mostovoi J.A., Rakhmaev D.M.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.

This website uses cookies

You consent to our cookies if you continue to use our website.

About Cookies