Об идентификации защитных экранов вебприложений в модели MitB
Рассматриваются существующие способы идентификации защитных экранов веб-приложений и их программная реализация в рамках модели нарушителя «Man in the Browser».
WEB application firewalls identification in MitB-model.pdf Защитные экраны уровня приложения (Web Application Firewalls, WAF) применяются для обнаружения и предотвращения атак на веб-приложения. Применение защитных экранов не гарантирует безопасность веб-приложения, так как они сами могут содержать уязвимости реализации и конфигурирования. Одной из актуальных задач анализа защищённости веб-приложений является разработка программных средств идентификации защитных экранов на клиентской стороне веб-приложений в рамках модели «Man in the Browser» (MitB) [1]. В данной работе исследованы возможности идентификации экранов приложений в рамках модели MitB и реализован программный модуль для фрэймворка BeEF [2], реализующий данную функциональность. Идентификация защитных экранов, как правило, реализуется на основе сигнатурного анализа следующих веб-сущностей: идентификаторы сессий, HTTP-заголовки, cookie, коды ответов и т. д. Известными средствами идентификации защитных экранов являются WAFW00F [3] и sqlmap [4]. Приведём пример модуля, идентифицирующего экран «Wallarm» в sqlmap на основе сигнатуры HTTP-заголовка «Server»: 1 retval = False 2 for vector in WAF_ATTACK_VECTORS: 3 _, headers, _ = get_page(get=vector) 4 retval = re.search(r"nginx-wallarm", 5 headers.get(HTTP_HEADER.SERVER, ""), 6 re . I) is not None 7 if retval: 8 break Вместе с тем данные средства ограничены в применении и не могут быть использованы в модели MitB, являющейся основной с точки зрения анализа клиентской части веб-приложения. Для обеспечения возможности идентификации защитных экранов в модели MitB реализован программный модуль для фрэймворка BeEF (Browser Explotation Framework) с использованием известных баз сигнатур. Разработанный модуль функционирует следующим образом: он отправляет стандартный HTTP-запрос, затем анализирует ответ, полученный от веб-приложения. Если это не дало никаких результатов в части идентификации экрана, то отправляется серия HTTP-запросов с различными векторами атак, что приводит к реакции защитного экрана при его наличии. Экран может добавить специальный заголовок с сигнатурой или выставить идентификатор сессии. Если защитный экран не удалось идентифицировать с помощью HTTP-запросов, то анализируются коды ответов веб-приложения. Для проведения сигнатурного анализа необходима коллекция сигнатур защитных экранов. Для её составления использовались базы сигнатур средств WAFW00F [3] и sqlmap [4], некоторые сигнатуры добавлены авторами. Сигнатуры хранятся в формате JSON. Пример сигнатуры рализованного модуля BeEF: 1 { 2 "name":"F5 BIG-IP ASM", 3 "cookie": ["TS [a-zA-Z0-9]{3,8}"] , 4 "headers " : [] 5 }
Ключевые слова
безопасность приложений,
защитные экраны веб-приложений,
идентификация,
application security,
web application firewall,
fingerprintingАвторы
Колегов Денис Николаевич | Томский государственный университет | кандидат технических наук, доцент кафедры защиты информации и криптографии | d.n.kolegov@gmail.com |
Линейцев Павел Алексеевич | Томский государственный университет | студент кафедры защиты информации и криптографии | lineycevp@gmail.com |
Всего: 2
Ссылки
Alkorn W., Frichot C., and Orru M. The Browser Hacker's Handbook. Indianapolis, John & Wiley Sons, 2014. 648 p.
The Browser Exploitation Framework Project. http://beefproject.com/
The WAFW00F project. https://github.com/EnableSecurity/wafw00f
The sqlmap project. http://sqlmap.org/
Об идентификации защитных экранов вебприложений в модели MitB | Прикладная дискретная математика. Приложение. 2016. № 9.