Доклады, выступления, видео и электронные публикации

Обнаружение аномального поведения программ для дальнейшего использования при решении задачи защиты от вредоносного ПО

Существует множество способов защиты компьютерной системы [1], предназначенных для отражения атак на начальном этапе, но после того, как машина была заражена, вариантов обезвредить вредоносное ПО не так много [2]. В связи с тем, что злоумышленники используют средства необнаружения (обфускация, перепаковка, изменение сигнатур), а эвристические алгоритмы не точны по определению [3], поэтому использование антивирусов, применяющих сигнатурные методы, зачастую, не приносит должного результата [4].

Таким образом, становится ясно, что используя лишь антивирусное ПО невозможно обнаружить все активное вредоносное ПО на компьютерной системе. Ограниченные возможности антивирусов по обнаружению вредоносного ПО вызваны принципами, положенными в основу таких средств защиты информации: антивирусные программы опираются на «чёрные» списки, т.е. ведут базу потенциально опасного поведения программ. Программа блокируется всякий раз, когда пытается сделать что-то несоответствующее правилам безопасности системы [5]. Но возможно использовать и противоположный подход: создать «белый список», то есть попытаться определить правильные действия программы, а все действия, которые им не соответствуют, убрать. При таком подходе пользователь будет сильно ограничен в использовании ПО, но невозможно построить защищенную систему, в которой всем можно все. Рассмотрим возможность реализации подхода к обнаружению вредоносного ПО на основе «белых» списков.

Для реализации возможности проверки ПО на соответствие «белым» спискам, необходимо создать инструмент, позволяющий создавать и хранить снимки эталонного поведения программ. Также такой инструмент должен анализировать текущее поведение и сравнивать его с эталонным. При создании такого инструмента возникает необходимость в решении следующей задачи: анализ текущих действий программы и оценка соответствия между текущими действиями и эталонными, т.е. входящими в «белый» список. Такая задача называется «Novelty detection» (детектирование новизны) [6].

Решение задачи детектирования новизны относится к области машинного обучения. Алгоритмы моделей машинного обучения опираются на законы статистики [7], а одной из основных задач, которую решают специалисты по машинному обучению, является задача улучшения качества работы модели (повышение уровня классификации, усовершенствование генерации данных и т.п.). Методы зарекомендовали себя в областях, связанных с рекламой, генерацией новостных лент, анализа речи. Однако в области информационной безопасности они используются не так часто [8]. Анализируя работы и коммерческие решения в области защиты информации, использующие методы  детектирования новизны, можно заметить большой разрыв между технологиями, применяемыми и предлагаемыми [9 - 23]. Причина, по которой это происходит, кроется во внутреннем устройстве моделей. Модели, которые хорошо выполняют функцию детектирования новизны, представляют из себя «черный ящик», внутреннее устройство которого скрыто от наблюдателя. В связи с таким устройством возникают проблемы недостатка интерпретации и трудности тестирования. Недостаток интерпретации заключается в том, что модель не предоставляет объяснения своего действия. В контексте работы инструмента, реализующего подход «белых» списков, проблема будет в следующем: нельзя понять какие действия привели к блокированию программы во время ее выполнения, можно лишь утверждать, что действия не были похожи на эталонные. Также нельзя понять, какие действия программа осуществляла во время своего выполнения, если не была заблокирована, можно лишь утверждать, что они были похожи на эталонные.

Проблема тестирования обусловлена большим объемом обучающих данных. Для того чтобы модель работала правильно, необходимо ее протестировать. Из-за сложной структуры модели, внутреннее устройство которой не ясно, тяжело протестировать все возможные варианты ее работы. Это приводит к необнаружению уязвимостей, которые не были обнаружены во время тестирования. Например, в работе [24] авторы создают вредоносное ПО, не обнаруживаемое антивирусом, который работает на методах машинного обучения, за счет встраивания строки из компьютерной игры внутрь вируса.

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

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

Примером такого императивного определения смысла в области безопасности может быть сигнатура. Классическое определение сигнатуры – уникальная последовательность байтов, принадлежащая вредоносному ПО и не встречающаяся в других программах [25]. Каждая сигнатура характеризует отдельный вирус (класс вирусов) и сама по себе не имеет смысла, который может быть понятен человеку. Ситуация аналогичная буквам и словам. Каждый байт несет в себе некоторый смысл, но посмотрев на всю последовательность, очень тяжело предположить ее значение. Смысл сигнатуры происходит от вредоносного ПО, с помощью которого она была сделана. Таким образом, последовательностей байтов отождествляется с вредоносным воздействием, которое осуществляет ПО.

Необходимо найти способ упростить тестирование и увеличить интерпретируемость модели.

Для упрощения тестирования можно поступить следующим образом: разбить исходную эталонную последовательность некоторых элементарных единиц, которая была получена при анализе действий эталонной программы, на множество подпоследовательностей. Построить модели для каждой подпоследовательности и протестировать отдельно. Обученные модели будут гораздо проще, следовательно, при достаточной мелкости разбиения, каждую из них можно протестировать. Сложность тестирования суммы небольших моделей гораздо меньше, чем сложность тестирования одной большой модели [26]. Следовательно, уменьшится суммарная сложность тестирования всего инструмента, который будет использовать все модели.

Чтобы грамотно разбить последовательность, необходимо обратить внимание на устройство программы. Она представляет набор некоторых функций. На рисунке 1 изображено возможное функциональное разложение работы текстового редактора. Последовательность можно разделять на подпоследовательности, опираясь на то, какие функции программы они характеризуют. Например, исходную последовательность полученную от текстового редактора можно разбить следующим образом рисунок 1. Поскольку каждая функция несет в себе смысл, характеризуемый выполняемой операцией, подпоследовательность можно отождествить с этим смыслом. Таким образом, будет решена проблема интерпретации: во время выполнения программы инструмент сможет определять, какую функцию выполняет программа благодаря набору моделей, каждая из которых определяет одну функцию эталонной программы. В случае возникновения ситуации, когда программа ведет себя не в соответствии с белым списком, инструмент отдаст на анализ не всю последовательность, а только ее часть, которая не соответствует ни одной из функций. Анализ такой части намного легче, чем анализ всей последовательности.

1.png 

Рисунок 1 Функции редактора

Решение задачи разбиения выборки на отдельные функциональные подпоследовательности дает дополнительную гибкость в настройке политики безопасности. Понимая, какие функции выполнила программа, можно запрещать ту или иную последовательность действий пользователя КС. Например, рассмотрим компьютер, предназначенный для хранения и отправки на печать документов. Предположим, что после открытия файла пользователь КС начал редактирование текста. Инструмент, использующий множество обученных моделей, способен определить и уведомить администратора безопасности о том что происходит редактирование файла на КС. Таким образом, можно создавать разрешенные последовательности выполнения функций. Для вышеописанного примера, разрешенная последовательность следующая: открыть файл, отправить на печать, закрыть файл. Все остальные действия можно не разрешать.

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

