В начале 2026 года ShinyHunters добавили Vimeo на свой leak-сайт с дедлайном 30 апреля - заплати или данные утекут. Vimeo отказались. В открытый доступ ушёл архив на 106 ГБ: видеометаданные, технические записи, 119 200 уникальных email-адресов с именами пользователей.
Но Vimeo никто не взламывал напрямую.
Точкой входа стал Anodot - аналитический SaaS-вендор, чьи интеграции открыли атакующим доступ к Snowflake и BigQuery клиентов. Один скомпрометированный поставщик - и ShinyHunters получили ключи от облачных сред десятков организаций, не отправив ни одного фишингового письма их сотрудникам. Зачем ломать дверь, если ключ лежит у соседа?
Ниже - разбор конкретного вектора supply chain атаки ShinyHunters: kill chain, MITRE ATT&CK маппинг, detection logic и чеклист vendor risk, который стоит пересмотреть прямо сейчас.
Бизнес-логика supply chain атаки: зачем ShinyHunters ломают вендоров
ShinyHunters работают по модели pay-or-leak - экфильтрация данных без шифрования, с последующим шантажом. Им не нужен длительный доступ к инфраструктуре: достаточно выгрузить данные, показать скриншоты консолей и выставить ультиматум. Отказалась компания платить - архив публикуется на Tor-сайте или продаётся на BreachForums. Подробнее - в нашем статье о атаки на цепочку поставок.Supply chain через SaaS-вендора - множитель масштаба этой модели. Вместо того чтобы социально инженерить сотрудников каждой компании по отдельности, достаточно скомпрометировать одного вендора с OAuth-интеграциями в среды клиентов. По данным The Record, ShinyHunters заявили о получении аутентификационных токенов Anodot, которые дали доступ к облачным средам более чем дюжины организаций - без прямого взлома каждой из них.
Цифры индустрии это подтверждают. Согласно CrowdStrike Global Threat Report 2025, 75% вторжений в 2024 году использовали действительные учётные данные. IBM X-Force фиксирует рост инцидентов, где первичным вектором стало злоупотребление действительными учётными данными, на 71% год к году. Зачем красть пароль конкретного пользователя, если можно украсть сервисный токен, дающий доступ сразу ко всем клиентам вендора? Microsoft Threat Intelligence в отчёте от 13 июля 2026 года «Defending SaaS-based applications against ShinyHunters OAuth abuse» зафиксировала активность с overlapping tradecraft, ассоциированным с ShinyHunters, включая вишинг, supply-chain compromise и злоупотребление guest access в SaaS-приложениях.
Анатомия атаки: от Anodot к Vimeo через украденные токены
Anodot как цель: SaaS-аналитика с глубокими интеграциями
Anodot - облачная платформа для business analytics и автономного обнаружения аномалий в метриках. Для работы ей нужны глубокие интеграции с облачными хранилищами клиентов: Snowflake, BigQuery и аналогичные платформы. Каждая такая интеграция подразумевает выдачу аутентификационных токенов с правами на чтение данных клиента.Для атакующего - идеальная мишень. Один скомпрометированный вендор = доступ к данным десятков клиентов через легитимные API-вызовы. По данным Hackread, ShinyHunters украли аутентификационные токены Anodot и использовали их для несанкционированного доступа к облачным средам Vimeo на Snowflake и BigQuery. Anodot на момент публикации материалов в The Record не ответила на запросы комментариев.
Kill chain supply chain атаки по шагам
Реконструкция по публичным источникам - Paubox, SecurityAffairs, Hackread, The Record:Шаг 1 - компрометация Anodot (Initial Access). Конкретный вектор начального доступа к самому Anodot публично не раскрыт. Учитывая задокументированные TTP ShinyHunters, высока вероятность вишинга - Spearphishing Voice (T1566.004, Initial Access). Предварительный сбор информации о сотрудниках маппится на T1598.004 (Spearphishing Voice, Reconnaissance). Microsoft Threat Intelligence подтверждает: вишинг и OAuth-злоупотребления - стандартный арсенал группировки.
Шаг 2 - кража аутентификационных токенов (Credential Access). ShinyHunters извлекли токены, которые Anodot использовал для интеграции с облачными средами клиентов. Это Steal Application Access Token (T1528, Credential Access). Украденные токены давали прямой доступ к Snowflake- и BigQuery-инстансам клиентов - без необходимости аутентифицироваться в инфраструктуре каждой жертвы.
Шаг 3 - пивот к клиентам (Initial Access через Valid Accounts). Используя Valid Accounts (T1078, Initial Access), атакующие обратились к API облачных сред от имени легитимного сервисного аккаунта Anodot. С точки зрения логов Vimeo это выглядело как штатная работа аналитической интеграции - тот же service account, те же API-endpoints, тот же тип запросов. SOC видит знакомую активность и не дёргается.
Шаг 4 - массовая экфильтрация (Collection + Exfiltration). Automated Collection (T1119, Collection) для сбора данных и Exfiltration to Cloud Storage (T1567.002, Exfiltration) для их вывода. По данным Have I Been Pwned, были скомпрометированы 119 200 уникальных email-адресов, а также видеометаданные, технические записи, заголовки видео и имена пользователей.
Шаг 5 - шантаж. ShinyHunters выставили ультиматум с дедлайном 30 апреля 2026 года. По данным Hackread, атакующие потребовали выплаты под угрозой публикации данных и обещанием дополнительных «цифровых проблем» для компании. Vimeo отказались платить.
Шаг 6 - публикация. ShinyHunters опубликовали архив на 106 ГБ на своём Tor-сайте. Согласно официальному заявлению Vimeo, видеоконтент, действующие учётные данные пользователей и платёжная информация не были затронуты. Сервис продолжил работу без перебоев.
Blast radius: не только Vimeo
Vimeo - самый публичный кейс компрометации через Anodot, но далеко не единственный. По данным The Record, атакующие заявили о доступе к облачным средам «более чем дюжины организаций» через украденные токены одного вендора.Этот паттерн - массовая компрометация клиентов через единую точку отказа - уже получил отраслевую классификацию.
MITRE ATT&CK маппинг supply chain атаки ShinyHunters
| Этап | Техника | TTP ID | Тактика | Контекст Anodot/Vimeo |
|---|---|---|---|---|
| Разведка | Spearphishing Voice | T1598.004 | Reconnaissance | Сбор данных о сотрудниках Anodot |
| Начальный доступ | Spearphishing Voice | T1566.004 | Initial Access | Вишинг сотрудников Anodot |
| Кража токенов | Steal Application Access Token | T1528 | Credential Access | Извлечение OAuth/API-токенов интеграции |
| Пивот к клиентам | Application Access Token | T1550.001 | Lateral Movement | Использование украденных OAuth-токенов Anodot |
| Перемещение между средами | Remote Services | T1021 | Lateral Movement | Переключение между Snowflake/BigQuery разных клиентов |
| Массовый сбор | Automated Collection | T1119 | Collection | API-выгрузка данных из облачных хранилищ |
| Вывод данных | Exfiltration to Cloud Storage | T1567.002 | Exfiltration | 106 ГБ данных Vimeo |
Фундаментальная проблема в этой цепочке: шаги 4–7 используют легитимные учётные данные и стандартные API-вызовы. Для SOC-команды Vimeo запросы от сервисного аккаунта Anodot неотличимы от штатной аналитической активности - пока объём и паттерн не выходят за пределы baseline.
Detection: как обнаружить компрометацию третьей стороны
Главная боль при детекции vendor token compromise - атакующий приходит с легитимными credentials. SIEM видит знакомый service account, стандартные API-вызовы, ожидаемые endpoints. Разница - в объёме, времени и паттерне обращений.Индикаторы vendor token compromise
Аномальный объём API-вызовов от вендорских service accounts. Если Anodot обычно делает 100 запросов в час к Snowflake, а пошло 10 000 - первый сигнал. Baseline нужно строить заранее. В Snowflake это отслеживается черезACCOUNT_USAGE.QUERY_HISTORY, в BigQuery - через INFORMATION_SCHEMA.JOBS.Концептуальный пример для Splunk - мониторинг аномального объёма от вендорских аккаунтов:
Код:
index=snowflake sourcetype=query_history
user_name IN ("anodot_svc", "vendor_*")
| bin _time span=1h
| stats count AS qps BY _time, user_name, database_name
| streamstats current=false window=720 avg(qps) AS baseline stdev(qps) AS sd BY user_name
| where qps > baseline + 3*sd
user_name и пороговый множитель под реальный baseline в вашей среде. Множитель 3 - стартовая точка, которую нужно калибровать: для вендора с нестабильным паттерном обращений он может быть выше. Для production рекомендуется стратифицировать baseline по day-of-week/hour-of-day (иначе выходные будут сравниваться с рабочими днями) или использовать percentile-based подход вместо avg+stdev.Изменение паттерна доступа. Вендорский аккаунт начал обращаться к таблицам или колонкам, к которым раньше не обращался. В Snowflake это видно через
ACCESS_HISTORY - сравнение текущих обращений с историческим baseline по object_name.Геолокация и IP. Если токен вендора используется с IP-адресов вне его адресного пространства - красный флаг. ShinyHunters, по данным открытых TI-публикаций, используют коммерческие VPN-сервисы, поэтому IP не совпадёт с инфраструктурой Anodot.
OAuth-consent и scope events. В SigmaHQ есть правило
azure_app_end_user_consent.yml для детекции пользовательского согласия на подключение приложений, и azure_app_uri_modifications.yml для отслеживания модификаций URI-приложений. Оба релевантны для случаев, когда атакующий пытается расширить scope украденного токена.MITRE D3FEND контрмеры, маппящиеся на эту цепочку:
| D3FEND ID | Техника | Категория | Применение к Anodot-кейсу |
|---|---|---|---|
| D3-CCSA | Credential Compromise Scope Analysis | Detect | Определить масштаб: какие вендорские аккаунты затронуты, к каким данным имели доступ |
| D3-CR | Credential Revocation | Evict | Немедленный отзыв токенов - то, что Vimeo сделала первым шагом |
| D3-ANCI | Authentication Cache Invalidation | Evict | Инвалидация кэшированных сессий украденных credentials |
| D3-DUC | Decoy User Credential | Deceive | Honey-токены для вендорских интеграций: если приманка используется - компрометация |
| D3-AM | Access Modeling | Model | Baseline нормального поведения service accounts |
Чеклист incident response при vendor compromise
Чеклист основан на подтверждённых действиях Vimeo и рекомендациях D3FEND. Формат - для передачи IR-команде или включения в playbook:- Отзыв всех credentials вендора (0–1 ч) - отключить API-токены, OAuth-grants и service accounts. Vimeo: «promptly disabled all Anodot credentials»
- Удаление интеграции (0–2 ч) - полностью удалить из prod, staging и dev. Vimeo: «removed the Anodot integration with Vimeo systems»
- Аудит scope доступа (первые 24 ч) - определить, к каким базам, таблицам и объёмам имел доступ вендорский service account
- Ретроспективный анализ логов (24–48 ч) - проверить все API-вызовы от вендорских credentials за последние 90 дней: нехарактерные таблицы, объёмы, время суток, source IP
- Ротация смежных credentials (24–72 ч) - сменить не только вендорские токены, но и все credentials в тех же хранилищах (shared secrets, API keys)
- Привлечение внешних экспертов - forensics для полного scope assessment. Vimeo: «engaged third-party security experts»
- Уведомление правоохранительных органов - Vimeo: «notified law enforcement»
- Уведомление затронутых пользователей - при наличии PII в скомпрометированных данных
- Полная инвентаризация вендорских интеграций (1–2 недели) - реестр всех SaaS-вендоров с доступом к облачным средам, scope каждого
- Пересмотр vendor risk policy - принцип минимальных привилегий для каждой интеграции, мониторинг baseline активности
| Действие | Срочность | Ответственный |
|---|---|---|
| Отзыв вендорских credentials | Немедленно (0–1 ч) | Security Operations |
| Удаление интеграции | Немедленно (0–2 ч) | DevOps / Platform |
| Аудит scope доступа | Первые 24 ч | DFIR / Data Engineering |
| Анализ логов API за 90 дней | 24–48 ч | DFIR / SOC |
| Ротация смежных credentials | 24–72 ч | Security Operations |
| Полный vendor audit | 1–2 недели | GRC / Third-Party Risk |
Ограничения detection при vendor token compromise
📚 Часть контента скрыта. Этот материал доступен участникам сообщества с рангом One Level или выше
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Получить доступ просто — достаточно зарегистрироваться и проявить активность на форуме
Я разбирал несколько post-mortem по supply chain инцидентам за последние два года. Закономерность одна: компания-жертва имеет зрелый security stack - EDR, SIEM, SOC с дежурной сменой - но вендорские интеграции остаются слепой зоной. Токен аналитического сервиса с правами на чтение метрик воспринимается как низкорисковый, пока через него не уходит 106 ГБ данных.
Проблема не техническая. Команды, которые настраивают интеграции, и команды, отвечающие за безопасность, работают в разных процессах с разными приоритетами. DevOps подключает Anodot за полчаса, потому что бизнес хочет дашборд к пятнице. Безопасники узнают об этом, когда токен уже утёк.
Пока vendor risk management остаётся ежегодным PDF-опросником - «оцените вашу зрелость по шкале от 1 до 5» - supply chain будет самым эффективным вектором масштабной экфильтрации. Реальная защита начинается с непрерывного мониторинга: baseline активности каждого вендорского аккаунта, автоматические алерты при отклонениях, honey-токены в интеграциях. И с организационного решения: ни одна SaaS-интеграция не подключается без sign-off от security-команды, scope ревьюится ежеквартально, а не при onboarding.
Проверьте прямо сейчас: сколько SaaS-вендоров имеют OAuth-токены с доступом к вашим облачным хранилищам? Если ответ «не знаю» - у вас та же проблема, что была у Vimeo.