Веб-приложения и серверы на JavaScript уязвимы к атакам ReDoS

Веб-приложения и серверы на JavaScript уязвимы к атакам ReDoS

Веб-приложения и серверы на JavaScript уязвимы к атакам ReDoS

Веб-приложения и серверы на JavaScript затрагивает опасная форма уязвимости, которая может привести к успешной атаке вида ReDoS (regular expression denial of service). Злоумышленник может проэксплуатировать уязвимость, посылая большие и сложные фрагменты текста на инпут веб-сервера или приложения на основе JavaScript.

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

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

Если злоумышленник проведет атаку ReDoS, она «положит» весь сервер, а не только одну конкретную операцию. Интересно, что впервые подобные схемы ReDoS-атак были описаны еще в далеком 2012 году.

Проведенный в прошлом году исследования показали, что 5 % всех уязвимостей, обнаруженных в библиотеках и приложениях Node.js, были связаны с ReDoS.

Сейчас же эксперты считают, что атаки ReDoS набирают популярность, так эти уязвимости игнорировались на протяжении долгого времени. Кристиан-Александру Стайцу и Майкл Прадель из Дармштадтского технического университета в Германии сообщили об обнаружении 25 ранее неизвестных уязвимостей в популярных модулях Node.js.

Эксперты опубликовали список этих модулей и брешей в них:

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

Эксперты проверили 2 846 популярных сайта, из которых 339 (12 %) оказались уязвимы хотя бы перед одной ReDoS-уязвимостью.

Стайцу и Прадель опубликовали POC-код, доказывающий наличие проблемы, на GitHub.

Почему не стоит входить с помощью Google в важные аккаунты

Кнопка «Войти с аккаунтом Google» долго казалась удобным решением, ибо не нужно придумывать новый пароль, заполнять профиль и помнить ещё одни учётные данные. Но у такого удобства есть обратная сторона. Главный риск — зависимость от одного аккаунта.

Если пользователь потеряет доступ к Google из-за взлома, блокировки, фишинга или другой проблемы, под ударом окажутся не только Gmail и Диск, но и все сторонние сервисы, куда он входил через Google.

Это может быть что угодно: рабочие инструменты, доставка еды, такси, умный дом, сервисы ИИ, приложения для путешествий или финансов.

Есть и вопрос безопасности. Современные фишинговые атаки умеют подделывать страницу входа Google и перехватывать не только пароль, но и сессионные токены.

В таком случае злоумышленник может получить доступ к аккаунту даже при включённой двухфакторной аутентификации. Чем чаще пользователь входит в разные сервисы через всплывающие окна Google, тем выше риск попасть на такую подделку.

Ещё один минус — недостаток конфиденциальности. Когда разные сервисы привязаны к одному Google-аккаунту, компания получает более цельную картину цифровой активности пользователя: какие приложения он использует, как часто и в каких сценариях. Даже если данные обрабатываются в агрегированном виде, это всё равно расширяет цифровой след.

Более безопасная альтернатива — создавать отдельные учётные записи для важных сервисов и хранить пароли в менеджере паролей. Это менее удобно на старте, зато снижает риск единой точки отказа. Если один аккаунт будет скомпрометирован или заблокирован, остальные не посыплются вслед за ним.

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

RSS: Новости на портале Anti-Malware.ru