Исследование вредоносного ПО - Malware research
Идея самовоспроизводящейся компьютерной программы восходит к первоначальным теориям о работе сложных автоматов.[1] Джон фон Нейман показал, что теоретически программа может воспроизводить сама себя. Это составляло правдоподобный результат в теория вычислимости. Фред Коэн экспериментировал с компьютерными вирусами и подтвердил постулат Неймана, а также исследовал другие свойства вредоносных программ, такие как обнаруживаемость и самообфускация с использованием элементарного шифрования. Его докторская диссертация 1988 г. была посвящена компьютерным вирусам.[2]
Советник Коэна, Леонард Адлеман, представили строгое доказательство того, что в общем случае алгоритмическое определение наличия вируса неразрешимый.[3] Эту проблему не следует путать с проблемой определения в широком классе программ отсутствия вируса. Эта задача отличается тем, что не требует способности распознавать все вирусы.
Доказательство Адлемана, пожалуй, самый серьезный результат в области вредоносного ПО теория вычислимости на сегодняшний день, и он полагается на Диагональный аргумент Кантора так же хорошо как проблема остановки. По иронии судьбы, позже Янг и Юнг показали, что работа Адлемана в криптография идеально подходит для создания вируса, который обладает высокой устойчивостью к обратному проектированию, представляя понятие криптовирус.[4] Криптовирус - это вирус, который содержит и использует открытый ключ и генерируется случайным образом. симметричный шифр вектор инициализации (IV) и ключ сеанса (СК).
В атаке с криптовалютным вымогательством гибрид вируса шифрует простой текст данные на машине жертвы с использованием случайно сгенерированных IV и SK. Затем IV + SK шифруются с помощью вирусописателя. открытый ключ. Теоретически жертва должна договориться с вирусописателем, чтобы вернуть IV + SK и расшифровать вирус. зашифрованный текст (при условии, что резервных копий нет). Анализ вируса выявляет открытый ключ, а не IV и SK, необходимые для расшифровки, или закрытый ключ, необходимый для восстановления IV и SK. Этот результат впервые показал, что теория сложности вычислений могут использоваться для разработки вредоносных программ, устойчивых к обратному проектированию.
Растущей областью исследований компьютерных вирусов является математическое моделирование инфекционного поведения червей с использованием таких моделей, как Уравнения Лотки – Вольтерра, который был применен при изучении биологического вируса. Исследователи изучали различные сценарии распространения вирусов, такие как распространение компьютерных вирусов, борьба с вирусом с помощью вирусов, подобных кодам хищников,[5][6] эффективность исправления и т. д.
Обнаружение поведенческих вредоносных программ было исследовано совсем недавно. Большинство подходов к обнаружению поведения основаны на анализе системный вызов зависимости. Выполняемый двоичный код отслеживается с помощью Strace или точнее анализ загрязнения для вычисления зависимостей потока данных между системные вызовы. В результате ориентированный граф такие, что узлы системные вызовы, а края представляют зависимости. Например, если результат возвращен системным вызовом (либо напрямую в результате, либо косвенно через выходные параметры) позже используется как параметр системного вызова . Истоки идеи использования системных вызовов для анализа программного обеспечения можно найти в работе Форреста и др.[7] Christodorescu et al.[8] Отметим, что авторы вредоносных программ не могут легко изменить порядок системных вызовов без изменения семантики программы, что делает графы зависимостей системных вызовов подходящими для обнаружения вредоносных программ. Они вычисляют разницу между графиками зависимостей системных вызовов вредоносных программ и хороших программ и используют полученные графики для обнаружения, достигая высоких показателей обнаружения. Колбич и др.[9] предварительно вычислить символические выражения и оценить их по параметрам системного вызова, наблюдаемым во время выполнения.
Они обнаруживают зависимости, наблюдая за тем, соответствует ли результат, полученный при оценке, значениям параметров, наблюдаемым во время выполнения. Вредоносное ПО обнаруживается путем сравнения графиков зависимостей обучающего и тестового наборов. Fredrikson et al.[10] описать подход, который раскрывает отличительные особенности в графах зависимостей системных вызовов вредоносных программ. Они извлекают важные модели поведения, используя анализ концепции и скачок майнинга.[11] Бабич и др.[12] недавно предложил новый подход к обнаружению и классификации вредоносных программ на основе грамматический вывод из древовидные автоматы. Их подход предполагает автомат из графов зависимостей, и они показывают, как такой автомат можно использовать для обнаружения и классификации вредоносных программ.
В настоящее время также проводятся исследования по объединению методов статического и динамического анализа вредоносных программ с целью минимизировать недостатки обоих. Исследования таких исследователей, как Islam et al.[13] работают над интеграцией статических и динамических методов, чтобы лучше анализировать и классифицировать вредоносные программы и варианты вредоносных программ.
Смотрите также
использованная литература
- ^ Джон фон Нейман, "Теория самовоспроизводящихся автоматов", Часть 1: Стенограммы лекций, прочитанных в Университете Иллинойса, декабрь 1949 г., редактор: А. В. Беркс, Университет Иллинойса, США, 1966 г.
- ^ Фред Коэн, «Компьютерные вирусы», докторская диссертация, Университет Южной Калифорнии, ASP Press, 1988.
- ^ Л. М. Адлеман, «Абстрактная теория компьютерных вирусов», «Достижения в криптологии» --- Crypto '88, LNCS 403, стр. 354-374, 1988.
- ^ А. Янг, М. Юнг, "Криптовирология: угрозы безопасности и меры противодействия вымогательству", Симпозиум IEEE по безопасности и конфиденциальности, стр. 129-141, 1996.
- ^ Х. Тойоидзуми, А. Кара. Хищники: добрая воля Мобильные коды в борьбе с компьютерными вирусами. Proc. семинара 2002 г. по новым парадигмам безопасности, 2002 г.
- ^ Закия М. Тамими, Джавед И. Хан, Модельный анализ двух боевых червей, IEEE / IIU Proc. of ICCCE '06, Куала-Лумпур, Малайзия, май 2006 г., том I, стр. 157-163.
- ^ С. Форрест, С. А. Хофмейр, А. Сомаяджи, Т. А. Лонгстафф, Томас А. Чувство собственного достоинства для процессов Unix, Proc. из IEEE Symp. о безопасности и конфиденциальности, 1996, стр. 120-129.
- ^ М. Христодореску, С. Джа, К. Крюгель: Спецификации вредоносного поведения майнинга, Proc. 6-го совместного заседания Европейской конф. и симпозиум ACM SIGSOFT. по Основам программной инженерии, 2007, с. 5-14
- ^ К. Колбич, П. Милани, К. Крюгель, Э. Кирда, X. Чжоу и X. Ван: Эффективное и действенное обнаружение вредоносного ПО на конечном узле, 18-й симпозиум по безопасности USENIX, 2009 г.
- ^ М. Фредриксон, С. Джа, М. Христодореску, Р. Зайлер и X. Ян: Синтез почти оптимальных спецификаций вредоносных программ на основе подозрительного поведения, Proc. симпозиума IEEE по безопасности и конфиденциальности 2010 г., 2010 г., стр. 45-60.
- ^ X. Янь, Х. Ченг, Дж. Хан и П. С. Ю: Извлечение значимых графических паттернов с помощью поиска в прыжке в материалах Международной конференции ACM SIGMOD по управлению данными 2008 г. (SIGMOD’08). Нью-Йорк, Нью-Йорк, США: ACM Press, 2008, стр. 433-444.
- ^ Д. Бабич, Д. Рейно и Д. Сонг: Анализ вредоносных программ с помощью вывода древовидных автоматов, в материалах 23-го Междунар. Конференция по компьютерной проверке, 2011, Springer.
- ^ Р. Ислам, Р. Тиан, Л. М. Баттен и С. Верстег: Классификация вредоносных программ на основе интегрированных статистических и динамических функций, Журнал сетевых компьютерных приложений, 2013 г., стр. 646-656.