Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
phantomstars — Автоматическое обнаружение и отслеживание фальшивой активности на GitHub — ежедневный CI, без инфраструктуры | Kitploit
Инструменты/GitHubGitHub/tg12/phantomstars
OSINT (Разведка открытых источников)РазведкаСкриптинг и автоматизацияСбор информацииРазведка угрозОбучение и ОбразованиеКраулерПодобранные РесурсыАнти-Бот
GitHubtg12/phantomstars

phantomstars

Автоматическое обнаружение и отслеживание фальшивой активности на GitHub — ежедневный CI, без инфраструктуры

743153 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий

phantomstars Python 3.13 Apache 2.0 GitHub Actions Daily

phantomstars

Автоматическое обнаружение и отслеживание накрутки активности на GitHub

Проект JS Labs — часть инициативы AI Slop Intelligence.
Запускается каждый день. Оценивает каждый подозрительный аккаунт. Обнаруживает скоординированные бот-кампании.
Открывает issues напрямую в скомпрометированных репозиториях, чтобы мейнтейнеры могли отреагировать.


Поддержите этот проект

BTC   3QjWqhQbHdHgWeYHTpmorP8Pe1wgDjJy54
ETH   0x5851e6145F4773d1585b8686095FB16E368a4dA1
ZEC   t1KSR5YkNPbjqRSCoLKo5AddFWdm9Kzxh1B


Зачем это существует

Звёзды GitHub — это сигнал доверия. По ним разработчики решают, что оценивать, от чего зависеть и что рекомендовать. Этот сигнал систематически портится.

Во время ИИ-бума 2024–2026 годов появилась индустрия ферм ботов, создающих видимость надёжности для низкокачественных, часто вредоносных репозиториев. Проект с 800 звёздами за 48 часов выглядит легитимным для разработчика, просматривающего результаты поиска. В этом и смысл. Цель накрутки — не сами звёзды, а социальное доказательство, которое они создают, и последующие решения, на которые это доказательство влияет.

Закономерность легко распознать. Аккаунты, созданные на одной неделе, без био, без подписчиков, без собственных репозиториев, ставящие звёзды одним и тем же 15 репозиториям в течение двух часов. Не одна кампания, а десятки, работающие одновременно, каждый день, через тысячи аккаунтов. Данные показывают репозитории, где 185 из 185 вовлечённых — боты. 100% фальшивки. Целые позиции в трендах построены на пустоте.

phantomstars был создан, потому что эта задача решаема. Соотношение сигнала и шума в публичном API GitHub пока ещё достаточно высокое, чтобы скоординированные кампании оставляли чёткие отпечатки. Этот проект считывает эти отпечатки, публикует сырые данные и напрямую уведомляет мейнтейнеров затронутых репозиториев.

Это часть более широкой работы AI Slop Intelligence в JS Labs — продолжающегося исследования механизмов и измеримых последствий низкокачественного ИИ-контента, заполоняющего экосистему разработчиков. Накрутка — не периферийная проблема. Это механизм распространения, который доставляет мусорный контент реальным пользователям.


Что он делает

phantomstars запускает ежедневное задание GitHub Actions, которое:

  1. Парсит страницу GitHub Trending в поисках репозиториев, набирающих звёзды сегодня
  2. Запрашивает GitHub Search API для репозиториев, созданных за последние 7 дней с внезапной звёздной активностью (более широкое окно ловит многодневные кампании, пропущенные 24-часовыми сканами)
  3. Добавляет дополнительные репозитории-кандидаты из недавних постов Reddit в r/osinttools и r/coolgithubprojects, извлекая ссылки на GitHub-репозитории за последние 2 дня
  4. Получает недавние события вовлечённости (звёзды, форки) через Events API (последние 24 часа на репозиторий)
  5. Загружает полный профиль каждого вовлечённого аккаунта через GraphQL: дату создания аккаунта, количество подписчиков/подписок, био, историю репозиториев
  6. Оценивает каждый аккаунт по композитной модели эвристик: возраст аккаунта, полнота профиля, паттерны репозиториев и история активности
  7. Обнаруживает скоординированные кампании с помощью кластеризации по времени и union-find: кластеры подозрительных аккаунтов, вовлечённых в течение 3-часового окна
  8. Применяет список исключений для ложных срабатываний перед записью в журнал, расчётом долей по репозиториям, дашбордами и уведомлениями, чтобы каждая видимая метрика использовала одну и ту же совокупность
  9. Добавляет всех подозреваемых в append-only JSONL-журнал, фиксируемый в этом репозитории
  10. Публикует аналитическую ленту по каждому репозиторию, показывающую, какие репозитории атакуются, какие источники обнаружения их нашли и было ли окно Events API полным или ограниченным
  11. Открывает issues напрямую в целевых репозиториях, чтобы мейнтейнеры видели данные кампании в своём трекере
  12. Записывает форматированный отчёт сканирования в сводку задания GitHub Actions

Никаких серверов. Никаких баз данных. Никаких расходов на инфраструктуру.


Часто задаваемые вопросы

Уведомляет ли он целевой репозиторий?

Да. Когда доля накрутки репозитория превышает 40% или обнаружена скоординированная кампания, phantomstars открывает issue прямо в этом репозитории. Issue содержит полную таблицу подозреваемых, состав кампании, композитные оценки и даты создания аккаунтов: всё, что нужно мейнтейнеру для расследования и обращения в GitHub.

Если в целевом репозитории отключены issues, уведомление молча пропускается и фиксируется в журнале сканирования.

Можно ли запросить проверку конкретного репозитория?

Да.

  • Для обычной разовой проверки укажите репозиторий в форме owner/repo и запустите таргетированное сканирование.
  • Для пожизненного аудита используйте разовый режим полного анализа. Он отделён от ежедневного сканирования.

Почему такое разделение:

  • Обычная модель сканирования рассчитана на недавнюю публичную активность и низкую стоимость для оператора.
  • Пожизненный аудит может включать десятки тысяч звёзд и тысячи форков в крупных репозиториях.
  • Это осуществимо для разового расследования, но слишком дорого и медленно для ежедневного пути по умолчанию.
  • Поэтому пожизненные запросы выполняются только в явном разовом режиме с ограничениями.

Можно ли сообщить о ложном срабатывании?

Да. Если ваш аккаунт появился в data/suspects.jsonl и вы считаете классификацию неверной, откройте issue о ложном срабатывании, используя предоставленный шаблон. Сообщения проверяются вручную перед добавлением в список исключений. Список исключений хранится в data/allowlist.txt; аккаунты из него исключаются из всех будущих сканов и из журнала подозреваемых.

Что такое ID кампании?

ID кампании (например, c-a3f9b2e1) — это детерминированный 8-символьный шестнадцатеричный отпечаток, полученный из SHA-256 хеша отсортированного набора логинов участников этой кампании. Одна и та же группа аккаунтов будет давать один и тот же ID кампании при независимых запусках сканирования, что позволяет отслеживать динамику. Это не имя репозитория, не имя пользователя и не внешний идентификатор.

Стабильность: ID стабилен, пока набор участников кампании не меняется. Если боты добавлены или заблокированы между сканами, ID меняется, потому что изменился состав. Это ожидаемо и отражает реальное изменение состава бот-ферм.

Проверяет ли он даты создания аккаунтов?

Да. Дата создания каждого аккаунта берётся из GitHub GraphQL API (поле createdAt) и сохраняется в каждой записи подозреваемого как account_created_at. Это также основной вход для оценки возраста аккаунта — самого сильного сигнала для фейковых аккаунтов. Аккаунты, созданные в течение 2 дней до вовлечённости, получают 1.0 только за возраст.

Насколько он уверен?

Скачать инструмент