Научная статья на тему 'Применение вычислительного кластера для уменьшения времени выполнения тестирования уязвимостей веб-сайтов'

Применение вычислительного кластера для уменьшения времени выполнения тестирования уязвимостей веб-сайтов Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
141
16
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ВЫЧИСЛИТЕЛЬНЫЙ КЛАСТЕР / РАСПАРАЛЛЕЛИВАНИЕ / ДИНАМИЧЕСКОЕ ТЕСТИРОВАНИЕ ВЕБ-САЙТОВ / MPI / HPC CLUSTER / PARALLELIZATION / DYNAMIC TESTING OF WEBSITES

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Астапенко Т.С.

Изложен результат сравнения времени выполнения инструмента тестирования веб-сайтов XssPy в различных режимах работы, в том числе с использованием вычислительного кластера. В ходе исследований был построен кластер, позволяющий запускать программы с использованием параллельных вычислений, что значительно увеличивает их скорость выполнения.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

USING HPC-CLUSTER TO REDUCE RUNTIME TESTING VULNERABILITIES OF WEBSITES

The article describes the result of comparing run-time testing of websites XssPy in various modes, including the use of a HPC cluster. During of the research a cluster is built that allows to run programs using parallel computing, which greatly increases their speed of execution.

Текст научной работы на тему «Применение вычислительного кластера для уменьшения времени выполнения тестирования уязвимостей веб-сайтов»

УДК 004.056

ПРИМЕНЕНИЕ ВЫЧИСЛИТЕЛЬНОГО КЛАСТЕРА ДЛЯ УМЕНЬШЕНИЯ ВРЕМЕНИ ВЫПОЛНЕНИЯ ТЕСТИРОВАНИЯ УЯЗВИМОСТЕЙ ВЕБ-САЙТОВ

Т. С. Астапенко

Сибирский государственный университет науки и технологий имени академика М. Ф. Решетнева Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 E-mail: tatyana.astapenko1995@gmail.com

Изложен результат сравнения времени выполнения инструмента тестирования веб-сайтов XssPy в различных режимах работы, в том числе с использованием вычислительного кластера. В ходе исследований был построен кластер, позволяющий запускать программы с использованием параллельных вычислений, что значительно увеличивает их скорость выполнения.

Ключевые слова: вычислительный кластер, распараллеливание, динамическое тестирование веб-сайтов, MPI.

USING HPC-CLUSTER TO REDUCE RUNTIME TESTING VULNERABILITIES OF WEBSITES

T. S. Astapenko

Reshetnev Siberian State University of Science and Technology 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: tatyana.astapenko1995@gmail.com

The article describes the result of comparing run-time testing of websites XssPy in various modes, including the use of a HPC cluster. During of the research a cluster is built that allows to run programs using parallel computing, which greatly increases their speed of execution.

Keywords: HPC cluster, parallelization, dynamic testing of websites, MPI.

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

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

В ходе работы был использован способ задействования мощностей путем распараллеливания инструмента тестирования с помощью интерфейса передачи сообщений MPI [2]. В качестве исследуемого инструмента был выбран XssPy [3]. Это инструмент, написанный на языке Python для поиска уязвимостей меж-сайтового скриптинга в веб-сайтах. Он сначала пере-

мещается по веб-сайту и ищет все ссылки и поддоме-ны, после этого начинает сканирование каждого ввода на каждой странице, которые найдены во время индексации. XssPy использует полезную нагрузку для поиска XSS уязвимостей.

В ходе работы сначала был построен кластер в Virtualbox с использованием виртуальных машин. Далее для достижения более существенного ускорения тестирования было необходимо построить либо большой кластер из реальных машин, либо с использованием облака. Изначально было принято решение о построении кластера в одном из корпусов Сибирского государственного университета науки и технологий имени академика М. Ф. Решетнева на испытательном стенде [4], но так как комплекс из достаточного количества компьютеров там развернуть было невозможно, то для работы использовались несколько арендованных серверов на сайте американского провайдера DigitalOcean с использованием облачных инфраструктур [5]. Оба кластера состояли из пяти компьютеров, на каждом из которых был установлен Debian 8.8, а также построена сеть с беспарольным доступом SSH и сетевым доступом к файловым системам с помощью протокола NFS [6]. Кластеры были успешно реализованы и протестированы, главным их отличием являлись вычислительные мощности кластера, поэтому в дальнейшем были получены разные результаты исследования инструмента тестирования.

