Анализ особенностей использования фаззинга как инструмента тестирования межсетевых экранов безопасности веб-приложений
Автор: Полухин Павел Валерьевич
Рубрика: 1. Информатика и кибернетика
Опубликовано в
Дата публикации: 25.03.2014
Статья просмотрена: 276 раз
Библиографическое описание:
Полухин, П. В. Анализ особенностей использования фаззинга как инструмента тестирования межсетевых экранов безопасности веб-приложений / П. В. Полухин. — Текст : непосредственный // Технические науки: проблемы и перспективы : материалы II Междунар. науч. конф. (г. Санкт-Петербург, апрель 2014 г.). — Т. 0. — Санкт-Петербург : Заневская площадь, 2014. — С. 12-15. — URL: https://moluch.ru/conf/tech/archive/89/5382/ (дата обращения: 20.12.2024).
В научном исследовании представлены результаты анализа особенностей фаззинга тестирования межсетевых экранов безопасности веб-приложений. Актуальность направления изучения объясняется невозможностью межсетевых экранов в полной мере противостоять динамическому росту уязвимостей, что ведет к необходимости расширения функциональных возможностей и инструментария тестирования. Особое внимание в статье уделено рассмотрению механизма смешивания 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.
Ключевые слова
информационные технологии, фильтрация, межсетевой экран безопасности веб-приложений, веб-технологии, веб-сервер, угрозы безопасности веб-приложений, http параметрыПохожие статьи
Разработка модели комплексной среды тестирования интернет-приложений
В научном исследовании представлены результаты построения модели среды тестирования современных интернет-приложений. Актуальность построения модели обуславливается необходимостью комплексного подхода к решению задачи тестирования применительно к сред...
Влияние выбора программной платформы на безопасность веб-приложений
В данной статье проведен анализ безопасности трех ведущих программных платформ для веб-разработки: Symfony, Laravel и Yii. Целью исследования было сравнение уровня безопасности этих платформ с учетом выбора наиболее подходящей для создания безопасных...
Создание инновационного метода адаптивной веб-разработки для повышения производительности и удобства веб-приложений
В данной статье исследуются современные подходы к разработке адаптивных веб-приложений и предлагается новый подход с целью повышения производительности и удобства использования. Адаптивные веб-приложения играют важную роль в обеспечении качественного...
Сервисы безопасности в публичном облаке AWS
Широкое внедрение облачных решений, в частности Amazon Web Services (AWS), вызвало обеспокоенность по поводу безопасности. AWS разработала различные службы мониторинга безопасности для решения этих проблем. Это исследование посвящено оценке эффективн...
Анализ уязвимостей среды контейнеризации
Технологии контейнеризации, примером которых являются такие платформы, как Docker и Kubernetes, произвели революцию в разработке и развертывании программного обеспечения, предоставив легкие и эффективные средства упаковки и развертывания приложений. ...
Активный клиент веб-приложения для репозитория методических материалов
Репозиторий методических материалов является одним из базовых компонентов электронного университета любого вуза. Поскольку обращение к нему выполняется многими пользователями как в стенах вуза, так и за его пределами, то логично реализовывать его как...
Исследование процесса threat hunting для быстрого реагирования на инциденты кибербезопасности
Инциденты в области кибербезопасности продолжают представлять значительную угрозу для организаций любого размера, и крайне важно внедрить эффективный процесс поиска угроз для оперативного обнаружения таких инцидентов и реагирования на них. Поиск угро...
Сравнение потоков Java и Kotlin Coroutines в контексте Android-разработки
В современной разработке мобильных приложений на Android, понимание и эффективное использование многозадачности является ключевым для создания высокопроизводительных и отзывчивых приложений. Многозадачность позволяет приложениям одновременно обрабаты...
Анализ методов обеспечения безопасности веб-приложений
В настоящей работе проведен анализ методов обеспечения безопасности веб-приложений, выявлены преимущества и недостатки каждого из рассматриваемых методов. При помощи комплексного рассмотрения и систематизации вопросов по обеспечению определенного уро...
Zero Trust: «никогда не доверяй, всегда проверяй». Новая парадигма кибербезопасности
По мере того, как киберугрозы становятся все более сложными, традиционные модели безопасности оказываются менее эффективными. Архитектура Zero Trust представляет собой смену парадигмы в кибербезопасности, обеспечивая надежную защиту от современных уг...
Похожие статьи
Разработка модели комплексной среды тестирования интернет-приложений
В научном исследовании представлены результаты построения модели среды тестирования современных интернет-приложений. Актуальность построения модели обуславливается необходимостью комплексного подхода к решению задачи тестирования применительно к сред...
Влияние выбора программной платформы на безопасность веб-приложений
В данной статье проведен анализ безопасности трех ведущих программных платформ для веб-разработки: Symfony, Laravel и Yii. Целью исследования было сравнение уровня безопасности этих платформ с учетом выбора наиболее подходящей для создания безопасных...
Создание инновационного метода адаптивной веб-разработки для повышения производительности и удобства веб-приложений
В данной статье исследуются современные подходы к разработке адаптивных веб-приложений и предлагается новый подход с целью повышения производительности и удобства использования. Адаптивные веб-приложения играют важную роль в обеспечении качественного...
Сервисы безопасности в публичном облаке AWS
Широкое внедрение облачных решений, в частности Amazon Web Services (AWS), вызвало обеспокоенность по поводу безопасности. AWS разработала различные службы мониторинга безопасности для решения этих проблем. Это исследование посвящено оценке эффективн...
Анализ уязвимостей среды контейнеризации
Технологии контейнеризации, примером которых являются такие платформы, как Docker и Kubernetes, произвели революцию в разработке и развертывании программного обеспечения, предоставив легкие и эффективные средства упаковки и развертывания приложений. ...
Активный клиент веб-приложения для репозитория методических материалов
Репозиторий методических материалов является одним из базовых компонентов электронного университета любого вуза. Поскольку обращение к нему выполняется многими пользователями как в стенах вуза, так и за его пределами, то логично реализовывать его как...
Исследование процесса threat hunting для быстрого реагирования на инциденты кибербезопасности
Инциденты в области кибербезопасности продолжают представлять значительную угрозу для организаций любого размера, и крайне важно внедрить эффективный процесс поиска угроз для оперативного обнаружения таких инцидентов и реагирования на них. Поиск угро...
Сравнение потоков Java и Kotlin Coroutines в контексте Android-разработки
В современной разработке мобильных приложений на Android, понимание и эффективное использование многозадачности является ключевым для создания высокопроизводительных и отзывчивых приложений. Многозадачность позволяет приложениям одновременно обрабаты...
Анализ методов обеспечения безопасности веб-приложений
В настоящей работе проведен анализ методов обеспечения безопасности веб-приложений, выявлены преимущества и недостатки каждого из рассматриваемых методов. При помощи комплексного рассмотрения и систематизации вопросов по обеспечению определенного уро...
Zero Trust: «никогда не доверяй, всегда проверяй». Новая парадигма кибербезопасности
По мере того, как киберугрозы становятся все более сложными, традиционные модели безопасности оказываются менее эффективными. Архитектура Zero Trust представляет собой смену парадигмы в кибербезопасности, обеспечивая надежную защиту от современных уг...