Новая DoS-уязвимость в WordPress и Drupal
08.08.2014
Новая DoS-уязвимость в WordPress и Drupal
Уязвимость позволяет запустить очень эффективную DoS-атаку

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

Этот эксплойт, являющийся вариантом XML-RPC Entity Expansion (XEE) метода, лучше всего охарактеризовать как более эффективную версию "Billions Laugh" атаки.

Уязвимость существует во всех версиях WordPress и Drupal, затрагивая более 250 миллионов веб-сайтов, что составляет примерно 23% от всех сайтов в интернете.

Устранение уязвимости

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

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

Всем остальным администраторам сайтов WordPress и Drupal рекомендуется установить последние обновления безопасности, выпущенные сегодня обеими командами, которые объединили свои силы в создании исправления для этой уязвимости.

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

Методология атаки

XML-RPC является популярным интернет-протоколом, который используется для кросс-платформенной связи. И WordPress и Drupal содержат XML-RPC в своей основной сборке, используя его для выполнения удаленных вызовов API.

Уязвимость эксплуатирует лазейку в парсинге XML-RPC протокола, используя метод, известный как "расширение объекта" для запуска заданий, требующих большого количества системных ресурсов. Вместе, эти задания могут легко истощить большое количество ресурсов процессора и памяти, в результате чего увеличивается время отклика сервера и появляются простои сервера.

Как показывает POC скрипт, приведенный автором, атака использует неоднократные запросы к большой части содержимого XML сообщения, длина которого может измеряться десятками тысяч символов. Используя можество запросов, вложенных в один XML документ, злоумышленник может истощить сотни мегабайт памяти за один раз.

У сервера Apache по умолчанию установлено ограничение в 128 Мб памяти для каждого процесса (для максимум 151 разрешенного WP / Drupal соединения), злоумышленник может использовать этот метод, чтобы истощить вплоть до 19 Гб памяти.

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

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

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