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

Уязвиимости в модулях Node.js

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

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

Вид атаки

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

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

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

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

25 модулей

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

уязвимые для ReDoS-атак модули Node.js

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

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

Источник: Bleeping Computer

Ещё интересное для вас:
— Биты, байты, Ада Лавлейс — тест на знание околоIT.
— Level Up — события и курсы, на которых можно поднять свой уровень.
— Работа мечты — лучшие IT-вакансии для вас.