Waf глазами хакеров

Analyzing requests and applying filter rules

WAFs use rules and policies to analyze any traffic or requests that contact the web application, make a determination if the traffic is “healthy,” and then either approve or deny the malicious traffic flow. Rules and policies are essentially guidelines created to help the WAF make an educated decision; these rules and policies function at a higher level than typical firewall rules and exceptions.

WAFs use layers of filters when analyzing traffic, often checking for 0-day attacks automatically, client-side attacks, bot attacks (e.g. DDoS attacks), hidden virus files, and web application vulnerabilities. Most advanced WAFs can decode and analyze HTTPS traffic, XML, JSON, and other popular data transfer formats. It helps them to stop evasion techniques that are meant to go around the firewall, like HPP (HTTP Parameter Pollution), Verb Tampering and other ones.

Векторы атак

Инъекции

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

Использование уязвимостей хранения сессий

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

XSS (Межсайтовое выполнение сценариев)

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

Незащищённость конфиденциальных данных

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

Использование уязвимостей контроля доступа

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

то при недостаточной проверке прав, заменив значение id на 2 

сервер выдаст сообщения пользователя с id = 2. В качестве защиты для проверки доступа используют белые списки. Хотя некоторые WAF берут на себя подобные функции проверки, но преимущественно, эти действия выполняются на сервере.

Использование внешних XML-сущностей

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

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

Комплекс услуг Solar MSS для ритейла

У ритейла нет жестких законодательных требований в плане ИБ, но зато есть жесткие требования к капитальным затратам и ограниченные бюджеты на непрофильную деятельность. Если это молодой растущий бизнес, то он точно не может позволить себе вложиться в дорогие решения для защиты ИТ-инфраструктуры. При этом у него есть и деньги, и персональные данные – все, что привлекает злоумышленников.

Ритейл – высококонкурентная среда, поэтому репутационные риски могут оказаться критичными для бизнеса. Известный факт – некоторые компании «заказывают» DDoS-атаки на сайты конкурентов, чтобы переманить клиентов.

Яркая особенность этого бизнеса – сезонность атак. Пики активности хакеров чаще всего приходятся на периоды распродаж и праздников. Поэтому для этих компаний критически важна возможность оперативно отключать и подключать сервисы ИБ по мере необходимости.

Еще один значимый аспект деятельности предприятий торговли – логистика и управление поставками в розничных сетях. ИТ-системы таких компаний должны обеспечивать целостность корпоративных данных, бесперебойность работы и защиту каналов связи между филиалами, работоспособность логистики и централизованного бэк-офиса, сохранность персональных данных клиентов.

Исходя из этого, компаниям торговли рекомендуются следующие сервисы:

UTM – как базовый сервис для компании, которая концентрирует свой бизнес в онлайне.

Anti-DDoS – для противодействия проискам конкурентов.

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

VM. Сервис контроля уязвимостей VM остро необходим именно в ритейле, потому что при создании инфраструктуры онлайн-коммерции владелец бизнеса делает много ошибок в части ИБ просто потому, что у него недостаточно компетенций в этой сфере.

Постепенно бизнес расширяется, появляются новые сервисы и цифровые активы, а с ними – новые риски. При этом изначально выстроенная инфраструктура не совершенствуется, и необходимо выявлять «слабые места», чтобы вовремя их закрывать, – подчеркивает Сергей Дмитриев.

Description

A web application firewall is a special type of application firewall that applies specifically to web applications. It is deployed in front of web applications and analyzes bi-directional web-based (HTTP) traffic — detecting and blocking anything malicious. The OWASP provides a broad technical definition for a WAF as “a security solution on the web application level which — from a technical point of view — does not depend on the application itself.” According to the PCI DSS Information Supplement for requirement 6.6, a WAF is defined as “a security policy enforcement point positioned between a web application and the client endpoint. This functionality can be implemented in software or hardware, running in an appliance device, or in a typical server running a common operating system. It may be a stand-alone device or integrated into other network components.” In other words, a WAF can be a virtual or physical appliance that prevents vulnerabilities in web applications from being exploited by outside threats. These vulnerabilities may be because the application itself is a legacy type or it was insufficiently coded by design. The WAF addresses these code shortcomings by special configurations of rule-sets, also known as policies.

Previously unknown vulnerabilities can be discovered through penetration testing or via a vulnerability scanner. A web application vulnerability scanner, also known as a web application security scanner, is defined in the SAMATE NIST 500-269 as “an automated program that examines web applications for potential security vulnerabilities. In addition to searching for web application-specific vulnerabilities, the tools also look for software coding errors.” Resolving vulnerabilities is commonly referred to as remediation. Corrections to the code can be made in the application but typically a more prompt response is necessary. In these situations, the application of a custom policy for a unique web application vulnerability to provide a temporary but immediate fix (known as a virtual patch) may be necessary.

WAFs are not an ultimate security solution, rather they are meant to be used in conjunction with other network perimeter security solutions such as network firewalls and intrusion prevention systems to provide a holistic defense strategy.

WAFs typically follow a positive security model, a negative security, or a combination of both as mentioned by the SANS Institute. WAFs use a combination of rule-based logic, parsing, and signatures to detect and prevent attacks such as cross-site scripting and SQL injection. The OWASP produces a list of the top ten web application security flaws. All commercial WAF offerings cover these ten flaws at a minimum. There are non-commercial options as well. As mentioned earlier, the well-known open source WAF engine called ModSecurity is one of these options. A WAF engine alone is insufficient to provide adequate protection, therefore OWASP along with Trustwave’s Spiderlabs help organize and maintain a Core-Rule Set via GitHub to use with the ModSecurity WAF engine.

The different ways to deploy a WAF

A WAF can be deployed in several ways—it all depends on where your applications are deployed, the services needed, how you want to manage it, and the level of architectural flexibility and performance you require. Do you want to manage it yourself, or do you want to outsource that management? Is it a better model to have a cloud-based, option or do you want your WAF to sit on-premises? How you want to deploy will help determine what WAF is right for you. Below are your options.

WAF Deployment Modes:

  • Cloud-based + Fully Managed as a Service—this is a great option if you require the fastest, most hassle-free way to get WAF in front of your apps (especially if you have limited in-house security/IT resources)
  • Cloud-based + Self Managed—get all the flexibility and security policy portability of the cloud while still retaining control of traffic management and security policy settings
  • Cloud-based + Auto-Provisioned—this is the easiest way to get started with a WAF in the cloud, deploying security policy in an easy, cost-effective way
  • On-premises Advanced WAF (virtual or hardware appliance)—this meets the most demanding deployment requires where flexibility, performance and more advanced security concerns are mission critical

Системные требования

Минимальные требования к физическому серверу, на котором размещается виртуальное решение:

  • Гипервизор — VMware ESXi v4.0/4.1/5.0/5.1;
  • Процессор — Dual Core с поддержкой Intel VT-x или AMD-V;
  • Количество ядер процессора — 4;
  • Оперативная память — 4 Гб;
  • Жесткий диск — 250 Гб.

Рекомендуемые требования для максимального решения:

  • Количество ядер процессора — 16;
  • Оперативная память — 12 Гб.

Специальные модули для улучшения интеграции с веб-серверами поддерживаются для следующих продуктов:

  • Apache 2.2.x, 2.4.x (32 и 64-разрядные версии) – RPM-пакеты для операционных систем RedHat, CentOS и производных;
  • ISS 6.0, 7.x, 8.0 (32 и 64-разрядные версии) – для операционных систем семейства Windows.

Ошибки логики

Теперь давай рассмотрим несколько выражений посложнее.

— это пример так называемого ReDoS, отказа в обслуживании при парсинге текста уязвимым регулярным выражением. Проблема в том, что это регулярное выражение будет обрабатываться парсером слишком долго из-за чрезмерного количества вхождений в строку. То есть если мы передадим , то в некоторых парсерах такой поиск будет выполнять 2^n операций сравнивания, что и приведет к отказу в обслуживании запущенной функции.

— в этом случае неверно выбран квантификатор. Знак в регулярных выражениях означает «1 или более». Соответственно, мы можем передать «a’-пробел-0-раз-b», тем самым обойдя регулярку и выполнив вредоносную нагрузку.

— здесь используется черный список. Всегда нужно помнить, что большинству Unicode-символов существуют эквивалентные альтернативы, которые могут быть не учтены в списке регулярки

Использовать блек-листы нужно с осторожностью. В данном случае обойти правило можно так: .

Модификаторы, числовые квантификаторы и позиционные указатели

Возьмем для начала несложный пример. Здесь у нас простое выражение, которое защищает функцию . Регулярка пытается найти паттерн в GET-параметре и, если он найден, предотвратить исполнение вредоносного кода:

В этом коде есть как минимум три проблемы.

Регистр. Выражение не учитывает регистр, поэтому, если использовать нагрузку разного регистра, ее удастся обойти:

Пофиксить это можно при помощи модификатора , благодаря которому регистр не будет учитываться.

Символы начала и конца строки (). Выражение ищет вредоносную нагрузку, жестко привязываясь к позиции в строке. В большинстве языков, для которых предназначается вредоносная нагрузка (например, SQL), пробелы в начале и в конце строки не влияют на синтаксис

Таким образом, если добавить пробелы в начале и конце строки, защиту удастся обойти:

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

Квантификаторы ()

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

Пофиксить это можно, указав неограниченное число вхождений подстроки ( вместо ). Квантификатора вообще следует избегать. Например, раньше считалось, что четыре символа — это максимум для корневого домена (к примеру, .info), а сейчас появились TLD типа .university. Как следствие, регулярные выражения, в которых используется паттерн , перестали быть валидными, и открылась возможность для байпаса.

WAF предназначен для защиты данных:

И любых других веб-сайтов

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

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

Сетевой брандмауэр и WAF часто используются вместе для обеспечения дополнительных уровней безопасности

Весь входящий трафик постоянно анализируется, и если система заподозрит атаку — направит весь трафик на очистку, чтобы убедиться, что он исходит от человека

Веб-приложения могут быть уязвимы для многих угроз.

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

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

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

Особенности парсеров и опечатки

  1. — в этом примере разрешен слишком широкий скоуп. Кроме желаемых диапазонов символов и , такое выражение разрешает еще и ряд спецсимволов, в числе которых , ,, и так далее, что в большинстве случаев может привести к выходу за контекст.
  2. — здесь отсутствует двоеточие до и после класса digit (POSIX character set). В данном случае это просто набор из четырех символов, все остальные разрешены.
  3. , . В первом случае допущен лишний пробел — такое выражение будет искать не «a или b», а «а пробел, или b». Во втором случае подразумевался один оператор «или», а написано два. Такое выражение найдет все вхождения a и пустые строки (ведь после идет пустая строка), но не b.
  4. — в этом случае конструкции с бэкслешами неоднозначны, так как в разных парсерах спецсимволы могут обрабатываться по-разному в зависимости от контекста. В разных парсерах спецсимволы могут обрабатываться по-разному. В этом примере может быть как бэклинком с номером 11, так и символом табуляции (0x09 в восьмеричном коде); может интерпретироваться как очень редко описываемый в документации wildcard (символ Esc); — просто экранированный символ . Казалось бы, один и тот же символ, но читается он по-разному в зависимости от условий и конкретного парсера.

WAF vs Network Firewall –

Detailed comparison table of web application firewall vs firewall –

PARAMETER WAF NETWORK FIREWALL
Philosophy A Web Application Firewall (WAF) is a network security firewall solution that protects web applications from HTTP/S and web application-based security vulnerabilities. Network Firewall is a device which controls access to secured LAN network to protect it from unauthorized access. Firewall acts as a filter which blocks incoming non-legitimate traffic from entering the LAN network and cause attacks.
OSI Layer coverage Layer 7 Layer 3 — 4
Modes of operation * Active Inspection
* Passive mode
* Transparent mode
* Routed mode
DDOS Protection Application Layer Basic level only at Network Layer
Target objects protection Protects HTTP/HTTPs based servers and Applications placed in Internet facing Zones of Network Firewall Protection of user and organizational IT assets including applications, Servers and management.
Placement in Network Close to Web/Internet Facing Applications On Perimeter of Network (Commonly Internet)
Web Application protection All-encompassing, including complete coverage of application layer Minimal
Access Control Not possible Possible
Algorithms * Signature based
* Anomaly detection
* Heuristics
* Packet filtering
* Stateful/stateless inspection
* Proxy
Related attacks protection * SQL injection attacks
* Cross-site scripting (XSS) attacks
* DDoS attacks.
* Attack from less secured zones.
* Unauthorised users accessing private networks

Types of web application firewalls

Network-based web application firewall

Network-based web application firewalls (NWAF) are traditionally hardware based and provide latency reduction benefits due to the local installation; this means the NWAF is installed close to the application server and is easy to access. Additionally, NWAFs provide rule and setting replication in many instances, which means that deployment across medium or large-scale organizations is feasible; cost is usually the most significant drawback.

Host-based web application firewall

Host-based web application firewalls (HWAF) exist as modules for a web-server. It is a significantly cheaper solution compared to hardware-based WAFs, which are meant for small web-applications. Most of the software WAFs are made to be easily integrated with popular web servers. However, since host-based WAF will drain your application server resources, that can result in performance problems. Also keep in mind that some types of web server attacks can go around WAF and disable its functions “from inside” – for example, when a malicious file was injected on the server directly through unsecured file transfer channels.

Cloud-based web application firewall

Cloud-based web application firewalls provide similar benefits as other software-based WAF solutions, such as the low cost and the lack of on-premises resources that you must manage. Cloud-based solutions are an excellent choice when you don’t want to limit yourself with performance capabilities or are aiming to avoid a system that requires maintenance. Cloud service providers can offer unlimited hardware pool with competent setup and support. But at some point, the service fees might grow pretty steep or you will reach the point when you need a powerful custom solution based on your physical appliance.

Выводы

Рассмотренный продукт Trustwave Web Application Firewall, предназначенный для защиты веб-приложений, полностью выполняет возложенные на него задачи. Полный набор защитных механизмов и дополнительных функций позволяют серьезно повысить уровень защищенности любого веб-приложения.

Trustwave Web Application Firewall решает серьезные и актуальные проблемы и полностью выполняет заявленные бизнес-цели. Благодаря данному продукту организации могут существенно сократить свои риски, связанные с безопасностью, и улучшить стабильность и скорость работы своих веб-приложений.

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

Достоинства:

  • Эвристические механизмы оценки поведения пользователей веб-приложений;
  • Контроль не только входящих запросов, но и возвращаемого от сервера ответа;
  • Множество схем сетевой работы;
  • Возможность гибкой настройки политик и реакции на вторжения;
  • Возможность подстройки и глубокой интеграции с веб-приложениями;
  • Наличие функций по мониторингу и контролю нагрузки;
  • Возможность квитирования и категорирования событий безопасности;
  • Поддержка разбора HTTPS-протокола;
  • Гибкая система отчетов.

Недостатки:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *