Что такое Брандмауэр веб-приложений Azure?
Здесь вы узнаете об основах Брандмауэр веб-приложений Azure. В этом обзоре вы узнаете, является ли Azure Брандмауэр веб-приложений полезным инструментом для добавления в общую стратегию сетевой безопасности Contoso.
Обзор Брандмауэра веб-приложений Azure
Возможно, злоумышленники не будут беспокоиться с веб-приложениями. Однако тесты показывают, что боты или вредоносные субъекты проверяют новые веб-приложения на наличие слабых мест в течение нескольких минут после развертывания. Если вы размещаете приложение в Интернете, следует предположить, что злоумышленники проверят его на наличие уязвимостей практически сразу. Вы также можете предположить, что такие проверки будут продолжаться в течение всего времени существования приложения.
Большинство вредоносных тестов веб-приложений проверяют наличие одной или нескольких распространенных уязвимостей. При обнаружении субъект угроз может использовать эти уязвимости для выполнения атак, таких как следующие эксплойты:
- Атака путем внедрения кода SQL
- Межсайтовые сценарии
- Включение локальных и удаленных файлов
- Наводнения HTTP/HTTPS
- Атаки вредоносных ботов
Типичная задача в цикле разработки веб-приложений включает в себя написание кода для закрытия наиболее распространенных брешей в системе безопасности. Для написания кода безопасности требуется время, опыт и тестирование.
Брандмауэр веб-приложений Azure — это служба Azure, которая обеспечивает централизованную защиту размещенных в Azure веб-приложений. Брандмауэр веб-приложений Azure защищает веб-приложения от распространенных угроз, таких как внедрение кода SQL и межсайтовые сценарии.
Вы можете развернуть Брандмауэр веб-приложений Azure за считаные минуты. Ваши веб-приложения немедленно получают эффективную защиту от известных угроз, не требуя написания никакого кода безопасности.
Основные возможности Брандмауэра веб-приложений Azure
Ниже указаны некоторые важные функции, которые помогут вам оценить Брандмауэр веб-приложений Azure:
Управляемые правила. Правила, используемые Azure Брандмауэр веб-приложений для обнаружения и предотвращения распространенных эксплойтов, создаются, поддерживаются и обновляются командой безопасности Майкрософт. Если правило изменяется или набор правил (см. следующее описание), корпорация Майкрософт обновляет Azure Брандмауэр веб-приложений автоматически и легко.
Примечание.
Вы не можете изменить или удалить управляемые правила, предлагаемые Брандмауэром веб-приложений Azure. Однако если определенное правило проблематично для вашей среды (например, он блокирует допустимый трафик в веб-приложение), можно создать исключения или отключить правило или набор правил. Можно также создать настраиваемые правила для перезаписи поведения по умолчанию.
Правила бота: правила бота определяют хорошие боты и защищают от плохих ботов. Плохие боты обнаруживаются на основе Microsoft Threat Intelligence.
Пользовательские правила. Если управляемые правила, предлагаемые Azure Брандмауэр веб-приложений не охватывают определенную угрозу для веб-приложения, можно создать пользовательское правило.
Режимы: Azure Брандмауэр веб-приложений может работать в одном из двух режимов: режим обнаружения регистрирует только запросы, которые нарушают правило, а режим предотвращения — как журналы, так и блокирует запросы, которые нарушают правило.
Списки исключений. Вы можете настроить Azure Брандмауэр веб-приложений игнорировать определенные атрибуты при проверка запросах.
Политики. Вы можете объединить набор управляемых правил, пользовательских правил, исключений и других параметров Azure Брандмауэр веб-приложений в один элемент, называемый политикой azure Брандмауэр веб-приложений. Затем эту политику можно применить к нескольким веб-приложениям для упрощения управления и обслуживания.
Ограничения размера запроса. Вы можете настроить azure Брандмауэр веб-приложений для флага запросов, которые слишком малы или слишком большие.
Оповещения: Azure Брандмауэр веб-приложений интегрируется с Azure Monitor. Эта интеграция позволяет получать оповещения практически в реальном времени, когда WAF обнаруживает угрозу.
Распространенные атаки, предотвращаемые Брандмауэром веб-приложений Azure
В следующей таблице описаны наиболее распространенные типы вредоносных угроз, от которых защищает Брандмауэр веб-приложений Azure.
Угроза | Description |
---|---|
Межсайтовые сценарии | Злоумышленник использует веб-приложение для отправки вредоносного кода в веб-браузер другого пользователя. Браузер выполняет код, который предоставляет сценарию доступ к данным сеанса пользователя, файлам cookie и другим конфиденциальным сведениям. |
Включение локальных файлов | Злоумышленник использует уязвимости при обработке инструкций include , чаще всего в сценариях PHP. Передавая специально настроенный текст в инструкцию include сценария, злоумышленник может включить файлы, расположенные локально на сервере. Затем злоумышленник может получить доступ к конфиденциальной информации и выполнить команды сервера. |
Внедрение кода PHP | Злоумышленник вставляет специально составленный текст, чтобы вынудить сервер выполнять команды PHP. Эти команды позволяют злоумышленнику выполнять локальный или удаленный код PHP. Затем злоумышленник может получить доступ к конфиденциальным данным и выполнить команды на сервере. |
Протокольные атаки. | Злоумышленник вставляет специально составленный текст в заголовок запроса HTTP/HTTPS. В зависимости от конкретного текста, вставленного в заголовок, злоумышленник может вынудить сервер отобразить конфиденциальные данные или выполнить код. |
Удаленное выполнение команд. | Злоумышленник вынуждает сервер выполнить команды, связанные с операционной системой сервера. Например, в системе UNIX злоумышленник может вынудить сервер запустить ls , чтобы получить список каталогов. |
Включение удаленных файлов | То же, что и включение локального файла, за исключением того, что злоумышленник отправляет на сервер специально составленный текст, который передает удаленный файл, а именно файл на удаленном сервере, управляемом злоумышленником, в инструкцию include сценария. |
Фиксация сеансов | Злоумышленник использует уязвимость веб-приложения, которая позволяет получить допустимый идентификатор сеанса. Злоумышленник обманным путем заставляет пользователя пройти проверку подлинности в новом сеансе с этим идентификатором. Затем злоумышленник перехватывает этот сеанс, проверенный пользователем. |
Атака путем внедрения кода SQL | В поле веб-формы злоумышленник вставляет (или "внедряет") специально составленный текст, чтобы вынудить сервер выполнять команды SQL. Эти команды позволяют злоумышленнику получить доступ к конфиденциальным данным, вставлять, изменять или удалять данные, а также выполнять операции SQL. |
Все эксплойты, перечисленные в предыдущей таблице, возможны только в том случае, если сервер доверяет входным данным, которые он получает. Написание кода, который проверяет и блокирует только эти эксплойты, будет сложной и трудоемкой задачей. В предыдущей таблице представлена лишь небольшая часть возможных эксплойтов, которые могут быть использованы для веб-приложения. Брандмауэр веб-приложений Azure предназначен для предотвращения таких и многих других атак.
Очистка входных данных
Угрозы, с которыми сталкиваются современные веб-приложения, являются разнообразными и сложными. Однако в большинстве случаев эксплойты могут быть вызваны тем, что веб-приложение неявно доверяет получаемым им данным.
Например, рассмотрим веб-форму, с помощью которой полномочный пользователь веб-приложения входит в учетную запись пользователя. Форма состоит всего из трех элементов:
- Текстовое поле Имя пользователя
- Текстовое поле Пароль
- Кнопка Войти
Когда полномочный пользователь заполняет форму и выбирает Войти, сценарий веб-приложения сохраняет имя пользователя и пароль в переменных. Предположим, что эти переменные называются userName
и userPassword
соответственно. Затем сценарий выполняет следующую инструкцию:
sql = "SELECT * FROM users WHERE username='" + userName + "' AND password='" + userPassword + "'"
Например, если имя пользователя и support
пароль есть 1234ABCD
, sql
переменная имеет следующее значение:
SELECT * FROM users WHERE username='support' AND password='1234ABCD'
Веб-приложение выполняет эту инструкцию SQL. Если из запроса возвращается запись, веб-приложение выполняет вход для пользователя.
Теперь предположим, что злоумышленник вводит admin'--
в поле Имя пользователя и оставляет поле Пароль пустым. В данном случае итоговая инструкция SQL имеет следующий вид:
SELECT * FROM users WHERE username='admin'--' AND password=''
Во многих системах SQL двойные дефисы (--
) обозначают начало комментария. Все, что идет после --
, пропускается, поэтому предыдущая инструкция эквивалентна следующему коду:
SELECT * FROM users WHERE username='admin'
Предположим, что у пользователя есть имя admin
пользователя, эта команда выполняет вход в злоумышленника в качестве администратора; серьезная нарушение!
Предыдущий пример — это экземпляр эксплойт, называемый внедрением SQL. Злоумышленники могут воспользоваться преимуществами внедрения кода SQL и других эксплойтов в веб-приложениях, доверяющих всем входным данным.
Azure Брандмауэр веб-приложений создает барьер ненадежного взаимодействия между веб-приложением и его входными данными пользователя. Брандмауэр веб-приложений Azure предполагает, что все входные данные являются потенциально вредоносными, поэтому очищает их.
В зависимости от контекста очистка входных данных подразумевает различные процедуры. Например, очистка входных данных может означать удаление явно опасных элементов текста, таких как индикаторы комментариев SQL. Как бы ни проводилась очистка, результатом являются входные данные, неспособные навредить веб-приложению или его серверным данным.