Миллиардные инвестиции оказались бессильны против простой JavaScript-атаки.
Свежее автоматизированное исследование от компании ETHIACK Для просмотра ссылки Войдиили Зарегистрируйся , что современные средства защиты веб-приложений, включая широко используемые Для просмотра ссылки Войди или Зарегистрируйся , — уязвимы к атакам нового типа, сочетающим JavaScript-инъекции с техникой загрязнения параметров HTTP. Испытания, охватившие продукты крупнейших облачных платформ и ИБ-вендоров, продемонстрировали, что более 70% конфигураций WAF можно обойти при помощи особым образом составленных запросов.
Ключ к атаке кроется в различиях логики обработки дублирующихся параметров в HTTP-запросах между приложениями и защитными системами. В частности, уязвимость была впервые замечена в ASP.NET-приложении, защищённом строго настроенным WAF. Особенность ASP.NET заключается в том, что при наличии нескольких параметров с одинаковым именем, их значения объединяются через запятую. Это поведение становится критичным, если такие параметры используются внутри JavaScript-контекста — даже невинный с виду набор значений способен превратиться в исполняемый код.
В качестве примера приведён запрос с /?q=1’&q=alert(1)&q=’2. После объединения сервер формирует строку 1′,alert(1),’2, которая, будучи внедрённой в JavaScript-строку, становится синтаксически корректной и приводит к выполнению вложенного кода. Виной тому — оператор запятой в JavaScript, позволяющий последовательно выполнять несколько выражений. Это открывает путь к внедрению вредоносных сценариев, минуя сигнатурные фильтры большинства WAF.
Используемая техника — HTTP Parameter Pollution — уже известна, однако именно её сочетание с JavaScript-инъекциями позволило добиться столь высокой эффективности. Специалисты протестировали 17 различных конфигураций WAF от AWS, Google Cloud, Microsoft Azure, Cloudflare и других. Простые нагрузки обходили около 17% систем, но сложные, использующие загрязнение параметров, оказались успешны в 70% случаев.
Только пять конфигураций смогли отразить все тестовые атаки. Это один из наборов правил Azure WAF, Google Cloud Armor и три конфигурации open-appsec. Особенно уязвимыми оказались три тестируемых набора правил AWS WAF — они провалили все проверки, пропустив каждую из загруженных нагрузок. Общая тенденция выявила заметное превосходство систем на базе машинного обучения над традиционными сигнатурными решениями: поведенческие модели оказались гораздо чувствительнее к тонким искажённым конструкциям.
Однако и среди продвинутых решений были найдены слабые места. Автономный «хакбот» исследователей выявил ещё одну уязвимую конфигурацию в Azure WAF, которую удалось обойти с помощью примитивного запроса test\\’;alert(1);//. Это подчёркивает, что даже облачные решения, позиционируемые как флагманы безопасности, остаются подвержены элементарным приёмам обхода.
Авторы подчёркивают, что WAF не может служить самостоятельным рубежом защиты при наличии небезопасного кода в приложении. Само наличие такой уязвимости говорит о фундаментальном разрыве в логике обработки входящих данных между защитными системами и веб-средой. Без пересмотра архитектурных решений и надёжной фильтрации на стороне самого приложения, дорогостоящие WAF не смогут гарантировать надёжную защиту от атак, основанных на трюках с парсингом.
Свежее автоматизированное исследование от компании ETHIACK Для просмотра ссылки Войди
Ключ к атаке кроется в различиях логики обработки дублирующихся параметров в HTTP-запросах между приложениями и защитными системами. В частности, уязвимость была впервые замечена в ASP.NET-приложении, защищённом строго настроенным WAF. Особенность ASP.NET заключается в том, что при наличии нескольких параметров с одинаковым именем, их значения объединяются через запятую. Это поведение становится критичным, если такие параметры используются внутри JavaScript-контекста — даже невинный с виду набор значений способен превратиться в исполняемый код.
В качестве примера приведён запрос с /?q=1’&q=alert(1)&q=’2. После объединения сервер формирует строку 1′,alert(1),’2, которая, будучи внедрённой в JavaScript-строку, становится синтаксически корректной и приводит к выполнению вложенного кода. Виной тому — оператор запятой в JavaScript, позволяющий последовательно выполнять несколько выражений. Это открывает путь к внедрению вредоносных сценариев, минуя сигнатурные фильтры большинства WAF.
Используемая техника — HTTP Parameter Pollution — уже известна, однако именно её сочетание с JavaScript-инъекциями позволило добиться столь высокой эффективности. Специалисты протестировали 17 различных конфигураций WAF от AWS, Google Cloud, Microsoft Azure, Cloudflare и других. Простые нагрузки обходили около 17% систем, но сложные, использующие загрязнение параметров, оказались успешны в 70% случаев.
Только пять конфигураций смогли отразить все тестовые атаки. Это один из наборов правил Azure WAF, Google Cloud Armor и три конфигурации open-appsec. Особенно уязвимыми оказались три тестируемых набора правил AWS WAF — они провалили все проверки, пропустив каждую из загруженных нагрузок. Общая тенденция выявила заметное превосходство систем на базе машинного обучения над традиционными сигнатурными решениями: поведенческие модели оказались гораздо чувствительнее к тонким искажённым конструкциям.
Однако и среди продвинутых решений были найдены слабые места. Автономный «хакбот» исследователей выявил ещё одну уязвимую конфигурацию в Azure WAF, которую удалось обойти с помощью примитивного запроса test\\’;alert(1);//. Это подчёркивает, что даже облачные решения, позиционируемые как флагманы безопасности, остаются подвержены элементарным приёмам обхода.
Авторы подчёркивают, что WAF не может служить самостоятельным рубежом защиты при наличии небезопасного кода в приложении. Само наличие такой уязвимости говорит о фундаментальном разрыве в логике обработки входящих данных между защитными системами и веб-средой. Без пересмотра архитектурных решений и надёжной фильтрации на стороне самого приложения, дорогостоящие WAF не смогут гарантировать надёжную защиту от атак, основанных на трюках с парсингом.
- Источник новости
- www.securitylab.ru