Как заброшенные аккаунты на GitHub превратились в оружие для слежки за компаниями

Специалисты Datadog Security Labs наткнулись на нечто необычное: десятки старых, годами неактивных аккаунтов GitHub вдруг начали синхронно опрашивать API платформы, методично составляя карту корпоративных организаций, репозиториев и пользователей. Причём делали это не хаотично, а по чёткой схеме, растянутой на несколько недель.
Как заброшенные аккаунты на GitHub превратились в оружие для слежки за компаниями
Изображение носит иллюстративный характер

Речь идёт о более чем 50 «спящих» аккаунтах, созданных от двух до пяти лет назад. Всё это время они просто существовали — без единого коммита, без активности, ничем не привлекая внимания. А затем их будто разбудили и пустили в дело. По словам старшего инженера по безопасности Datadog Джули Агнес Спаркс, именно в этом и заключается расчёт атакующих: аккаунт с историей в несколько лет не вызывает подозрений так, как свежесозданный профиль, зарегистрированный вчера ради разовой операции.
Параллельно с «призрачными» аккаунтами злоумышленники задействовали и другой канал — украденные OAuth-токены и персональные токены доступа (PAT), принадлежащие вполне реальным пользователям. Таких скомпрометированных учёток набралось несколько десятков, и они добавляли операции ещё один слой правдоподобности: запросы шли как бы от имени легитимных разработчиков.
Инструментарий для сканирования тоже впечатляет своей проработкой. Это не примитивный скрипт для одноразового парсинга, а версионируемая система, которая менялась и дорабатывалась прямо в процессе кампании. Запросы маскировались под легитимные или похожие на легитимные user-agent'ы, что дополнительно усложняло фильтрацию по сигнатурам.
Основная цель — публичные данные: списки организаций, репозиториев, участников команд. Казалось бы, ничего секретного, GitHub и так открывает значительную часть своего API без авторизации. Но в нескольких случаях наблюдатели зафиксировали переход границы: атакующие не просто перечисляли публичные репозитории, а клонировали приватные. Как минимум для одной организации подтверждён факт доступа к закрытому коду.
Здесь и кроется главная сложность обнаружения подобной активности. Отдельно взятый запрос выглядит абсолютно рутинно — обращение к публичному эндпоинту, чистая или вовсе отсутствующая аутентификация, успешный ответ сервера. Ничего похожего на классические индикаторы компрометации. Проблема проявляется только при сопоставлении множества запросов между собой, когда становится видно: группа аккаунтов двигается синхронно, обходит одни и те же организации в одинаковом порядке, использует одну и ту же кастомную тулзу разных версий.
В Datadog это описали предельно конкретно: «По отдельности большинство этих запросов ничем не примечательны. Они обращаются к публичным эндпоинтам, проходят аутентификацию чисто или вообще без неё, и возвращают успешные ответы. Проблема — в совокупности: группа аккаунтов, синхронно перемещающихся по GitHub-организациям разных компаний с версионируемым кастомным инструментарием, работающим неделями, а в худшем случае — субъекты, которые перестали просто сканировать и начали клонировать».
Схема атаки укладывается в четыре последовательных этапа. Сначала идёт автоматизированная разведка — сбор данных об организациях, репозиториях и пользователях через открытый API. Затем подключаются механизмы доступа: спящие аккаунты вперемешку с угнанными OAuth-токенами и PAT. На третьем этапе часть операторов переходит от простого перечисления к активному клонированию приватных репозиториев. И всё это держится на одном простом трюке — использовании состарившихся, ничем не примечательных учёток вместо свежих, которые сразу привлекли бы внимание систем мониторинга.
Для служб безопасности компаний, использующих GitHub, это довольно неприятный сигнал. Классические подходы к обнаружению аномалий — поиск подозрительных user-agent'ов, свежесозданных аккаунтов, всплесков активности с одного IP — здесь просто не работают. Нужна корреляция на уровне организации целиком: сопоставление паттернов запросов от разных, казалось бы, независимых пользователей, отслеживание совпадений в тайминге и последовательности обращений к репозиториям.


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

20868Уязвимости Plex открыли путь майнерам и Linux-бэкдору 20867Взлом OpenCode Console: под угрозой могли оказаться ключи OpenAI, Anthropic и Google 20866Rank Math PRO: заражённое обновление оставило на сайтах самовосстанавливающийся бэкдор 20865Как исследовательские модели OpenAI обходили ограничения и присваивали чужие данные 20864Атака на BeyondTrust: шпионская группа получила доступ к серверам поддержки 20863Как пакет imgdecode превращает npm-зависимость в загрузчик вредоносного кода? 20862Как PEERSTITCH обходит проверки VPN-сессий FortiOS? 20861Что происходит, когда ИИ-агент выходит за пределы тестовой среды? 20860Как 37-летняя ошибка открыла путь к root в OpenBSD 7.9? 20859ИИ-модели для SOC: точный ответ зависит от улик 20858Как одна учётная запись ConnectWise открыла доступ к 173 арендаторам Microsoft 365? 20857Пять минут до заражения: как подменили обновления AOMEI Backupper 20856Ловушка под видом регистрации: как UAT-11985 крадёт аккаунты Google 20855Может ли виртуальная машина прочитать память хоста? 20854Как дешёвые Android-смартфоны превращаются в чужие прокси?
Ссылка