Библиографическое описание:

Полухин П. В. Анализ особенностей использования фаззинга как инструмента тестирования межсетевых экранов безопасности веб-приложений [Текст] // Технические науки: проблемы и перспективы: материалы II междунар. науч. конф. (г. Санкт-Петербург, апрель 2014 г.). — СПб.: Заневская площадь, 2014. — С. 12-15.

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

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

Ключевые слова: межсетевой экран безопасности веб-приложений, фильтрация, угрозы безопасности веб-приложений, веб-технологии, http параметры, веб-сервер, информационные технологии.

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

Архитектура построения и функционирования веб-приложений представляет собой довольно сложный процесс, который может включать в себя отдельные компоненты, способные объединяться в различные цепочки для реализации и наращивания функционала приложений. В качестве компонентов могут выступать системы управления базами данных (СУДБ), XML хранилища [1], системы упрощённого доступа к каталогам (LDAP) и файловая система сервера, в среде которого функционирует приложения. Исходя из данных компонентов, возникают уязвимости на серверах и на стороне клиента. К уязвимостям на стороне сервера принято относить группу уязвимостей типа инъекции. В данной группе принято выделять следующие компоненты: SQL инъекции, XPATH, LDAP инъекции. SQL инъекции направлены на реализацию деструктивного воздействия на СУДБ. XPATH преследуют своей задачей получение несанкционированного доступа к данным в XML формате. LDAP инъекции направлены на осуществление несанкционированного доступа к файловой системе сервера приложений инъекции команд операционной системы для получения доступа к внутренним командам и функциональным возможностям операционной системы сервера приложений. К уязвимостям на стороне клиента принято относить XSS уязвимости (межсайтовый скриптинг). Это одна из многочисленных уязвимостей, используя которую, злоумышленник может внедрить в генерируемую динамически страницу произвольный код [3, 4, 5].

Для защиты от вышеизложенных групп атак ведущими компаниями по разработке программных продуктов в сфере информационной безопасности, таких как IBM, Microsoft, Akamai, TrustWave, CloudFlare и др. были разработаны межсетевые экраны безопасности веб-приложений (именуемые WAF). WAF позволяют отслеживать параметры HTTP запросов и осуществлять их фильтрацию для своевременного блокирования механизмов эксплуатации уязвимостей со стороны злоумышленника. Однако, в ходе тестирования специалистами-экспертами в области защиты информации, был предложен совершенно новый методологический подход, позволяющий обходить ограничения WAF за счет использования специфических особенностей функционирования веб-приложений и веб-серверов путем смешивания HTTP параметров (HTTP Parameter Pollution).

Согласно международному стандарту RFC3986 [2], разработанного W3C консорциумом, параметрами HTTP-запроса являются пары, состоящие из ключа и значения, разделенные символом «. Границы параметров в свою очередь определяются с помощью символов « и «;». Однако стандарт не запрещает многократное использование одинаковых имен в HTTP-запросах, что и послужило основным вектором воздействия для реализации HTTP Parameter Pollution. Для обхода фильтров безопасности и waf HPP может использовать различные механизмы кодирования – URL Encoding, UTF-8, HTML Entity, HTML Entity Number, Double URL Encoding. Цель данных механизмов скрыть параметры от WAF и дать их на обработку исключительно веб-серверу, без изучения их внутреннего информативного содержания.

Для более детального и всестороннего понимания внутренних механизмов HTTP Parameter Pollution (HPP) нами предлагается в таблице 1 сравнительный анализ механизмов обработки HTTP параметров для каждой веб-технологии и веб-сервера.

Таблица 1

Сравнительный анализ специфики обработки HTTP параметров для веб-технологий и веб-серверов

Название технологии/ HTTP сервер

Характеристика достигнутого результата

Иллюстрирующий пример

ASP.NET/IIS

Объединяться все значение параметров через символ «,»

par1 = val1,val2

ASP/IIS

Объединяться все значение параметров через символ «,»

par1 = val1,val2

PHP/Apache

Значение последнего вхождения параметра

par1 = val2

PHP/Zeus

Значение последнего вхождения параметра

par1 = val2

JSP, Servlet/Apache Tomcat

Значение первого вхождения параметра

par1 = val1

JSP, Servlet/Oracle Application Server 11g

Значение первого вхождения параметра

par1 = val1

JSP, Servlet/Jetty

Значение первого вхождения параметра

par1 = val1

IBM Lotus Domino

Значение последнего вхождения параметра

par1 = val2

IBM HTTP Server

Значение первого вхождения параметра

par1 = val1

Perl CGI/Apache

Значение первого вхождения параметра

par1 = val1

mod_perl,libapreq2/Apache

Значение первого вхождения параметра

par1 = val1

Python/Zop

Массив параметров

[‘val1’, ‘val2’]

IceWarp

Значение первого вхождения параметра

par1 = val1

Анализируя данные таблицы 1, видно, что определенная технология во взаимодействии с веб-сервером обрабатывают параметры запросов по разному, однако дают возможность изменения как логики функционирования приложения, так и внедрения инъекции. Например, межсетевые экраны безопасности веб-приложений WAF заблокируют атаку типа http://www.site.com/index.aspx?id=select 1,2,3 from table where id=1, однако используя HPP механизмы мы можем провести атаку типа http://www.site.com/index.aspx?id=select 1&id=2&id=3 from table where id=1 для спецификации ASP.NET/IIS и ASP/IIS и таблицы 1. В результате вышеприведенного запроса параметры оператора SELECT будут объединены символом «,», что и требуется для эффективной эксплуатации уязвимости в данном случае sql.

Механизмы смешивания HTTP параметров (HPP), как было отмечено нами ранее, могут использоваться на стороне пользователя путем эксплуатации XSS уязвимости. В связи с этим, HPP на стороне клиента можно разделить на три основные категории: DOM Based HPP, использующая HTML DOM для конструирования HPP, Reflective HPP – позволяет использовать другие механизмы доставки вредоносного кода пользователю, например через сообщение электронной почты или другой сайт и Stored HPP – использует в качестве хранилища вредоносного кода различные виды хранилищ целевого сервера: в базе данных, сообщениях различных форумов, журналах, комментариях и т.д. При запросе пользователем веб-страницы вредоносный код извлекается и вставляется в HTML разметку документа и в последствии выполняется в браузере пользователя.

В результате детального исследования HPP, учеными в сфере безопасности информации был предложен метод, позволяющий расширить возможности HPP. Он получил название HTTP Parameter Contamination (запутывание HTTP параметров). Специфика метода, лежащего в основе запутывания HTTP параметров, базируется на особенностях обработки отдельных символов параметров HTTP запроса. Для всестороннего анализа вышеизложенного метода необходимо представить сравнительную характеристику обработки символов для различных веб-технологий и веб-серверов, что предложено нами в таблице 2.

Таблица 2

Специфика обработки отдельных символов HTTP параметров для веб-технологий и веб-серверов

Запрос

PHP/Apache

JSP,Servler/

Tomcat

ASP.NET,

ASP/IIS

Описание

А

1

2

3

4

?test[1=2

test_1=2

test[1=2

test[1=2

квадратная скобка заменена на подчеркивание

?test.1=2

test_1=2

test.1=2

test.1=2

точка заменена на подчеркивание

?test[1&d=2

d=2

test[1/d=2

test[1&d=2

первый параметр игнорируется, разделитель параметров заменен на обратный слеш

?test1[]xx=2

1=Array(2)

1[]xx=2

[]xx=2

символы между знаком массива и знаком равно игнорируются

?test+d=1+2

test_d=1 2

test d=1 2

test d=1 2

плюс заменяется на подчеркивание, пробел

А

1

2

3

4

?test d=1+2

test_d=1 2

test d=1 2

test d=1 2

пробел заменяется на подчеркивание

?test=%

test=%

NULL

test=

jsp и asp игнорируют параметр

?test%x=1

test%x=1

NULL

testx=1

jsp игнорирует параметр, asp игнорирует знак процента

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

Проектирование и поддержание приложения в защищенном состоянии являются неотъемлемыми этапами жизненного цикла приложения, при этом важно анализировать и учитывать особенности обработки параметров для каждой веб-технологии и веб-серверов с целью грамотного написания компонентов фильтрации, направленных на предупреждения деструктивного воздействия. Необходимо понимать, что межсетевые экраны безопасности не могут гарантировать полную безопасность веб-приложений и ни в коем случае не говорит о том, что не нужно разрабатывать механизмы обеспечения безопасности в самом приложении. Проведение атаки HTTP Parameter Pollution еще раз доказывает факт, что WAF лишь должна быть надстройкой над сложной и комплексной системой безопасности разрабатываемого приложения, а не ее заменой, в противном случае эффективности данного типа атаки увеличиваются.

Литература:

1.                  Clarke J. Sql Injection Attack and defense / J. Clarke, Syngress, 2009. – 380 p.

2.                  Harper A. Gray Hat Hacking. The Ethnical Hacker’s Handbook / A. Harper, H. Harris, J. Ness, C. Eagle, J. Lenkey, T. Williams. – US: Mc Graw Hill, 2011. – 693 p.

3.                  Scambray J, Schema M. Hacking Exposed Web Applications / J. Scambray, M Schema / McGraw-Hill, 2002. –558 p.

4.                  Stuttard D, Pinto M. The Web Applications Hackers Handbook/ D. Stuttard, M. Pinto / WILEY. – 2008 – 400 p.

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

Обсуждение

Социальные комментарии Cackle