Copertina: Bumblebee: scanner read-only per la supply chain dello sviluppatore

Bumblebee: scanner read-only per la supply chain dello sviluppatore

Un inventario agent-free delle dipendenze, estensioni e configurazioni MCP che non esegue nulla sul filesystem.

15 luglio 20266 min di lettura
supply chain securityscanner open sourcelockfileMCPestensioni editordipendenze softwareGoPerplexitysoftware inventory

Cos'è

Bumblebee è uno scanner di supply-chain software open-source, scritto in Go e rilasciato da Perplexity sotto licenza Apache 2.0. È progettato per rispondere a una domanda apparentemente semplice e invece difficile da verificare in fretta: questa macchina di sviluppo è esposta a una determinata minaccia nella catena di fornitura del software?

A differenza di molti strumenti di vulnerability scanning, Bumblebee non esegue codice, non invoca package manager come npm, pip, go o bundle, non legge i sorgenti e non richiede installazioni di agent persistenti. Si limita a raccogliere metadati da file già presenti sul disco: lockfile, directory di installazione, manifest di estensioni e configurazioni di tool di sviluppo. Il risultato è un flusso NDJSON che può essere confrontato con cataloghi di esposizione per stabilire, in pochi secondi, se una macchina o un progetto contengono pacchetti, estensioni o configurazioni a rischio.

A cosa serve

Lo strumento nasce come risposta operativa agli attacchi alla supply chain diventati visibili nel 2025-2026, in particolare ai worm Shai-Hulud e Mini Shai-Hulud, che hanno colpito pacchetti pubblicati su registry npm diffondendosi attraverso script di post-installazione. In quei scenari, il tempo tra la pubblicazione di un advisory e la verifica dell'esposizione reale è critico: le aziende hanno spesso decine o centinaia di repository, ambienti di sviluppo condivisi, estensioni di editor e tool AI installati manualmente.

Bumblebee mappa quattro superfici principali. La prima è costituita dai package manager dei linguaggi: npm, pnpm, Yarn, Bun, PyPI, Go modules, RubyGems e Composer. La seconda sono le estensioni degli editor e degli IDE, con focus su VS Code, Cursor, Windsurf e VSCodium. La terza sono le estensioni installate nei browser Chromium e Firefox. La quarta, la più originale, è rappresentata dalle configurazioni dei server MCP (Model Context Protocol), i file JSON che collegano agenti AI locali a tool esterni.

Per founder, PMI e agenzie italiane questo significa poter dotare i propri team di un modo rapido e non invasivo per fare l'inventario di ciò che gira effettivamente nelle workstation e nei server di sviluppo, senza richiedere competenze di sicurezza enterprise o l'acquisto di piattaforme commerciali.

Come funziona

L'architettura di Bumblebee si fonda su tre principi: read-only, zero dipendenze esterne e output machine-readable. Il binario è scritto in Go 1.25 e non include librerie al di fuori della standard library: si compila e si distribuisce come singolo eseguibile, senza catene di dipendenze da gestire.

Quando viene lanciato, lo scanner attraversa i percorsi configurati alla ricerca di artefatti noti. Per i package manager legge file come package-lock.json, pnpm-lock.yaml, yarn.lock, bun.lockb, go.sum, go.mod, requirements.txt, poetry.lock, Gemfile.lock e i metadati *.dist-info/METADATA creati da pip. Per le estensioni degli editor analizza i manifest JSON presenti nelle directory di installazione di VS Code e derivati. Per i browser raccoglie informazioni dalle directory delle estensioni Chromium e Firefox. Per MCP, riconosce file come mcp.json, .mcp.json, claude_desktop_config.json, mcp_config.json, mcp_settings.json, cline_mcp_settings.json e ~/.gemini/settings.json.

Il punto cruciale è che Bumblebee non esegue i package manager. Questo evita di innescare script di post-installazione malevoli mentre si sta cercando di determinare se un pacchetto è malevolo. L'approccio read-only riduce anche il rischio di false positive legati a dipendenze trasitive non effettivamente installate o a versioni dichiarate ma non utilizzate.

