В модулях Node.js обнаружены 25 уязвимостей, открывающих веб-приложения и серверы для ReDoS-атак
Новости
Несколько ReDoS-атак подряд могут привести к продолжительной «заморозке» сервера. Уязвимы 12 % всех ресурсов, основанных на Node.js.
3К открытий3К показов
Исследователи из Дармштадтского технического университета (Германия) обнаружили 25 новых уязвимостей в модулях Node.js. Они открывают веб-серверы и приложения для ReDoS-атак, приводящих к отказу в обслуживании на протяжении от нескольких секунд до минуты.
На данный момент обнаружено 340 веб-сайтов, содержащих хотя бы одну из уязвимостей. Полное описание брешей доступно в статье.
Вид атаки
ReDoS-атаки (Regular Expression Denial of Service) используют недостатки производительности кода при работе с регулярными выражениями. Злоумышленник может загрузить на сервер или в приложение в качестве входных данных большой и сложный кусок текста. Если компоненты сервиса специально не предназначены для обработки таких разнообразных типов данных, это полностью заблокирует ресурс или приложение на время, которое ему потребуется, чтобы разобраться с входным массивом.
Отправка друг за другом нескольких таких пакетов приведет к более продолжительной «заморозке» сервера.
Для такой атаки уязвимы множество языков программирования и веб-сервисов. В случае с JavaScript последствия хуже из-за того, что язык использует однопоточную модель выполнения, когда каждый запрос обрабатывается по очереди. В итоге ReDoS-атака не замедляет какую-то конкретную операцию, а блокирует работу всего сервера.
О ReDoS-атаках стало известно еще в 2012 году, однако в то время JavaScript, а конкретно — Node.js, не так широко использовался в веб-разработке, поэтому больше пяти лет проблему игнорировали.
25 модулей
Исследователи привели список модулей, в которых обнаружена хотя бы одна из неизвестных ранее уязвимостей:
Они сообщили о наличии брешей разработчикам npm-модулей и выложили на GitHub proof-of-concept-эксплойт для каждой из них. Также исследователи создали инструмент, с которым можно выявлять уязвимые сайты, не проводя полноценную атаку. Таким образом было обнаружено 339 ресурсов — 12 % от всех, что основаны на Node.js.
В июле 2018 года хакеры смогли незаметно подменить npm-пакеты для анализа JavaScript-кода на копии с вредоносным ПО для хищения учетных данных. До того, как взлом обнаружили, злоумышленники получили доступы к записям 4,5 тысяч разработчиков.
3К открытий3К показов