Список литературы

  1. Ярочкин В. И. Безопасность информационных систем. М.: Известие Ось-89, 1996. – 320 с.
  2. Рудниченко А. К., Колесникова Д. С., Верещагина Е. А. Защита от вредоносного программного обеспечения, представляющего собой комплекс легитимных программных продуктов. [Электронный ресурс]. URL: https://cyberleninka.ru/article/n/zaschita-ot-vredonosnogo-programmnogoobespecheniya-predstavlyayusc.... (дата обращения: 25.05.2020)
  3. Вирусы, статистика и немного всего. [Электронный ресурс]. URL: https://habr.com/ru/post/357426/ (дата обращения: 04.05.2020)
  4. Positive Technologies. Инциденты в информационной безопасности крупных российских компаний. - 2018. [Электронный ресурс]. URL: https://www.ptsecurity.com/upload/corporate/ru-ru/analytics/PositiveResearch-2018-rus.pdf (дата обращения: 08.12.2019)
  5. Климентьев К. Е. Компьютерные вирусы и антивирусы: взгляд программиста. М.: ДМК-Пресс, 2015. – 213 с.
  6. Дьяконов А. Г. Поиск аномалий (Anomaly Detection). [Электронный ресурс]. URL: https://dyakonov.org/2017/04/19/%D0%BF%D0%BE%D0%B8%D1%81%D0%BA-%D0%B0%D0%BD%D0%BE%D0%BC%D0%B0%D0%BB%.... (дата обращения: 24.05.2020)
  7. Вьюгин В. В. Математические основы машинного обучения и прогнозирования. М.: МЦНМО, 2013. – 249 с.
  8. Простыми словами: как работает машинное обучение. [Электронный ресурс]. URL: https://www.kaspersky.ru/blog/machine-learningexplained/13605/ (дата обращения: 24.05.2020)
  9. Hofmeyr S. A., Forrest S., Somayaji A. Intrusion detection using sequences of system calls //Journal of computer security. – 1998. – Т. 6. – №. 3. – С. 151-180.
  10. Jha S., Tan K. M. C., Maxion R. A. Markov Chains, Classifiers, and Intrusion Detection //csfw. – 2001. – Т. 1. – С. 206.
  11. Hoang X. A., Hu J. An efficient hidden Markov model training scheme for anomaly intrusion detection of server applications based on system calls //Proceedings. 2004 12th IEEE International Conference on Networks (ICON 2004)(IEEE Cat. No. 04EX955). – IEEE, 2004. – Т. 2. – С. 470-474.
  12. Davis R. I. A., Lovell B. C., Caelli T. Improved estimation of hidden markov model parameters from multiple observation sequences //Object recognition supported by user interaction for service robots. – IEEE, 2002. – Т. 2. – С. 168-171.
  13. Hofmeyr S. A., Forrest S., Somayaji A. Intrusion detection using sequences of system calls //Journal of computer security. – 1998. – Т. 6. – №. 3. – С. 151-180.
  14. Maggi F., Matteucci M., Zanero S. Detecting intrusions through system call sequence and argument analysis //IEEE Transactions on Dependable and Secure Computing. – 2008. – Т. 7. – №. 4. – С. 381-395.
  15. Козачок А. В. Распознавание вредоносного программного обеспечения на основе скрытых марковских моделей. Автореф. дис. … канд. техн. наук. Воронеж: ВГТУ, 2012. – 206 с.
  16. Lavrentyev A. MLAD: Machine Learning for Anomaly Detection [Электронный ресурс]. URL: https://mlad.kaspersky.com/ (дата обращения: 04.05.2020)
  17. Baklanovsky, M. V., Khanov A. R., Komarov K. M., Lozov P. A. NauchnoTekhnicheskii Vestnik Informatsionnykh Tekhnologii, Mekhaniki i Optiki, Saint Petersburg: Vol. 16, Iss. 5, 2016 - 30 p.
  18. Сайт компании Cezurity. COTA. Обнаружение целенаправленных атак. [Электронный ресурс]. URL: https://www.cezurity.com/ru/products/business/cota#how (дата обращения: 04.05.2020)
  19. Open Distro for Elasticsearch. Anomaly Detection. [Электронный ресурс]. URL: https://opendistro.github.io/for-elasticsearch-docs/docs/ad/ (дата обращения: 04.05.2020)
  20. Сайт проекта Anomaly. Anomaly blog. [Электронный ресурс]. URL: https://anomaly.io/blog/index.html (дата обращения: 04.05.2020)
  21. Сайт проекта DataDog. Anomaly Monitor Overview [Электронный ресурс]. URL: https://docs.datadoghq.com/monitors/monitor_types/anomaly/ (дата обращения: 04.05.2020)
  22. Jason Brownlee. How to Decompose Time Series Data into Trend and Seasonality [Электронный ресурс]. URL: https://machinelearningmastery.com/decompose-time-series-data-trend-seasonality/ (дата обращения: 04.05.2020)
  23. Сайт компании Microsoft. API обнаружения аномалий в машинном обучении [Электронный ресурс]. URL: https://docs.microsoft.com/ru-ru/azure/machine-learning/teamdata-science-process/apps-anomaly-detect.... (дата обращения: 04.05.2020)
  24. Zetter K. Researchers Easily Trick Cylance’s AI-Based Antivirus Into Thinking Malware Is ’Goodware’ [Электронный ресурс]. URL: https://www.vice.com/en_us/article/9kxp83/researchers-easily-trickcylances-ai-based-antivirus-into-t.... (дата обращения: 04.05.2020)
  25. Сканер вирусов изнутри [Электронный ресурс]. URL: https://habr.com/ru/post/145948/ (дата обращения: 04.05.2020)
  26. Kim S. H. et al. Deep learning based on multi-decomposition for short-term load forecasting //Energies. – 2018. – Т. 11. – №. 12. – С. 3433.

Автор: Козак Р. А.

Дата публикации: 05.10.2020

Выходные данные: 13-15 сентября 2020 года, Московская область


Scientia potestas est
Кнопка связи