Научная статья на тему 'Практическая апробация фаззинга межсайтового скриптинга методом черного ящика к тестированию Интернет и Интранет приложений'

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

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

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

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

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

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

керами системы. В приемниках происходит обработка сигнала, заключающаяся в выделении разностной частоты между опорным сигналом анкера и принятым сигналом. Далее происходит обмен информацией между двумя анкерами, и вычисляется разность времени запаздывания между двумя опорными точками. При известном расстоянии между анкерами (база пеленга-ционной системы) по величине запаздывания определяется направление на метку. Наличие еще одной опорной точки позволяет определить местоположение метки пеленгационным методом в системе координат анкеров.

Данный принцип может быть реализован на цифровом сигнальном процессоре ADSP-2189M (Digital signal processor, DSP) компании Analog Devices.

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

1. Лёзин Ю.С. Введение в теорию и технику радиотехнических систем: учеб. пособие для вузов. - М.: Радио и связь, 1986. - 280 с.: ил.

2. Малышев А.В., Семенова А.Ю., Омельянчук Е.В. Обзор технологий позиционирования мобильных объектов в реальном времени // Журнал Наука. Технологии. Производство». - 2014. - № 3. - С. 115-118.

3. Гоноровский И.С. Радиотехнические цепи и сигналы: учебник для вузов. - М.: «Сов. радио», 1977. - 608 с.

4. Солонина А.И., Улахович Д.А., Яковлев Л.А. Алгоритмы и процессоры цифровой обработки сигналов. - СПб.: БХВ-Петербург, 2002. - 464 с.: ил.

ПРАКТИЧЕСКАЯ АПРОБАЦИЯ ФАЗЗИНГА МЕЖСАЙТОВОГО СКРИПТИНГА МЕТОДОМ ЧЕРНОГО ЯЩИКА К ТЕСТИРОВАНИЮ ИНТЕРНЕТ И ИНТРАНЕТ ПРИЛОЖЕНИЙ

© Полухин П.В.*

Воронежский государственный университет, г. Воронеж

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

* Аспирант кафедры Математических методов исследования операций.

Интернет-технологии - динамически развивающаяся система, которая за последние десять лет превратилась в интерактивную платформу разработки разнообразного программного обеспечения программного обеспечения, а также стала связующим звеном для взаимодействия классических настольных приложений. На сегодняшний день для разработки клиентской части приложений активно используется JavaScript, который поддерживается всеми веб-браузерами без исключения. Использование данного языка позволяет создавать сложные поведенческие программы, способные реагировать и обрабатывать большинство событий, возникающих при взаимодействии пользователя с графическими элементами веб-страницы. Однако с точки зрения безопасности приложений, повышенная интерактивность требует новых подходов к тестированию на предмет возникновения уязвимо-стей, поскольку широко используемый статический анализ веб-страниц становится малоэффективным.

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

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

Таблица 1

Сравнительная оценка достоинств и недостатков метода черного ящика

Характер влияния Название Сущность

Достоинства Доступность Тестирование методом черного ящика применимо всегда, и даже когда доступен исходный код.

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

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

Недостатки Охват кода Трудно однозначно сказать, когда необходимо завершить процесс тестирования и понять насколько тестирование эффективно

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

Рис. 1. Анализ алгоритма тестирования методом черного ящика

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

Адаптация данного алгоритма к специфике тестирования межсайтового скриптинга (XSS) подразумевает разбиение процесса тестирования на ряд этапов исходя и методик обнаружения данного рода уязвимостей. В рамках исследования предполагается использовать ряд тестов, сгруппированных исходя из типа XSS - отраженные, хранимые и DOM. Каждая тестовая подсистема обладает своим набором особенностей, как для генерации тестовых данных, так и для обнаружения данной группы уязвимостей.

Также в рамках исследования предполагается использовать набор популярных веб-браузеров (фабрику браузеров) Internet Explorer, Firefox, Google Chrome в качестве исполняемой среды для XSS уязвимостей. Данный подход максимально позволяет сымитировать реальные действия пользователя, а также определить возможные XSS вектора, специфические для определенной версии браузера или движка браузера, наиболее распространенные из которых получили WebKit, Gecko, Trident и Chromium. Весь процесс тестирования XSS уязвимостей может быть логически разделен на несколько этапов. Важность данного похода заключается в том, что каждый базарный движок имеет некоторые особенности в рамках синтаксического анализа веб-страниц html и каскадные таблиц стилей CSS, позволяя генерировать определнные тестовые данных, включая также стилевые фрагменты CSS в качестве вектора тестовых данных. Рассмотрим следующий фрагмент html страницы <link="stylesheet" href= "http://victim/xss.css">. Данный тэг содержит ссылку на файл таблицей стилей, который содержит XSS, однако успешно выполнится лишь в браузере Internet Explorer.

На первом этапе происходит формирование тестовых данных, при этом допускается использования различных методов преобразования, трансформации и кодирования тестовых данных для попытки преодоления механизмов фильтрации приложения, так и фреймворка, в случае, если приложение его использует, а также для преодоления программных компонентов защиты уровня веб-сервера таких как межсетевые экраны безопасности приложений (WAF).

На втором этапе происходит внедрение тестовых данных во входные параметры целевого приложения. Как правило, для поиска XSS уязвимо-стей целесообразно использовать методы GET и POST протокола HTTP, так как именно их поддерживает браузер в рамках генерации веб-форм.

На третьем этапе происходит детектирование и анализ целевой вебстраницы (страницы на которую выводятся результаты выполнения запроса) на предмет наличию одной из группы указанных ранее XSS уязвимо стей. Для более эффективного детектирования целесообразно использовать ряд оконных функций языка JavaScript, позволяющих создавать всплывающие сообщение, окна и вкладки. Использование данных функций с высокой достоверностью обнаружить уязвимость, а также оценить какие именно браузеры или браузерные движки подвержены данной группе XSS уязвимостей.

Четвертый этап подразумевает рекурсивное повторение вышеизложенных этапов для тестирования всех входных данных, что необходимо для комплексного охвата тестами всех параметров, которые могут быть использованы в качестве отправной точки проникновения в инфраструктуры интернет-приложения.

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

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

1. Sutton M. Fuzzing. Brute Force Vulnerability Discovery / M. Sutton, A. Greene, P. Amini. - Addison Wesley, 2007. - 527 p.

2. Takanen A. Fuzzing for Software Security Testing and Quality Assurance / A. Takanen, G DeMott, C. Miller. - Artech House, 2008. - 312 p.

3. Zalewski M. The Tangled Web. A Guide to Securing Modern Web Applications / M. Zalewski. - No starch Press, 2012. - 477 p.

4. Азарнова Т.В. Расширение функциональных возможностей фаззинга веб-приложений на основе динамических сетей Байеса I Т.В. Азарнова, П.В. Полухин II Научно-техническая информация. Сер. 2. Информ. процессы и системы. - 2014. - № 9. - С. 12-19.

5. Полухин П.В. Интеграция динамических байесовских сетей в процесс тестирования веб-приложений для выявления уязвимостей межсайтин-гового скриптинга I П.В. Полухин II Научное обозрение. - 2014. - № 9. -С. 414-422.

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