
Rilevamento e monitoraggio automatici di coinvolgimento falso su GitHub — CI giornaliero, infrastruttura zero
Rilevamento e tracciamento automatico di interazioni fasulle su GitHub
Un progetto JS Labs —
parte dell'iniziativa AI Slop Intelligence.
Viene eseguito ogni giorno. Valuta ogni account sospetto. Rileva campagne bot coordinate.
Apre issue direttamente sui repos compromessi in modo che i manutentori possano agire.
Sostieni questo progetto
BTC 3QjWqhQbHdHgWeYHTpmorP8Pe1wgDjJy54
ETH 0x5851e6145F4773d1585b8686095FB16E368a4dA1
ZEC t1KSR5YkNPbjqRSCoLKo5AddFWdm9Kzxh1B
Le stelle di GitHub sono un segnale di fiducia. Sono il modo in cui gli sviluppatori decidono cosa valutare, da cosa dipendere e cosa raccomandare. Quel segnale viene sistematicamente corrotto.
Durante il boom dell'AI del 2024-2026 è emersa un'industria di farm di bot per fabbricare credibilità per repository di bassa qualità, spesso malevoli. Un progetto con 800 stelle in 48 ore appare legittimo a uno sviluppatore che scansiona i risultati di ricerca. Questo è il punto. L'obiettivo delle interazioni fasulle non sono le stelle in sé, ma la prova sociale che quelle stelle producono e le decisioni a valle che quella prova sociale influenza.
Lo schema è identificabile. Account creati la stessa settimana, nessuna biografia, nessun follower, nessun repository originale, che mettono stella agli stessi 15 repo in una finestra di 2 ore. Non una campagna, ma dozzine eseguite simultaneamente, ogni giorno, su migliaia di account. I dati mostrano repo in cui 185 su 185 interagenti sono bot. Un rapporto di falsità del 100%. Intere posizioni in tendenza costruite sul nulla.
phantomstars è stato costruito perché questo problema è trattabile. Il rapporto segnale-rumore nell'API pubblica di GitHub è, per ora, ancora sufficientemente alto da far sì che le campagne coordinate lascino impronte chiare. Questo progetto legge quelle impronte, pubblica i dati grezzi e notifica direttamente i manutentori dei repository interessati.
Questo fa parte del più ampio lavoro AI Slop Intelligence presso JS Labs, una ricerca in corso sulla meccanica e gli effetti misurabili dei contenuti di bassa qualità generati dall'AI che inondano gli ecosistemi degli sviluppatori. Le interazioni fasulle non sono un problema periferico. È il meccanismo di distribuzione che porta la spazzatura davanti agli utenti reali.
phantomstars esegue un lavoro giornaliero su GitHub Actions che:
r/osinttools e r/coolgithubprojects estraendo collegamenti a repo GitHub degli ultimi 2 giorniNiente server. Niente database. Niente bolletta infrastrutturale.
Sì. Quando il rapporto di falsità di un repo supera il 40% o viene rilevata una campagna coordinata, phantomstars apre un'issue direttamente su quel repository. L'issue contiene la tabella completa dei sospetti, l'appartenenza alla campagna, i punteggi compositi e le date di creazione degli account: tutto ciò di cui un manutentore ha bisogno per indagare e segnalare a GitHub.
Se le issue sono disabilitate su un repo target, la notifica viene saltata silenziosamente e registrata nel log di scansione.
Sì.
owner/repo ed esegui una scansione mirata.Perché questa suddivisione:
Sì. Se il tuo account appare in data/suspects.jsonl e ritieni che la classificazione sia errata, apri un'issue di falso positivo usando il modello fornito. I rapporti vengono esaminati manualmente prima di qualsiasi aggiunta alla lista di esclusione. La lista di esclusione è archiviata in data/allowlist.txt; gli account elencati sono esclusi da tutte le scansioni future e dal registro dei sospetti.
Un ID campagna (ad es. c-a3f9b2e1) è un'impronta esadecimale deterministica di 8 caratteri derivata dall'hash SHA-256 dell'insieme ordinato dei login dei membri di quella campagna. Lo stesso gruppo di account produrrà lo stesso ID campagna in esecuzioni di scansione indipendenti, consentendo il monitoraggio longitudinale. Non è un nome di repo, un nome utente o qualsiasi identificatore esterno.
Stabilità: l'ID è stabile finché l'insieme dei membri della campagna rimane invariato. Se i bot vengono aggiunti o sospesi tra le scansioni, l'ID cambia perché la membership è cambiata. Questo è previsto e riflette la deriva reale nella composizione delle farm di bot.