FrontSecOps
820 subscribers
63 photos
7 videos
1 file
52 links
Безопасность и безопасная разработка frontend-приложений. Актуальные риски и методы защиты современных js-приложений.

По всем вопросам @mkparfenov
Download Telegram
⚠️⚠️⚠️ Критическая уязвимость в React Server Components и Next.js

Небезопасная десериализация, RCE. Специально сформированный HTTP-запрос неаутентифицированного пользователя приводит к выполнению произвольного кода на сервере ♥️

CVE-2025-55182 / CVSS 10.0 ☄️
Эксплойт доступен 💣

Уязвимость присутствует в версиях 19.0, 19.1.0, 19.1.1 и 19.2.0 пакетов:
🔸 react-server-dom-webpack
🔸 react-server-dom-parcel
🔸 react-server-dom-turbopack

Уязвимость затрагивает как минимум: next, react-router, waku, @parcel/rsc, @vitejs/plugin-rsc и rwsdk.

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

Подробности:
🔸 https://react.dev/blog/2025/12/03/critical-security-vulnerability-in-react-server-components
🔸 https://www.wiz.io/blog/critical-vulnerability-in-react-cve-2025-55182

@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥95👏1
В среду 28 января в 11:00 МСК в прямом эфире AM Live будем говорить об актуальных угрозах и средствах защиты веб-приложений 🛡

Обсудим:

🔸Цель злоумышленников, что монетизируют в первую очередь?

🔸Что важнее? WAF, Frontend Security, Anti DDOS/Bot, защита API, процессы/инвентаризация, безопасность мобильных приложений, SSDLC/РБПО?

🔸Как при внедренном WAF и защите API вредоносный скрипт на фронтенде может месяцами похищать персональные данные пользователей?

