PT Application Firewall защищает от эксплуатации критической уязвимости в веб-фреймворке Struts

PT Application Firewall защищает от эксплуатации критической уязвимости в веб-фреймворке Struts

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

Веб-фреймворк Apache Struts — один из самых популярных инструментов для создания сайтов и приложений (в том числе корпоративных, например банк-клиентов). 2 марта 2014 года появилась информация об обнаружении критической уязвимости в Struts 2 (S2-020), которая позволяет добиться выполнения произвольного кода. Проблема затрагивает версии Struts вплоть до 2.3.16.

Причина возникновения ошибки безопасности кроется в неправильной обработке входящего параметра class, для которого устанавливается автоматическое соответствие с методом getClass(). Благодаря уязвимости атакующий имеет возможность назначать собственные значения для свойств внутренних объектов веб-приложения, что и позволяет выполнять произвольный код.

Первоначальное решение производителя для устранения уязвимости — добавить в конфигурацию приложения регулярное выражение для блокировки уязвимого параметра. Однако обойти этот фикс оказалось просто: представление имени параметра с помощью точек (class.classLoader) можно заменить квадратными скобками (class[classLoader]), на что регулярное выражение не было рассчитано. Кроме того, обход можно реализовать и с помощью смены регистра (Class.classLoader).

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

На текущий момент способов защиты приложений, созданных на фреймворке Struts, не так много. Один из них — использование Positive Technologies Application Firewall. Благодаря эвристическим алгоритмам обнаружения аномальных запросов PT Application Firewall может справиться с уязвимостью, блокируя нетипичные параметры без создания так называемых виртуальных патчей, которые обычно призваны защитить веб-приложение до исправления уязвимости.

Домашний Wi-Fi – ваша крепость или картонный домик?

Узнайте, как построить неприступную стену