Миллионы сайтов уязвимы к XSS из-за корявой имплементации OAuth

Миллионы сайтов уязвимы к XSS из-за корявой имплементации OAuth

Миллионы сайтов уязвимы к XSS из-за корявой имплементации OAuth

Исследователи из Salt Labs обнародовали разбор нового вектора XSS-атаки (межсайтовый скриптинг), который в теории может угрожать миллионам сайтов по всему миру.

Стоит учитывать, что это не уязвимость в каком-либо продукте, поэтому её нельзя устранить централизованно. Корень проблемы кроется в сочетании веб-кода с популярным приложением OAuth.

Не так давно мы разбирали уязвимости протокола OAuth 2.0 и оценивали, опасно ли аутентифицироваться через профиль в социальных сетях. А в мае на Anti-Malware.ru рассказывали о том, как противостоять растущему числу атак с использованием OAuth-приложений.

В описанном Salt Labs векторе проблема не в самом OAuth, а скорее в его реализации на веб-сайтах. Если администратор ресурса недостаточно качественно имплементировал OAuth (что случается довольно часто), у злоумышленников открывается возможность провести XSS-атаку и получить контроль над аккаунтом.

В отчёте Salt Labs утверждается, что описанная проблема была обнаружена на сайтах таких крупных проектов, как Booking.com, Grammarly и OpenAI. Если администраторы этих ресурсов не смогли должным образом имплементировать OAuth, чего можно ждать от менее значимых веб-сайтов, спрашивают эксперты.

«Если мы продолжим прощупывать разные интернет-проекты, мы гарантированно найдём больше сайтов с этой проблемой. Я убеждён в этом», — пишет Янив Балмас из Salt Labs.

«Для эксплуатации этой бреши мы использовали JavaScript-код, который запускал поток OAuth-аутентификации в новом окне, а затем считывал токен из этого окна».

Google перенаправляет пользователя, но с «секретами» аккаунта в URL, а код JS считывает URL-адрес из новой вкладки и вытаскивает оттуда учётные данные.

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

Популярная библиотека Axios оказалась заражена трояном через npm

Популярная JavaScript-библиотека Axios оказалась жертвой атаки на цепочку поставок: злоумышленник скомпрометировал npm-аккаунт одного из ведущих мейнтейнеров и через него опубликовал две вредоносные версии пакета — axios@1.14.1 и axios@0.30.4.

По данным исследователей, обе сборки распространяли скрытый троян для macOS, Windows и Linux. Axios при этом остаётся одной из самых популярных библиотек в экосистеме npm — её скачивают примерно 100 млн раз в неделю.

В заражённые версии Axios добавили всего одну новую зависимость — plain-crypto-js@4.2.1, замаскированную под легитимную библиотеку crypto-js. При этом в исходном коде Axios эта зависимость никак не использовалась: её задачей был запуск postinstall-скрипта, который связывался с управляющим сервером, скачивал вредоносную нагрузку под конкретную ОС и затем зачищал следы своей работы.

Атака развивалась поэтапно. Сначала в npm загрузили «чистую» приманку plain-crypto-js, чтобы создать историю публикаций, а затем — уже заражённую версию. После этого через взломанный аккаунт мейнтейнера были опубликованы две вредоносные версии Axios — сначала для ветки 1.x, а затем для старой, но всё ещё популярной ветки 0.x. То есть атакующий накрыл сразу оба основных сценария использования библиотеки.

Согласно анализу, вредоносный код начинал сетевую активность почти сразу после установки пакета. На macOS троян маскировался под системный процесс Apple, на Windows использовал PowerShell и скрытый скрипт, а на Linux разворачивал Python-бэкдор во временной директории. После этого вредоносный модуль удалял собственные файлы и подменял их «чистой» заглушкой, чтобы при поверхностной проверке установленный пакет не вызывал подозрений.

Вредоносные версии, по имеющимся данным, оставались доступными в npm примерно два-три часа, после чего их удалили, а пакет plain-crypto-js попал под блокировку. При этом заражённые релизы не появились среди тегов GitHub-репозитория Axios, что указывает на публикацию напрямую в npm в обход обычного CI/CD-пайплайна проекта.

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