Производный финансовый инструмент
- 1 year ago
- 0
- 0
Файрвол веб-приложений ( англ. Web application firewall , WAF) — совокупность мониторов и фильтров, предназначенных для обнаружения и блокирования сетевых атак на веб-приложение . WAF относятся к прикладному уровню модели OSI .
Веб-приложение может быть защищено силами разработчиков самого приложения без использования WAF. Это требует дополнительных расходов при разработке. Например, содержание отдела информационной безопасности . WAF вобрали в себя возможность защиты от всех известных информационных атак, что позволяет делегировать ему функцию защиты. Это позволяет разработчикам сосредоточиться на реализации бизнес-логики приложения, давая больше времени на закрытие уязвимостей .
Файрвол веб-приложений используется как наложенное средство защиты. Это значит, что он располагается перед основным веб-приложением и анализирует входящий и исходящий трафик. В режиме реального времени он принимает решение о предоставлении либо отклонении доступа .
В WAF могут поддерживаться любые модели безопасности: позитивные, негативные или их комбинации. К современным WAF предъявляются требования, описанные в PCI DSS . Так же они инспектируют запросы и ответы HTTP/HTTPS протокола передачи данных в соответствии с политикой безопасности . Кроме того, открытый проект OWASP собирает данные о компрометациях со всего мира и формирует рейтинг векторов атак на веб-приложения — OWASP Top Ten . WAF проектируются так, чтобы успешно реагировать на угрозы описанные в этом рейтинге .
Стоит отметить, что WAF не являются абсолютным средством защиты информации. Обычно они включаются в общую систему безопасности веб-приложения в сочетании с другими элементами, например, с элементами, решающими проблемы протоколов отличных от HTTP/HTTPS, системами контроля инцидентов, сервисами противодействия мошенничеству .
Основным вектором успешных атак уже продолжительное время остаются SQL-инъекции . Для работы с различными данными — удаление, изменение, добавление приложение использует базу данных . При обращении к базе данных, приложение составляет текст запроса, который может быть подменён злоумышленником . В результате, например, может произойти утечка, удаление или запись данных. Для защиты тщательно проверяются данные полученные от пользователя, используются чёрные или белые списки последовательностей символов, экранируется текст запроса .
Для различения пользователей при авторизации пользователя на сайте ему ставится сессионный куки или выдаётся токен авторизации, который браузер сохраняет и каждый раз отправляет на сервер, для подтверждения того, что это нужный пользователь. Этот ключ может быть получен злоумышленником и использован для доступа к аккаунту . Для защиты вместе с ключом проверяется сопутствующая информация такая как, IP адрес, браузер. Так же ключу сессии ставят относительно недолгий срок жизни .
Этот вид атак заключается в том, что злоумышленник передаёт Java-Script или Html код в браузер пользователя, где этот код исполняется . Таким образом злоумышленник может получить куки или данные вводимые на форме заражённой страницы. Для защиты экранируются входные и выходные данные. Используются регулярные выражения для валидации полей .
Этот вид атак предназначен для кражи конфиденциальных данных. Чаще всего это происходит в момент их передачи от клиента на сервер по незащищённому протоколу HTTP или FTP. На пути к серверу, на каком-то узле, получив к нему доступ, злоумышленник может прочитать открытый, незащищённый запрос с конфиденциальной информацией пользователя . Для передачи подобной информации используют защищённые протоколы передачи HTTPS, TLS. Помимо этого, если есть необходимость хранить такие данные, то хранятся они в зашифрованном виде .
Уязвимости контроля доступа связаны недостаточной тщательностью проверки прав доступа к тем или иным данным. При наличии одних прав, злоумышленник может получить доступ к данным, которые для данных прав закрыты .
Например, если злоумышленник имеет id равный 1 и может видеть список своих сообщений по ссылке
mysite.com/messages?id=1
то при недостаточной проверке прав, заменив значение id на 2
mysite.com/messages?id=2
сервер выдаст сообщения пользователя с id = 2. В качестве защиты для проверки доступа используют белые списки. Хотя некоторые WAF берут на себя подобные функции проверки, но преимущественно, эти действия выполняются на сервере .
В отчёте 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 адресов и доменов. Ссылаясь на эти списки, WAF оценивают входящие запросы .
Некоторые популярные блок-листы:
Поведенческий анализ строится на машинном обучении. Это позволяет обнаружить аномалии в поведении на глубоких уровнях понимания. Такой механизм может обучаться как с учителем так и без учителя на идентификаторах доступа. Входящими параметрами могут служить идентификаторы доступа такие как HTTP-параметры, идентификатор ресурса (URL, URN), идентификатор сессии . Таким образом выделяется эталонная математическая модель допустимых идентификаторов доступа. При несовпадении с этой моделью очередной запрос будет заблокирован . Это позволяет отражать как известные атаки, так и атаки нулевого дня .
Кроме защиты информации, WAF могут предоставлять функции по её доступности, борясь с DoS-атаками. При обнаружении атаки ограничиваются или блокируются пользователи, которые участвуют в нагрузке трафика. Так же WAF могут внедрить капчу в ответ сервера, тем самым отсекая автоматические запросы и допуская реальных пользователей .
WAF в комплекте могут иметь собственный сканер уязвимостей. Сканер обращает внимание разработчиков приложения на недочёты, которые впоследствии могут быть исправлены, либо ответственность за них может быть делегирована WAF. В ходе такого анализа сканер может генерировать запросы с конкретными значениями параметров, которые позволят эксплуатировать найденную уязвимость. Зная слабые места веб-приложения WAF генерируют виртуальные патчи, которые закрывают такие места .
WAF предоставляют несколько видов поставок.
В любом из этих случаев WAF могут быть развёрнуты в одном из вариантов: прозрачный мост , прозрачный или обратный прокси сервер .
С увеличением количества веб-приложений в сети Интернет растёт потребность в их квалифицированной защите . Это является фактором развития компаний в данном направлении. Многие компании участвуют в развитии отрасли. Проводят открытую аналитику рынка, технологий и угроз. Поскольку за время развития веб-защиты выработаны принципы и стандарты безопасности, то WAF продукты от различных компаний схожи по своей функциональности и отличаются лишь графической оболочкой .
Наиболее популярные решения:
WAF с открытым исходным кодом: