Pull to refresh
1214.6
МТС
Про жизнь и развитие в IT

Особенности защиты веб-приложений с помощью WAF

Reading time7 min
Views5.5K
Бизнесу важно любой ценой сократить time to market цифровых продуктов. Нет времени объяснять защищать — выпускаем новый релиз. Так зачастую бывает с веб-приложениями. При их разработке или развитии вопросы безопасности отодвигаются на второй план. Это приводит к уязвимостям в коде, слабым параметрам аутентификации пользователей, недостаткам контроля доступа и т.д. И целого поста на Хабре не хватит, чтобы рассказать обо всех проблемах.



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

Сегодня мы — облачный провайдер #CloudMTS и коллеги из BI.ZONE — хотим поговорить об основных «мишенях» злоумышленников и грамотном подходе к внедрению WAF.

Куда целятся киберпреступники


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



Для предотвращения действий злоумышленников компании внедряют решения класса Web Application Firewall (WAF). Но достаточно ли этого сегодня, чтобы спать спокойно? Давайте попробуем ответить на этот вопрос в технической части нашей статьи.

Подводные камни защиты веб-приложений: что ждет вас после внедрения WAF


Знай врага своего

Первый вопрос, который мы задаем клиентам: «Знаете ли вы, из чего состоит ваш веб-ресурс: какая бизнес-логика в нем заложена, какие компоненты используются при разработке?». Как правило, сходу ответить на него могут далеко не все, хотя это важно сразу по нескольким причинам.
  • Атаки всегда связаны со спецификой веб-приложения и его бизнес-функциональностью.
В мире становится все больше веб-сайтов, тем или иным способом генерирующих выручку для владельца. С их помощью совершаются платежные операции, обрабатываются и хранятся конфиденциальные данные пользователей. В большинстве случаев злоумышленнику достаточно лишь найти наиболее уязвимое место веб-приложения. Далее даже простейшей OS команды, внедренной в тело запроса, достаточно, чтобы получить доступ к веб-серверу и провести успешную атаку. На примере ниже можно увидеть, что веб-сервер не производит валидацию параметра в теле POST-запроса. Это дает злоумышленнику возможность выполнить произвольную команду внутри операционной системы.



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



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

Такие уязвимости желательно обнаруживать на этапе аудита с помощью различных инструментов и методов: статистического и динамического анализа исходного кода, фаззинг-тестирования, выявления аномалий в архитектуре и логике веб-приложения. Увы, нередко этот момент упускается из-за отсутствия времени или средств.
  • Развитие новых векторов атак коррелирует с развитием технологий.
Для разработки гибких и функциональных веб-приложений используется определенный стек веб-технологий (HTML, CSS, JavaScript) и JS-сред (Angular или Vue), множество протоколов реализации (REST, GraphQL, gRPC, SOAP), различные форматы обмена данными (XML, JSON). При таком наборе даже WAF можно с легкостью обвести вокруг пальца, если на этапе разработки не позаботились о защите приложения и пренебрегли настройками Web Application Firewall.

Некоторые инструменты, которыми пользуются злоумышленники, сегодня доступны даже школьнику. Например, сканеры уязвимостей. Они способны на базовом уровне рассказать, из чего состоит ваш веб-сайт (заголовки HTTP, включая CSP, список плагинов, тем и скриптов и т.д.). После «прощупывания» злоумышленник может заняться вашим ресурсом более предметно и глубоко. Например, он понял, что внутри веб-приложения используется реляционная БД SQL. Значит, надо попытаться в нее проникнуть и извлечь из нее информацию. Если используется JSON-схема с некоторой вложенностью, злоумышленник будет пытаться усложнить ее, тем самым мешая WAF’у сериализовать эту схему. Например, он может применить различные кодировки (base64 и т.п.), «завернуть» что-то в XML или HEX.
  • Классический WAF работает по принципу поиска чего-то «нелегитимного» в запросе.
Это приводит к ложным срабатываниям (false positive). Чем сложнее веб-приложение, тем их больше. В первую очередь, из-за них страдает обычный пользователь, который не осуществлял злонамеренных или запрещенных действий. С другой стороны, чрезмерное ослабление гаек будет настоящим подарком для злоумышленника.

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

Но вопрос поддержки WAF не заканчивается на управлении политиками защиты. Поскольку WAF стоит в разрыв трафика, он становится «бутылочным горлышком» и может существенно повлиять на показатели доступности защищаемого веб-приложения. Определенная часть работ в рамках эксплуатации WAF включает в себя инженерные задачи: тюнинг инсталляции для повышения пропускной способности, настройка механизмов отказоустойчивости, организация мониторинга доступности, масштабирование и многое другое. В условиях высокого спроса на специалистов по кибербезопасности найти людей под эти задачи будет весьма проблематично. Ведь вам нужен специалист, сочетающий в себе навыки и ИТ-инженера, и специалиста по безопасности веб-приложений! Самый правильный вариант — вырастить такого спеца внутри коллектива, но он далеко не всем подходит.
  • Наши клиенты достаточно часто приходят с проблемой бот-активности.
