Несколько часов назад, исследователь безопасности Нир Гольдшлегер обнаружил новую критичную уязвимость, которая позволяет злоумышленникам запустить очень эффективную 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-сущностей.
Сочитание чрезвычайно большого пула целей и высокого потенциала нанесения ущерба, делает эксплойт тройной угрозой – широко распространяющейся, критической и тяжело избегаемой.