Файрвол веб-приложений

Файрвол веб-приложений  — совокупность мониторов и фильтров, предназначенных для обнаружения и блокирования сетевых атак на веб-приложение. WAF относятся к прикладному уровню модели OSI.

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

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

В WAF могут поддерживаться любые модели безопасности: позитивные, негативные или их комбинации. К современным WAF предъявляются требования, описанные в PCI DSS. Так же они инспектируют запросы и ответы HTTP/HTTPS протокола передачи данных в соответствии с политикой безопасности. Кроме того, открытый проект OWASP собирает данные о компрометациях со всего мира и формирует рейтинг векторов атак на веб-приложения — OWASP Top Ten. WAF проектируются так, чтобы успешно реагировать на угрозы описанные в этом рейтинге.

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

Векторы атак

Инъекции 
Основным вектором успешных атак уже продолжительное время остаются SQL-инъекции. Для работы с различными данными — удаление, изменение, добавление приложение использует базу данных. При обращении к базе данных, приложение составляет текст запроса, который может быть подменён злоумышленником. В результате, например, может произойти утечка, удаление или запись данных. Для защиты тщательно проверяются данные полученные от пользователя, используются чёрные или белые списки последовательностей символов, экранируется текст запроса.

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

XSS (Межсайтовое выполнение сценариев) 
Этот вид атак заключается в том, что злоумышленник передаёт Java-Script или Html код в браузер пользователя, где этот код исполняется. Таким образом злоумышленник может получить куки или данные вводимые на форме заражённой страницы. Для защиты экранируются входные и выходные данные. Используются регулярные выражения для валидации полей.

Незащищённость конфиденциальных данных 
Этот вид атак предназначен для кражи конфиденциальных данных. Чаще всего это происходит в момент их передачи от клиента на сервер по незащищённому протоколу HTTP или FTP. На пути к серверу, на каком-то узле, получив к нему доступ, злоумышленник может прочитать открытый, незащищённый запрос с конфиденциальной информацией пользователя. Для передачи подобной информации используют защищённые протоколы передачи HTTPS, TLS. Помимо этого, если есть необходимость хранить такие данные, то хранятся они в зашифрованном виде.

Использование уязвимостей контроля доступа 
Уязвимости контроля доступа связаны недостаточной тщательностью проверки прав доступа к тем или иным данным. При наличии одних прав, злоумышленник может получить доступ к данным, которые для данных прав закрыты. 

Например, если злоумышленник имеет id равный 1 и может видеть список своих сообщений по ссылкеmysite.com/messages?id=1то при недостаточной проверке прав, заменив значение id на 2 mysite.com/messages?id=2сервер выдаст сообщения пользователя с id = 2. В качестве защиты для проверки доступа используют белые списки. Хотя некоторые WAF берут на себя подобные функции проверки, но преимущественно, эти действия выполняются на сервере.

Использование внешних XML-сущностей 
В отчёте OWASP за 2017 год в топ возможных рисков для веб-приложений попал такой вектор атак как XML External Entities (XXE). Возможность таких атак возникает, когда приложение предоставляет возможность пользователю для передачи данных использовать документы XML, содержимое которых анализируется плохо настроенным парсером. В результате злоумышленник может передать в XML ссылку на внешнюю сущность, что может привести к потере данных, либо к другим нежелательным воздействиям на сервер. Для защиты используется тщательно настроенный сериализатор XML либо он заменяется на другой, например, JSON. Или отключается поддержка внешних сущностей XML.

Атаки методом перебора 
Атаки методом перебора - тип атаки на веб-приложение, при котором атакующий перебором значений (учетных записей, паролей, сессионных данных) пытается получить доступ к веб-приложению либо данным.
Например, перебирая значение параметра password, атакующий по коду ответа может определить успешную авторизацию:GET /vulnerabilities/brute/?username=admin&password=123456&Login=Login

Следует отметить, что некоторым стандартным атакам можно противостоять, включая соответствующие заголовки и флаги, встроенные во все современные браузеры. Например, заголовок X-XSS-Protection или флаг HTTPonly у заголовка Set-Cookie.

Методы защиты

Сигнатурный анализ 
WAF активно используют сигнатурный анализ для фильтрации трафика. Сигнатурный метод в своей реализации использует словарь вредоносного трафика для сравнения. Если в пришедшем трафике нашлась часть запроса(сигнатура), которая соответствует вредоносному трафику, то WAF блокируют этот запрос. Пример сигнатур.

Репутационный фильтр IP адресов 
Метод основан на белых и чёрных списках IP адресов и доменов. Ссылаясь на эти списки, WAF оценивают входящие запросы. 

Некоторые популярные блок-листы:

 SBL
 XBL
 CBL
 DBL

Поведенческий анализ 
Поведенческий анализ строится на машинном обучении. Это позволяет обнаружить аномалии в поведении на глубоких уровнях понимания. Такой механизм может обучаться как с учителем так и без учителя на идентификаторах доступа. Входящими параметрами могут служить идентификаторы доступа такие как HTTP-параметры, идентификатор ресурса (URL, URN), идентификатор сессии. Таким образом выделяется эталонная математическая модель допустимых идентификаторов доступа. При несовпадении с этой моделью очередной запрос будет заблокирован. Это позволяет отражать как известные атаки, так и атаки нулевого дня.

Дополнительные возможности

Защита от DoS-атак 
Кроме защиты информации, WAF могут предоставлять функции по её доступности, борясь с DoS-атаками. При обнаружении атаки ограничиваются или блокируются пользователи, которые участвуют в нагрузке трафика. Так же WAF могут внедрить капчу в ответ сервера, тем самым отсекая автоматические запросы и допуская реальных пользователей.

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

Виды поставок 
WAF предоставляют несколько видов поставок.

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

В любом из этих случаев WAF могут быть развёрнуты в одном из вариантов: прозрачный мост, прозрачный или обратный прокси сервер.

Рынок 
С увеличением количества веб-приложений в сети Интернет растёт потребность в их квалифицированной защите. Это является фактором развития компаний в данном направлении. Многие компании участвуют в развитии отрасли. Проводят открытую аналитику рынка, технологий и угроз. Поскольку за время развития веб-защиты выработаны принципы и стандарты безопасности, то WAF продукты от различных компаний схожи по своей функциональности и отличаются лишь графической оболочкой.

Наиболее популярные решения:
 Валарм WAF
 Alibaba Cloud
 Akamai Technologies Kona
Amazon Web Services AWS WAF
Barracuda Networks WAF
BI.ZONE WAF
 Citrix Netscaler Application Firewall
 Cloudbric
Cloudflare
 F5 Big-IP ASM
 Fortinet FortiWeb
 Imperva SecureSphere
 Nemesida WAF / Nemesida WAF Free
 Penta Security WAPPLES
PT Application Firewall
 Radware AppWall

WAF с открытым исходным кодом:
 ModSecurity

Примечания 

Информационная безопасность
Веб-приложения