Решетневские чтения. 2017

Domain = firstDomains firstDomains=[]

for j in range (rank*len(Domain)/size, (rank+1)*len(Domain)/size): firstDomains.append(Domain[J])

Рис. 1. Добавление в функцию initializeAndFind кода для разделения между процессами найденных страниц сайта

from urlparse import urlparse from mpi4py import MPI comm = MPI.COMM_WORLD rank = comm.Get_rank() size = comm.Get_size() start_time = time.time()

Рис. 2. Добавление библиотек и общих процедур

Рис. 3. Сравнение полученных данных

Далее код инструмента тестирования XssPy был распараллелен путём разделения между процессами найденных страниц сайта (рис. 1). Затем каждый из процессов проверял страницы на наличие уязвимости.

Для того чтобы распараллелить программу необходимо добавить библиотеку mpi4py и общие процедуры, которые необходимы практически в каждой параллельной программе: comm, rank и size (рис. 2), наличие init и finalize на языке Python необязательно. Также в код был добавлен счетчик для определения времени выполнения кода тестирования.

После распараллеливания XssPy был протестирован сайт с 456 ссылками и поддоменами в различных режимах работы: на одном компьютере без распараллеливания (1), на одном компьютере с распараллеливанием на 2 процесса (2), на одном компьютере с распараллеливанием на 3 процесса (3), на одном компьютере с распараллеливанием на 4 процесса (4), на одном компьютере с распараллеливанием на 5 процесса (5), на кластере из 2 компьютеров (2к), на кластере из 3 компьютеров (3к), на кластере из 4 компьютеров (4к) и на кластере из 5 компьютеров.

В ходе тестирования были получены данные, представленные на рис. 3.

Исходя из полученных данных, можно сделать вывод, что использование кластера для ускорения работы инструмента тестирования XssPy существенно улучшило время выполнения программы: в Virtualbox -в 4,4 раза, в DigitalOcean - в 5 раз.

Библиографические ссылки

1. Шудрак М. О., Золотарев В. В. Модель, алгоритмы и программный комплекс автоматизированного поиска уязвимостей в исполняемом коде // Труды СПИИРАН. 2015. № 5 (42). С. 212-231

2. Антонов А. С. Параллельное программирование с использованием технологии MPI. М. : Изд-во МГУ, 2004. 71 с.

3. XssPy Available at: https://github.com/faizann24/ XssPy (accessed: 13.04.2017).

4. Золотарева Е. Ю., Созин М. В. Разработка испытательного стенда для динамического тестирования программного обеспечения // Решетневские чтения : материалы XX Междунар. науч. конф. (09-12 ноября

2016, г. Красноярск) : в 2 ч. / под общ. ред. Ю. Ю. Логинова ; Сиб. гос. аэрокосмич. ун-т. Красноярск, 2016. Т. 2, № 20. С. 256-258.

5. DigitalOcean Cloud Computing [Электронный ресурс]. Available at: https://www.digitalocean.com (accessed: 18.05.2017).

6. Сбитнев Ю. И. Кластеры [Электронный ресурс]. URL: http://cluster.linux-ekb.info (дата обращения: 10.04.2017).

References

1. Shudrak M. O., Zolotarev V. V. Model, algorithm and program complex for the automated search for vulnerabilities in executable code. Proceedings of SPIIRAS. 2015. № 5 (42). P. 212-231. (In Russ.)

2. Antonov A. S. Parallel programming using MPI technology. M. : MGU, 2004. 71 p.

3. Sbitnev Yu. I. Clusters, Available at: http:// cluster.linux-ekb.info (accessed: 10.04.2017).

4. Zolotareva E. Yu., Sozin M. V. [Test stand development for dynamic software testing] // Мaterialy XV Mezhdunar. nauch. konf. "Reshetnevskie chteniya" [Materials XX Intern. Scientific. Conf "Reshetnev reading"]. Krasnoyarsk, 2016. T. 2. P. 256-258. (In Russ.)

5. DigitaIOcean Cloud Computing, Available at: https://www.digitalocean.com (accessed: 18.05.2017).

6. XssPy, Available at: https://github.com/faizann24/ XssPy (accessed: 13.04.2017).

© Астапенко Т. С., 2017

i Надоели баннеры? Вы всегда можете отключить рекламу.