Действительно, с каждым годом громких инцидентов с применением ботов становится только больше. К примеру, за последний год участились случаи проведения атак типа Denial of Inventory. Цель злоумышленника — исчерпание логических ресурсов веб-приложения в целях нарушить ключевые бизнес-процессы. Например, с помощью ботов можно забронировать весь товар в интернет-магазине, из-за чего настоящие пользователи не смогут ничего купить. Как результат — финансовые потери.

Denial of Inventory отличается от классической DDoS-атаки: вычислительные мощности могут быть не утилизированы на 100%, но легитимные пользователи все равно не смогут воспользоваться ключевой функциональностью веб-приложения.

Также в некоторых случаях бот-активности могут приводить к репутационному ущербу. Ярким примером такой атаки является кейс Nvidia. В первые минуты после старта продаж ботами были выкуплены все доступные экземпляры видеокарты GeForce RTX 3080 по низким ценам. Результат — репутационный ущерб компании и отток клиентов.

Основная сложность ботов заключается в том, что они быстро подстраиваются под любые меры защиты. Классический подход, который работает с остальными атаками — увидели атаку, заблокировали, отдали код 403 — не подходит. Бот сразу может понять, по каким маркерам выявляется вредоносное поведение, и перестроиться. И мы снова приходим к тому, что необходимо постоянно анализировать результаты работы механизмов защиты WAF и вносить в них коррективы:
  • по специфике проверки, которая производится на стороне пользователя/бота;
  • направленные на блокировку (нужно ли блокировать и отдавать 403; или нужно снижать интенсивность запросов; или перенаправлять бота на поддельную страницу, чтобы он получал бессмысленный не релевантный для него контент).
Сегодня практически в любом WAF можно найти вполне «стандартные» технологии защиты, например:
  • всем знакомая CAPTCHA v2 «с пешеходными переходами и поиском светофоров»;
  • Checkbox Captcha, сгенерированная с помощью Javascript на стороне клиента;
  • JavaScript Challenge, который предоставляет пользователю вместе с контентом сайта JS-скрипт и позволяет в дальнейшем отфильтровать бота и реального пользователя.
Однако, как показывает практика, эффективность подобных инструментов снижается без анализа результатов их работы.

Threat Intelligence: целого мира WAF мало

Ни один WAF без базы знаний о новейших угрозах не сможет поддерживать актуальные политики защиты. Есть несколько путей их получения:
  • Интеграция со сторонней платформой Threat Intelligence или open source базами, содержащими актуальные фиды — индикаторы компрометации и атак, тактики и техники, информация о кампаниях и т.д).
  • Сокрытие в инфраструктуре ханипотов (honeypot) — заведомо уязвимых машин, провоцирующих злоумышленника на атаку. Они могут быть использованы как для сбора IP-адресов и других метрик, так и для реагирования на инциденты кибербезопасности.
  • Формирование собственной базы по итогам различных проектов по анализу защищенности, пентестам или расследованию киберинцидентов.
Эти данные разработчики могут преобразовать в сигнатуры, на их основе создавать политики защиты с учетом актуальных и популярных векторов атак и их категорий. Актуальная информация о векторах атак должна поступать на WAF практически в режиме реального времени.

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

WAF как сервис из облака #CloudMTS


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

Как правило, WAF как облачный сервис достаточно прост в подключении. Необходимо выполнить пару базовых настроек с веб-приложением — переключить трафик через A-запись на DNS-сервере и передать нам SSL-сертификат. После этого входной точкой для трафика станут узлы фильтрации WAF, расположенные в облаке #CloudMTS.

В Москве у нас развернута высокопроизводительная сеть фильтрации WAF на технологиях BI.ZONE WAF.


Схема прохождения трафика
  • Трафик пользователей, поступающий заказчику из интернета и направленный на защищаемое веб-приложение, проходит через узлы фильтрации WAF Premium.
  • Входящие запросы проверяются в соответствии с настроенной политикой защиты. Если они содержат в себе следы веб-атаки или вредоносной ботнет-активности, трафик помечается как зловредный и блокируется еще до того, как достигнет веб-приложения
Но это один из инструментов в рамках комплексной защиты веб-приложений. Он не сможет помочь, если сотрудники, которые работают с веб-сайтом компании, будут «терять» пароли, а разработчики — оставлять «открытые» комментарии в коде.

Авторы статьи – Александр Карпузиков (руководитель по развитию продуктов ИБ облачного бизнеса МТС) и Алешин Вячеслав (руководитель направления разработки облачных продуктов кибербезопасности в компании BI.ZONE).



Облачный WAF Premium — это специализированный аутсорсинг 24x7 для защиты веб-приложений от атак и взлома. Оставьте заявку, чтобы протестировать бесплатно.
Tags:
Hubs:
Total votes 4: ↑4 and ↓0+4
Comments0

Articles

Information

Website
www.mts.ru
Registered
Founded
Employees
over 10,000 employees
Location
Россия