WAF (Web application firewall)

Файрвол веб-приложений (Web application firewall, WAF) - межсетевой экран для защиты веб-приложений. Это инструмент для фильтрации трафика, работающий на прикладном уровне.

Оглавление:

Что это такое и зачем это нужно?

WAF помогает защищать веб-приложения, фильтруя и отслеживая HTTP-трафик между веб-приложением и Интернетом. WAF работает на 7 уровне модели OSI, его также называют “прикладным” уровнем, поэтому он не предназначен для защиты от всех типов атак. Подобный метод “смягчения” атаки, как правило, является частью набора инструментов, которые вместе образуют целостную защиту.

WAF обычно размещается перед веб-приложением, служа неким щитом между этим приложением и интернетом. В то время как прокси защищает данные клиента, WAF можно назвать “обратным прокси”, так как он защищает сервер, пропуская клиентов через себя прежде чем предоставить доступ к ресурсу.

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

WAF vs. системы обнаружения/предотвращения вторжений (IDS/IPS)

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

В отличие от WAF, IDS/IPS (intrusion detection/protection system) работает на сетевом уровне. Хотя дешифрование возможно в некоторых конфигурациях, оно не предполагается так же как в случае с WAF и если оно отсутствует, то IDS/IPS может просто не увидеть атаку на веб-приложение. IDS/IPS может анализировать все сетевые уровни, что позволяет ему искать такие вещи, как атаки, основанные на IP-фрагментации, которые WAF распознать не сможет. Также из-за того что IDS/IPS может отслеживать весь трафик, он не ограничен протоколами только лишь веб-приложений и имеет более широкий спектр сигнатур. Следовательно, у IDS/IPS может не быть такого подробного набора сигнатур веб-приложений как у WAF.

Это две пересекающиеся технологии: в случае атаки на некоторый трафик среагируют и IDS/IPS, и WAF. На некоторый только WAF или IDS/IPS. Но и существует шанс, что атака просто пролетит мимо них обоих.

Что должен уметь WAF?

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

  • SQL-инъекции - один из самых распространенных типов атак на сайты и программы, работающие с базами данных. Его суть заключается во внедрении произвольного SQL-кода в запрос, что может дать атакующему доступ к просмотру и редактированию базы.
  • XSS (межсайтовый скриптинг) - также весьма распространенный тип атаки. Суть его заключается во внедрении атакующим вредоносного кода. С его помощью злоумышленник может получить доступ к личным данным пользователя, да и вообще, почти все что может JavaScript станет для него доступно.
  • Инъекция локальных или удаленных файлов (LFI/RFI) - использование локальных или удаленных файлов в своих целях.
    • LFI (Local File Inclusion) - позволяет злоумышленнику выполнить локальный файл на сервере. С его помощью удаленный пользователь может получить доступ к произвольным файлам на сервере, в том числе содержащую конфиденциальную информацию.
    • RFI (Remote File Inclusion) - позволяет злоумышленнику выполнить удаленный файл на сервере. RFI возникает, когда входящие данные в коде сайта не проходят должную проверку.
  • RCE (remote code execution) - является максимальной угрозой класса A1 по классификации OWASP. При использовании RCE атакующий удаленно выполняет код на взламываемом компьютере, сервере и т.п.
  • PHP инъекции - один из способов взлома сайтов, работающих на PHP, заключающийся в выполнении стороннего кода на сервере. При успешном проведении подобной атаки злоумышленник сможет выполнить любые PHP-команды.
  • Автоматизированные действия - подбор логинов, паролей, промокодов. В онлайн-магазинах возможно автоматическое добавление товаров в корзину, чтобы уменьшить его наличие.
  • Боты. Они выполняют поиск и сканирование уязвимостей веб-приложений, извлечение данных и т.п. Боты создают примерно 20% плохого трафика в интернете.
  • Переборные атаки - подбор пароля и идентификатора пользовательской сессии, различные попытки DoS-атаки.

Конечно, этот список неполный, WAF сможет вас защитить от гораздо более широкого спектра типов атак.