Ssylka

Новый сценарий JavaScript-инъекций: за пределами React и XSS

Доминирование JavaScript в вебе создало новые поля сражений в области кибербезопасности. Классическое понимание межсайтового скриптинга (XSS) устарело, поскольку злоумышленники разработали более изощренные методы атак. Современные фреймворки, включая React, Vue и Angular, не являются неуязвимыми для новых угроз, таких как инъекции в промпты искусственного интеллекта (AI Prompt Injection), компрометация цепочек поставок, загрязнение прототипа (Prototype Pollution) и DOM-based XSS, которые обходят традиционные серверные проверки в одностраничных приложениях.
Новый сценарий JavaScript-инъекций: за пределами React и XSS
Изображение носит иллюстративный характер

Масштаб и сложность современных угроз были продемонстрированы в июне 2024 года в ходе атаки на цепочку поставок . Этот инцидент, названный «крупнейшей JavaScript-инъекцией года», затронул более 100 000 веб-сайтов. После того как доверенная библиотека была приобретена китайской компанией, новые владельцы использовали её для внедрения вредоносного кода на все использующие её ресурсы. Среди жертв оказались такие компании, как Hulu, Mercedes-Benz и WarnerBros.

Статистика подтверждает ускоряющийся рост уязвимостей. К середине 2024 года было зарегистрировано 22 254 уязвимости (CVE), что на 30% больше, чем в 2023 году, и на 56% больше, чем в 2022 году. Учитывая, что 98% всех сайтов используют JavaScript на стороне клиента, а для 67,9% разработчиков он является основным языком программирования, поверхность атаки продолжает экспоненциально расширяться.

Даже современные фреймворки с встроенной защитой, такие как React, содержат функции, которые при неправильном использовании создают уязвимости. Яркий пример — функция dangerouslySetInnerHTML. Она намеренно обходит встроенные механизмы очистки React для прямой вставки HTML в DOM. Эксплуатация этой уязвимости может привести к краже аутентификационных cookie и токенов сессий, выполнению действий от имени пользователя, перенаправлению на вредоносные сайты и перехвату конфиденциальных данных, таких как пароли и номера кредитных карт.

Для предотвращения подобных атак рекомендуется использовать специализированные библиотеки для очистки данных, например DOMPurify. Этот инструмент анализирует HTML-содержимое, удаляет весь потенциально вредоносный код, включая исполняемые скрипты, и сохраняет только безопасные теги форматирования, такие как <b>, <i> и <p>. Такой подход обеспечивает безопасное отображение пользовательского контента.

Финансовый сектор является основной целью для адаптивных вредоносных программ. В марте 2023 года отчёт IBM зафиксировал кампанию, нацеленную на более чем 40 банков в Северной и Южной Америке, Европе и Японии. В результате было скомпрометировано свыше 50 000 пользовательских сессий. Вредоносное ПО использовало сложные JavaScript-инъекции, способные распознавать структуру страниц банковских сайтов и динамически внедрять скрипты для кражи учётных данных и одноразовых паролей.

Эти программы демонстрировали продвинутые возможности: адаптивное поведение с постоянной связью с командными серверами (C2) для корректировки тактики, сложную обфускацию для сокрытия вредоносного кода и методы уклонения, которые удаляли следы своего присутствия и избегали выполнения при обнаружении защитного ПО.

Ключевым принципом защиты является «Хранить в сыром виде, кодировать на выводе». Данные должны храниться в базе данных в исходной, некодированной форме. Кодирование применяется только в момент отображения и должно соответствовать контексту: HTML-сущности для контента HTML, экранирование JavaScript для скриптов, URL-кодирование для ссылок и CSS-экранирование для таблиц стилей. Это предотвращает ошибки двойного кодирования и обеспечивает целостность данных.

Безопасность — это не контрольный список, а непрерывный процесс построения многоуровневой защиты. Основные правила этого подхода: никогда не доверять клиентскому коду, всегда проводить валидацию на стороне сервера и кодировать данные в зависимости от контекста их использования.

Новые технологии также вводят свои риски. WebAssembly (Wasm), несмотря на производительность и изолированную среду выполнения (sandbox), не является панацеей. Код, скомпилированный из небезопасных по управлению памятью языков, таких как C/C++, может переносить в Wasm уязвимости, например, переполнение буфера. Бинарный формат Wasm сложнее для аудита, чем читаемый JavaScript, и создаёт новые поверхности для атак, включая сайд-ченнел атаки.

Интеграция искусственного интеллекта и больших языковых моделей (LLM) в веб-приложения породила новый класс уязвимостей — атаки с использованием инъекций в промпты. В этом сценарии злоумышленник создаёт специальный запрос (промпт), который заставляет модель ИИ генерировать и выполнять вредоносный JavaScript в браузере пользователя, открывая ещё один вектор для атак.

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


Новое на сайте

18805Может ли перенос лечения на первую половину дня удвоить выживаемость при раке легких? 18804Новая китайская группировка LongNosedGoblin использует легальные облачные сервисы для... 18803Генетический анализ раскрыл древнейший случай кровосмешения первой степени в итальянской... 18802Скрытые формы природного интеллекта и ловушки информационной эры 18801Как хакерам из северной Кореи удалось похитить рекордные 2,02 миллиарда долларов в 2025... 18800Hewlett Packard Enterprise устраняет уязвимость максимального уровня критичности в по... 18799Как первые подробные карты «точки невозврата» на солнце помогут защитить земные технологии 18798Динамическая защита как единственный ответ на бесконтрольное разрастание искусственного... 18797Древнее сближение солнца с гигантскими звездами раскрыло тайну аномалии местного космоса 18796Северокорейские хакеры Kimsuky внедрили QR-фишинг для распространения трояна DocSwap 18795Как китайская кибергруппировка использует критическую уязвимость CVE-2025-20393 18794Как изобилие пингвинов превратило пум-одиночек в терпимых друг к другу хищников? 18793Критическая уязвимость устройств SonicWall SMA 100 используется хакерами для получения... 18792Как ваш Android TV мог стать частью глобального ботнета Kimwolf размером в 1,8 миллиона... 18791Почему на склоне холма в Линкольншире был зарыт уникальный клад англосаксонского золота?