L'output è prodotto in formato NDJSON, una riga per record, con tre tipi principali di entità: pacchetti, estensioni e configurazioni MCP. Ogni record include dettagli come il nome, la versione, il percorso sul filesystem, l'ecosistema e il tipo di fonte. I dati possono essere filtrati, aggregati o confrontati con cataloghi di esposizione pubblicati sotto forma di file JSON in stile NDJSON.

Perché conta

La supply-chain del software è diventata un vettore d'attacco sistematico. Non si tratta più solo di dipendenze dirette del proprio progetto, ma di un ecosistema complesso che include estensioni di editor, plugin del browser, CLI installate globalmente, action di CI/CD e, più recentemente, server MCP collegati a agenti AI. Ognuno di questi elementi può contenere codice che viene eseguito con i privilegi dello sviluppatore.

Bumblebee affronta due problemi concreti. Il primo è la visibilità: molte organizzazioni non hanno un inventario aggiornato di ciò che è installato sulle macchine di sviluppo. Il secondo è la velocità di risposta: quando esce un advisory, l'alternativa è spesso una serie di grep manuali su repository e workstation, un processo lento e incompleto. Con Bumblebee è possibile lanciare una scansione in pochi secondi e ottenere un file confrontabile automaticamente con il catalogo della minaccia.

Un altro aspetto rilevante è la copertura dei server MCP. MCP è un protocollo aperto che consente a modelli linguistici e agenti AI di invocare tool esterni: database, browser, shell, API di servizi. I file di configurazione MCP contengono spesso riferimenti a server installati da repository di terze parti o da community, alcuni dei quali con accesso a dati sensibili. Bumblebee è uno dei pochi strumenti che include esplicitamente questa superficie nel proprio inventario, rendendolo particolarmente utile per team che stanno adottando agenti AI.

Per le aziende italiane, inoltre, la conformità al GDPR e alle normative di cybersecurity richiede una maggiore consapevolezza dei componenti software utilizzati. Avere un inventario verificabile, anche parziale, è un primo passo concreto verso la documentazione del perimetro tecnologico.

Come si usa

Bumblebee si installa con il classico comando Go:

go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest

Una volta installato, si può lanciare una scansione con profilo baseline, pensato per un'inventariazione quotidiana di tutti i pacchetti, toolchain, estensioni e configurazioni MCP:

bumblebee scan --profile baseline > inventory.ndjson

Il profilo project è utile per auditare directory specifiche, come ~/code o ~/src, mentre il profilo deep è pensato per il response attivo a un incidente: l'operatore fornisce le radici da scansionare e un catalogo di esposizione, e Bumblebee restituisce solo i findings.

È possibile combinare i flag --ecosystem per limitare la scansione a specifici ambienti, ad esempio npm,pypi,mcp, oppure usare --findings-only per ricevere solo i record che corrispondono a voci in un catalogo di esposizione. Quest'ultimo può essere caricato da un file locale o da un URL, facilitando l'integrazione con feed di threat intelligence.

Dove trovarlo

Bumblebee è disponibile pubblicamente su GitHub all'indirizzo https://github.com/perplexityai/bumblebee. La documentazione copre le fonti di inventario supportate, i profili di scansione, il formato dei cataloghi di esposizione e i requisiti di build. Il codice è rilasciato sotto licenza Apache 2.0, il che permette di usarlo, modificarlo e integrarlo in propri strumenti interni senza costi di licenza. Per chi preferisce un binario precompilato, le release ufficiali includono eseguibili per i principali sistemi operativi.

Hai letto fino a qui

🤔 Hai domande su questo argomento?

Posso aiutarti a capire come applicarlo al tuo business. Scegli come vuoi parlarmi.

— oppure —

💬 Chat: risposta immediata · 📧 Email: risposta personale entro 24h · 🔒 Niente spam

Continua a leggere