Участие бесплатное, регистрация по ссылке 🔗
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5
В крупнейшем банке США 😒 (топ 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
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍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/
🔥1
JS-червь в frontend-приложении Meta-Wiki (проект Википедии)

Любопытный инцидент в Meta-Wiki (сайт, где обсуждаются события в проектах Фонда Викимедиа).

У пользователей сайта есть возможность добавления на страницу js-скриптов для кастомизации собственного интерфейса. У администраторов есть возможность изменения глобального js-скрипта, который выполняется у всех пользователей.

5 марта 2026 сотрудник из команды безопасности проекта зачем-то запустил скрипт, который "в алфавитном порядке массово импортировал (вероятно, с целью тестирования) чужие личные JavaScript-страницы из разных вики-проектов". У одного из пользователей (Ololoshka562 🤡) на странице был добавлен вредоносный js-код 🧨

Что делал вредоносный скрипт?

🔸 Проверял полномочия пользователя
🔸 При наличии прав изменял общий js-скрипт
🔸 Изменял персональный js-скрипт
🔸 Изменял случайную страницу в проекте (добавлял "несуществующую картинку дятла 🐦" и различные надписи)
🔸 При запуске у других пользователей выполнял аналогичные действия (распространение по принципу червя)

Через несколько минут общий js-скрипт был изменен, что привело к выполнению вредоносного кода у всех пользователей.

За 30 минут страницы открыли около 100 пользователей, что привело к добавлению дятла на около 4000 страниц.

Для предотвращения дальнейшей порчи контента в проекте была заблокирована возможность редактирования до очистки страниц от вредоносного кода.

Сам по себе инцидент не очень критичный, но крайне интересный с точки зрения червеобразного поведения и как пример способа реализации (монетизации) в виде выполнения действий от имени пользователя fronend-приложения ⌨️

Frontend Kill Chain :
Вектор:
🔹T-20: Инсайдеры (добавлен сотрудником по ошибке)

Способ реализации:
🔹T-76: Выполнение действий от имени пользователя (изменение страниц и распространение)

@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚠️ Компрометация npm-пакета Axios

Axios - популярный HTTP-клиент для JavaScript 📱 с > 100 млн загрузок в неделю.

Аккаунт мейнтейнера был скомпрометирован, к библиотеке была подключена вредоносная зависимость plain-crypto-js@4.2.1 и опубликованы новые версии:
🔸axios@1.14.1
🔸axios@0.30.4

Зависимость plain-crypto-js@4.2.1 содержала postinstall-скрипт, который запускал выполнение вредоносного кода на машине разработчика / раннере CI/CD - установку RAT (Remote Access Trojan) 🤒, что может привести к краже данных, установке программ-вымогателей, дальнейшему распространению по корпоративной сети и т.д.

Время присутствия в npm : 3 часа

Все индикаторы компрометации описаны здесь

@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
😱5
Через час выложу пост про Применимость композиционных анализаторов (SCA) для обнаружения вредоносного кода в frontend-приложениях 🖥...

А пока приглашаю всех на CISO Forum 2026 - важное событие для CISO, CIO, ИБ-архитекторов и AppSec-специалистов России.

В 16:00 выступаю с докладом «WAF внедрили, API защитили... А данные крадут собственные и партнерские js-скрипты на веб-страницах. Как защитить фронтенд?»

Много лет назад на другом мероприятии к нам подбежал человек и сказал: МУЖИКИ! ТАМ КОНЕЦ 🫨 ! ТАМ ПРЯМ ЗА СТОЛОМ DLP ПРОДАЮТ 🙄...

Мы DLP не продаем, но прямо на стенде DPA Analytics будем проводить аудиты безопасности ваших frontend-приложений с помощью FAST-анализатора 🔎

А еще на стенде разыграем джедайские мечи 🗡🌟🎁🎁🌟, которые дадут силу для защиты ваших приложений!

28 апреля 2026
Центр международной торговли (Москва)
CISO Forum 2026 → Зарегистрироваться
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥52👍1
Почему композиционный анализ (SCA) не гарантирует отсутствие вредоносного кода в frontend-приложении?

В прошлый раз мы обсуждали, почему SAST не может обнаружить вредоносный код в frontend-приложениях. Сегодня рассмотрим SCA.

1️⃣ Современные js-фреймворки 📱 используют пакетный менеджер (npm). Все зависимости при билде упаковываются в файл-бандл (app.js, main.js и т.п.). Этот бандл подключается на веб-страницу в виде файлового скрипта. SCA-анализатору передается файл package.json/package-lock.json - по данному файлу SCA обнаружит зависимости, которые попадут в бандл.

НО
на веб-странице могут быть подключены и другие скрипты 👩‍💻. В следующем примере на странице размещен бандл (main.js) и еще 2 внешних и 2 инлайн-скрипта. О них SCA не знает.

<html>
<head>
<script src="//metrics.ru/metrics.js"></script>
<script src="//cdn.ru/module.js"></script>
<script src="/js/main.js"></script>
</head>

<body onload='console.log("inline 1 script")'>
<div id="root"></div>
<script>console.log("inline 2 script")</script>
</body>
</html>


2️⃣ У вас в проекте нет внешних и инлайн-скриптов? А вы уверены? Проверяете? На аудитах безопасности мы иногда обнаруживаем даже скрипты Яндекс Метрики в проектах, которые должны работать в корп. сетях без интернета 😱. Поэтому одной уверенности здесь мало.

3️⃣ В некоторых компаниях SCA встроен только на этапе сканирования образов контейнеров 🖥. Для frontend-приложений это бессмысленно, т.к. из файла-бандла js невозможно восстановить зависимости (невозможно = SCA этим не занимается). Поэтому ваш Trivy покажет вам только уязвимости пакетов ОС, т.к. не найдет ни одной зависимости npm. Анализировать npm-зависимости необходимо только по исходному коду (package-lock.json).

4️⃣ В js есть возможность динамического импорта модулей / добавления на страницу новых скриптов в рантайме 🔎. Любая библиотека может загрузить новые скрипты со сторонних хостов. Код даже может быть спрятан в картинке/другом ресурсе и проинтерпретирован динамически через eval(). Если такое поведение библиотеки (НДВ) еще не засветилось и не попало в базы вредоносных пакетов вашего SCA, то вы об этом не узнаете.

6️⃣ Об актуальности базы вредоносных/уязвимых пакетов. Любая база пополняется с задержкой. Например в инциденте с вредоносным кодом в библиотеке polyfill.js информация попала в базы только через 4 месяца 😭. В более 100 000 приложений 4 месяца присутствовал вредоносный код 💰

7️⃣ В хороших SCA-анализаторах есть возможность подключения внешних фидов о вредоносных пакетах. А насколько хороша бесплатная база Trivy/Grype?

8️⃣ Если для популярных пакетов кто-то заметит вредоносное поведение и сообщит SCA-вендорам, то что говорить о редких пакетах /форках /внутренних библиотеках. Информация о них вообще никогда не появится в базах SCA.

9️⃣ Тег-менеджер (Google, Яндекс и другие). Прямое назначение тег-менеджеров - динамическое добавление на страницы новых скриптов по определенным условиям. SCA не видят это.

1️⃣0️⃣ Мы не знаем зависимости внешних/сторонних скриптов. Допустим скрипт системы аналитики, мы получаем его в виде минифицированного бандла, понять его зависимости также не получится.

1️⃣1️⃣ Можно ли считать код, написанный ИИ, сторонним opensource-кодом, а не собственным? 😄

1️⃣2️⃣ Разработчик может скопировать код сторонней библиотеки в проект/сделать форк, чтобы SCA не ругался. Но это отдельная история...

Таким образом SCA-анализатор не может достоверно обнаружить все сторонние компоненты, используемые frontend-приложением, а для тех которые обнаружил полностью зависит от качества используемых баз/фидов.

Применение SCA нейтрализует всего 3 из 75 угроз по фреймворку Frontend Kill Chain.

Для безопасной разработки frontend-приложений применяются FAST-анализаторы, обнаруживающие вредоносные компоненты по поведению в рантайме браузера-песочницы 🌐

FAST обнаруживает все скрипты, даже динамически загруженные и добавленные через тег-менеджеры, и анализирует реальное поведение собственного, стороннего и сгенерированного ИИ кода. И все это без ложных срабатываний и регулярного триажа 🔎

@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥63
Forwarded from AM Live
Безопасный код без войны с разработчиками: практика DevSecOps в 2026 году

Покупка сканера безопасности не делает разработку безопасной автоматически. Гораздо важнее правильно выстроить процессы, определить ответственность и научиться работать с результатами проверок.

🔥 24 июня в 15:00 в второй части эфира AM Live обсудим, как компании сегодня выстраивают практику анализа исходного кода.

С экспертами разберем:
— как встроить проверки безопасности в CI/CD;
— как работать с legacy-кодом;
— как повысить доверие разработчиков к результатам сканирования;
— и как избежать превращения DevSecOps в DevStopOps.

🔗 Регистрируйтесь по ссылке и не пропустите эфир!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
Интересная подборка инцидентов, связанных с вайб-кодингом 🌟

https://crackr.dev/vibe-coding-failures

Из относящихся к frontend-приложениям и NPM в этом списке - кампания PhantomRaven

Тип атаки slopsquatting: из-за галлюцинаций нейронки могут выдавать имена несуществующих зависимостей. Причем эти имена предсказуемы.

Злоумышленники загрузили в npm 126 вредоносных библиотек с такими именами. За 1 год библиотеки были загружены почти 90 000 раз 🔥

По результатам исследования "We Have a Package for You!" (arXiv:2406.10279, USENIX Security 2025) в ходе проверки 576 000 примеров кода и 16 моделей: в 19,7% предлагались несуществующие пакеты (5,2% в коммерческих моделях, 21,7% в открытых).

Сегодня в 15:00 (мск) будем говорить о рисках вайб-кодинга и DevSecOps на эфире AMLive 🗣

@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Результаты исследования безопасности российских frontend-приложений Q2 2026

Опубликовали отчет, посмотрим, что изменилось за год с предыдущего исследования ↗️

Как и в прошлый раз мы c помощью FAST-анализатора проверили > 3000 публичных frontend-приложений 🖥 крупнейших коммерческих российских компаний.

Основные показатели и динамика:

⚠️ загрузка скриптов с зарубежных хостов: 48 % (-16🤔)
⚠️ отправка запросов на зарубежные хосты: 59 % (-12🤔)
⚠️ вызовы eval() и других высокорисковых функций браузера (возможный признак наличия вредоносного кода 🦠): 45 % (-5🤔)
⚠️ компании, рискующие получить штрафы от 1 до 18 млн. руб. 💸 за сбор ПД 🪪 с использованием БД за пределами РФ: 59%(-11🤔)
⚠️ наличие заголовка Content Security Policy (CSP): 30 % (+7🤔)
⚠️ загрузка печально известного скрипта Битрикс Аналитика: 11% (-10🤔)
⚠️ использование Яндекс Метрики с вебвизором 57% (+20🤔) - резкий рост в связи с улучшением правила обнаружения в FAST

Средняя оценка безопасности: 49 из 100 (+10🤔)

Положительная динамика радует, но в среднем все по-прежнему на неприемлемо низком уровне

Эффективность конфигурации CSP: 8/100 (+1🤔) - здесь по-прежнему все печально, а просто наличие заголовка не делает приложение безопаснее.
Низкие оценки в критических отраслях: транспорт (26), медицина (36), e-commerce (38).
Снизилась оценка в категории онлайн-банков 75/100 (-2🤔).

С учетом актуальных угроз и известных инцидентов текущая оценка остается неудовлетворительной.

Как мы знаем: бардак 🔴, хаос и слепые зоны 👁(отсутствие непрерывной инвентаризации, управления изменениями и мониторинга) - главная причина инцидентов ИБ, а особенно для frontend-приложений, где работа в слепой зоне (браузере пользователя) - штатная неизбежная ситуация.

Знать, что делает JavaScript-код на веб-страницах во времени, близком к реальному, и быстро реагировать на несанкционированные изменения 🆘 - главная задача, которую решает анализатор класса FAST (Frontend Application Security Testing) ☺️

Полный отчет об исследовании, подробное описание рисков и рекомендации доступны по ссылке:
📄 dpa-frontend-security-research-q2-2026.pdf

@FrontSecOps
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10