Написать пост

В модулях Node.js обнаружены 25 уязвимостей, открывающих веб-приложения и серверы для ReDoS-атак

Аватар Екатерина Никитина

Несколько ReDoS-атак подряд могут привести к продолжительной «заморозке» сервера. Уязвимы 12 % всех ресурсов, основанных на Node.js.

Исследователи из Дармштадтского технического университета (Германия) обнаружили 25 новых уязвимостей в модулях Node.js. Они открывают веб-серверы и приложения для ReDoS-атак, приводящих к отказу в обслуживании на протяжении от нескольких секунд до минуты.

На данный момент обнаружено 340 веб-сайтов, содержащих хотя бы одну из уязвимостей. Полное описание брешей доступно в статье.

Вид атаки

ReDoS-атаки (Regular Expression Denial of Service) используют недостатки производительности кода при работе с регулярными выражениями. Злоумышленник может загрузить на сервер или в приложение в качестве входных данных большой и сложный кусок текста. Если компоненты сервиса специально не предназначены для обработки таких разнообразных типов данных, это полностью заблокирует ресурс или приложение на время, которое ему потребуется, чтобы разобраться с входным массивом.

Отправка друг за другом нескольких таких пакетов приведет к более продолжительной «заморозке» сервера.

Для такой атаки уязвимы множество языков программирования и веб-сервисов. В случае с JavaScript последствия хуже из-за того, что язык использует однопоточную модель выполнения, когда каждый запрос обрабатывается по очереди. В итоге ReDoS-атака не замедляет какую-то конкретную операцию, а блокирует работу всего сервера.

О ReDoS-атаках стало известно еще в 2012 году, однако в то время JavaScript, а конкретно — Node.js, не так широко использовался в веб-разработке, поэтому больше пяти лет проблему игнорировали.

25 модулей

Исследователи привели список модулей, в которых обнаружена хотя бы одна из неизвестных ранее уязвимостей:

В модулях Node.js обнаружены 25 уязвимостей, открывающих веб-приложения и серверы для ReDoS-атак 1

Они сообщили о наличии брешей разработчикам npm-модулей и выложили на GitHub proof-of-concept-эксплойт для каждой из них. Также исследователи создали инструмент, с которым можно выявлять уязвимые сайты, не проводя полноценную атаку. Таким образом было обнаружено 339 ресурсов — 12 % от всех, что основаны на Node.js.

В июле 2018 года хакеры смогли незаметно подменить npm-пакеты для анализа JavaScript-кода на копии с вредоносным ПО для хищения учетных данных. До того, как взлом обнаружили, злоумышленники получили доступы к записям 4,5 тысяч разработчиков.

Следите за новыми постами
Следите за новыми постами по любимым темам
3К открытий3К показов