Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Идея самовоспроизводящейся компьютерной программы восходит к первоначальным теориям о работе сложных автоматов. [1] Джон фон Нейман показал, что теоретически программа может воспроизводить себя. Это составляло правдоподобный результат в теории вычислимости . Фред Коэн экспериментировал с компьютерными вирусами и подтвердил постулат Неймана, а также исследовал другие свойства вредоносных программ, такие как обнаруживаемость и самообфускация с использованием элементарного шифрования. Его докторская диссертация 1988 г. была посвящена компьютерным вирусам. [2]

Консультант Коэна Леонард Адлеман представил строгое доказательство того, что в общем случае алгоритмическое определение наличия вируса неразрешимо . [3] Эту проблему не следует путать с проблемой определения в широком классе программ отсутствия вируса. Эта задача отличается тем, что не требует способности распознавать все вирусы.

Доказательство Адлемана, возможно, является самым глубоким результатом теории вычислимости вредоносных программ на сегодняшний день, и оно опирается на диагональный аргумент Кантора, а также на проблему остановки . По иронии судьбы, позже Янг и Юнг показали, что работа Адлемана в области криптографии идеально подходит для создания вируса, который обладает высокой устойчивостью к обратному проектированию, представляя понятие криптовируса . [4] Криптовирус - это вирус, который содержит и использует открытый ключ и случайно сгенерированный вектор инициализации симметричного шифра (IV) и сеансовый ключ (SK).

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