Введение 4
1. Обзор 6
1.1. Существующие решения 6
1.1.1. Сторонние компании 6
1.1.2. Прототип 7
1.2. Системы для организации распределенных вычислений 7
1.2.1. На основе систем добровольных вычислений 9
1.2.2. На основе облачных вычислений 10
1.2.3. На основе систем для работы с большими данными 10
1.2.4. На основе непрерывной интеграции 11
1.3. Berkeley Open Infrastructure for Network Computing 12
1.3.1. Архитектура 12
1.3.2. Устройство сервера 13
1.3.3. Структура заданий 15
1.3.4. Обработка заданий 17
1.3.5. Устройство клиента 19
2. Описание решения 22
2.1. Сервер 22
2.2. Клиентское приложение 23
2.3. Приложение на виртуальной машине 24
3. Эксперименты 26
4. Заключение 28
Список литературы 29
Борьба с вредоносными программами - одна из самых острых проблем компьютерной безопасности. Каждый день появляется около 332 тыс. уникальных вредоносных объектов [5]. Для борьбы с ними чаще используют так называемый сигнатурный подход. Он заключается в анализе существующих угроз и поиске шаблонов атак: ищутся известные файлы компьютерных вирусов, опасные сетевые пакеты, блокируются известные вредоносные воздействия на систему. Однако с появлением новейших видов вредоносного ПО сигнатурные методы противодействия все больше показывают свою неэффективность и технологическое отставание. Они позволяют противостоять лишь известным, старым угрозам. Существуют и другие методы борьбы с вредоносными программами. Например, методы, основанные на поиске аномалий в работе программ.
Для проверки эффективности алгоритмов обнаружения вредоносных программ используются системы массового запуска внутри виртуальных машин, изолированных от внешнего мира. Такие тесты проводятся, например, компаниями, занимающиеся аналитикой и тестированием антивирусных защит [10].
Целью данной бакалаврской работы является создание подобной системы, позволяющей эффективно тестировать алгоритмы обнаружения вредоносных программ. Планируется использовать ее, главным образом, для проекта КОДА [1] - это система противодействия вредоносным программам, разрабатываемая с 2009 г. на кафедре системного программирования СПбГУ. Проведенные эксперименты показали, что алгоритмы КОДА позволяют выявлять вредоносную активность. На данный момент, основной задачей проекта является разработка способа оценки степени угрозы потока процесса по характеристикам, полученным с помощью этих алгоритмов. Для этого решено использовать алгоритмы машинного обучения. Таким образом, необходимо провести большое количество тестов, чтобы получить выборку исходных данных для обучения.
Ручное тестирование методов борьбы с вредоносными воздействиями очень затратная по времени задача. Был создан прототип системы тестирования (разд. 1.1.2), однако, даже с использованием нескольких потоков, этот процесс занимает существенное время. Необходимо масштабировать систему тестирования для работы на нескольких компьютерах. Для решения этой задачи применяются распределенные вычисления [17].
Таким образом, можно выделить следующие задачи:
• Провести масштабирование системы
• Улучшить существующую систему
• Протестировать систему под нагрузкой
В рамках данной работы были получены следующие результаты.
• Произведено масштабирование системы. Скорость тестирования возросла пропорционально числу узлов в распределенной сети.
• Система доработана.
• Проведено тестирование системы.
Все цели были достигнуты, а задачи выполнены.
В качестве дальнейшего развития, можно различными способами улучшать реализованную тестирующую систему, масштабировать ее на более серьезные производительные мощности, тестировать с помощью нее новые алгоритмы обнаружения и получать более состоятельные результаты.
Данная работа была представлена на Всероссийской научной конференции по проблемам информатики СПИСОК 2016 [7].
[1] Баклановский Максим Викторович, Ханов Артур Рафаэльевич. Поведенческая идентификация программ // Моделирование и анализ информационных систем. — 2014. —Vol. 21, no. 6. — P. 120— 130.
[2] Алпатов А. Н. Цветков В. Я. Проблемы распределенных систем // Перспективы науки и образования. — 2014.—no. 6 (12).
[3] Таненбаум Э. ван Стеен М. Распределенные системы. Принципы и парадигмы. — СПб: Питер, 2003. — 880 с.
[4] М.С. Косяков. Введение в распределенные вычисления. — Санкт- Петербург: НИУ ИТМО, 2014.-155 с.
[5] Статистика Лаборатории Касперского. — 2015. — URL: https:// securelist.ru/analysis/ksb/27543/ (дата обращения: 2016-05-01).
[6] К.М. Комаров. Система автоматизированного массового тестирования проекта CODA // - Математико-механический факультет СПБГУ. — 2015.— URL: http://se.math.spbu.ru/SE/YearlyProjects/ 2015/YearlyProjects/2015/344/344-Komarov-report.pdf (дата обращения: 2016-05-01).
[7] Комаров К.М. Распределенная система автоматизированного тестирования алгоритмов обнаружения вредоносных программ // СПИСОК-2016: Материалы всероссийской научной конференции по проблемам информатики.—2016.
[8] Тесты антивирусов 2016 - Anti-Malware.ru.—URL: http://www. anti-malware.ru/antivirus_tests (дата обращения: 2016-05-01).
[9] Официальный сайт BOINC // https://boinc.berkeley.edu/.— URL: https://boinc.berkeley.edu/ (дата обращения: 2016-05-01).
[10] AV-Comparatives Real-World Protection Test. — URL: http://www. av-comparatives.org/dynamic-tests/ (дата обращения: 2016-0501).
[11] Computing with BOINC. — URL: http://boinc.berkeley.edu/ trac/wiki/ProjectMain (дата обращения: 2016-05-01).
[12] Coulouris George F, Dollimore Jean, Kindberg Tim. Distributed systems: concepts and design. — pearson education, 2005.
[13] Giorgino Toni, Harvey Matt J, De Fabritiis Gianni. Distributed computing as a virtual supercomputer: Tools to run and manage large-scale BOINC simulations // Computer Physics Communications. — 2010. — Vol. 181, no. 8. —P. 1402-1409.
[14] Legion: An extensible lightweight web framework for easy BOINC task submission, monitoring and result retrieval using web services / Genghis Rios, Oscar Diaz, Pablo Fonseca et al. — 2014.
[15] Marz Nathan, Warren James. Big Data: Principles and best practices of scalable realtime data systems. — Manning Publications Co., 2015.
...