Supply Chain Security · Go · Open Source · MCP

Bumblebee: Η Perplexity AI
Έφτιαξε το Scanner
που Έπρεπε να
Έχεις Χθες

Ένα supply chain worm χτυπάει npm. Η ερώτηση είναι μία: ποιες developer μηχανές έχουν το κακόβουλο package τώρα αυτή τη στιγμή; Κανένα υπάρχον εργαλείο δεν απαντούσε αυτό. Μέχρι τώρα.

Sotirios Christodoulou 28 Ιουνίου 2026 ~25 λεπτά ανάγνωση v0.1.1 · Apache 2.0
bumblebee scan --profile baseline

// 00 — ΠρόλογοςΗ Επίθεση που Άλλαξε τα Πάντα

Ήταν Νοέμβριος 2025. Ένα worm που η κοινότητα ονόμασε Shai-Hulud — από το τεράστιο σκουλήκι του Dune — χτύπησε ταυτόχρονα packages από Zapier, ENS, PostHog και Postman. Ο κακόβουλος κώδικας εκτελούνταν αυτόματα κατά το npm install, πριν κανείς καταλάβει τι συνέβη.

Τον Απρίλιο-Μάιο 2026, ο αδερφός του — Mini Shai-Hulud — χτύπησε 324 AntV npm packages, PyTorch Lightning, packages από SAP, TanStack και Postmark. Μόνο σε δύο εβδομάδες.

Η ερώτηση που έπαιζε loop στα security teams παντού ήταν ίδια: "Ποιοι από τους developers μας έχουν το κακόβουλο package installed τώρα;" Και κανένα εργαλείο δεν μπορούσε να απαντήσει αξιόπιστα.

Το Παράδοξο του Security
Αν χρησιμοποιήσεις το npm install ή το pip install για να ελέγξεις αν έχεις κακόβουλο package — τρέχεις το κακόβουλο package. Ο ίδιος ο έλεγχος γίνεται η επίθεση. Το Bumblebee λύνει αυτό το παράδοξο με έναν πολύ απλό τρόπο: δεν εκτελεί τίποτα.

Στις 22 Μαΐου 2026, η Perplexity AI ανακοίνωσε ότι κάνει open-source το εσωτερικό της tool που χρησιμοποιεί για να προστατεύει τα developer endpoints πίσω από το Perplexity Search, το Comet browser και το Computer agent. Το ονόμασαν Bumblebee.

// 01 — Το ΠρόβλημαΓιατί τα Υπάρχοντα Εργαλεία Αποτυγχάνουν;

Υπάρχουν ήδη κατηγορίες tools για supply chain security. Το πρόβλημα είναι ότι κανένα δεν κοιτάζει στο σωστό μέρος.

Εργαλείο Τι Ελέγχει Τι ΔΕΝ Ελέγχει
SBOM Scanners Build artifacts, production code Local developer laptops
EDR (Endpoint Detection) Running processes, network traffic Installed-but-not-running packages
npm audit / pip-audit Known CVEs σε packages Εκτελεί package manager — επικίνδυνο!
Bumblebee ✓ On-disk metadata: lockfiles, manifests, MCP configs, extensions Τίποτα — είναι read-only

Το gap που καλύπτει το Bumblebee είναι ακριβώς αυτό: η κατάσταση του developer laptop αυτή τη στιγμή. Τι έχει installed, ποιες εκδόσεις, ποια MCP configs φορτώνονται — όλα διαβαστά από το filesystem, χωρίς να τρέξει ούτε ένη εντολή.

Χρονολόγιο Supply Chain Επιθέσεων 2025-2026

Νοέμ. 2025
Shai-Hulud

Zapier, ENS, PostHog, Postman npm packages. Κακόβουλος κώδικας μέσω postinstall scripts.

Απρ. 2026
Mini Shai-Hulud — Φάση 1

PyTorch Lightning 2.6.2-2.6.3 στο PyPI, lightning-bolts. Credential theft payload.

11 Μαΐου 2026
Mini Shai-Hulud — Φάση 2

TanStack packages με valid SLSA Build Level 3 provenance — ακόμα και το verification system έχασε.

19 Μαΐου 2026
Mini Shai-Hulud — Φάση 3

324 AntV npm packages, 643 malicious versions. Crypto wallets, browser data, cloud credentials theft.

17 Ιουν. 2026
Mastra Attack

Hijacked Mastra contributor account → 140+ κακόβουλα packages σε μια μέρα.

// 02 — ΟρισμόςΤι Ακριβώς Είναι το Bumblebee;

Το Bumblebee είναι ένα read-only developer endpoint scanner γραμμένο σε Go, με zero non-stdlib dependencies. Διαβάζει metadata αρχεία απευθείας από το filesystem — lockfiles, package manifests, extension configs, MCP configuration files — και τα συγκρίνει με catalogs γνωστών κακόβουλων packages.

0
Non-stdlib
dependencies
~10MB
Binary size
single static file
8
Package
ecosystems
5-15s
Baseline scan
time
161
Go test
functions
Apache 2.0
License
open source
Η Κρίσιμη Αρχή Σχεδιασμού
Το Bumblebee ποτέ δεν εκτελεί npm, pip, go install, ή οποιοδήποτε package manager. Διαβάζει μόνο metadata — lockfiles και manifests. Αυτό το καθιστά ασφαλές να τρέξεις ακόμα και σε μηχανή που ήδη είναι compromised. Ο ίδιος ο έλεγχος δεν μπορεί να ενεργοποιήσει κακόβουλο κώδικα.

Η Perplexity το χρησιμοποιεί εσωτερικά ήδη για να προστατεύει τα developer endpoints της. Το γεγονός ότι το open-sourced είναι ασυνήθιστο για μια εταιρεία αξίας δεκάδων δισεκατομμυρίων — και σηματοδοτεί ότι η Perplexity στοιχηματίζει στο developer trust ως competitive moat.

// 03 — ΑρχιτεκτονικήΠώς Λειτουργεί Εσωτερικά;

Το scan loop του Bumblebee ακολουθεί 6 βήματα σε κάθε εκτέλεση:

01
Resolve scan roots

Ανάλογα με το profile (baseline/project/deep), καθορίζει ποιους directories θα σκανάρει. Αρνείται bare home roots στα baseline/project για safety.

02
Walk file tree

Διατρέχει το filesystem, παρακάμπτοντας symlinks και 100+ sensitive/noisy directories: .ssh, .aws, .kube, .gnupg, browser caches, Keychains.

03
Ecosystem-specific parsing

Κάθε recognized filename (package-lock.json, requirements.txt, go.sum, Gemfile.lock…) πηγαίνει στον αντίστοιχο parser. Κανένα execution — pure metadata reading.

04
Name normalization

npm lowercase, PyPI PEP 503 normalization — εξασφαλίζει ότι "React" και "react" αντιμετωπίζονται ίδια. Αποτρέπει false negatives λόγω case differences.

05
Exposure catalog matching

Exact match (ecosystem, package name, version) με τα catalogs από το threat_intel/ directory. Αν υπάρχει match → finding με severity και confidence score.

06
NDJSON output + scan_summary

Ένα JSON object ανά γραμμή. Compatible με SIEM platforms (Splunk, Elastic). Κλείνει με scan_summary: total records, findings, duration.

Το Exposure Catalog System

Το Bumblebee χρησιμοποιεί ένα "engine + signatures" μοντέλο — ίδια φιλοσοφία με τα antivirus. Το repo έρχεται με threat_intel/ directory που περιέχει maintained catalogs από public threat-intelligence reporting. Κάθε φορά που νέο campaign αναφέρεται, ανοίγει PR για να προσθεθεί στο catalog.

JSON// Παράδειγμα exposure catalog entry
{
  "schema_version": "0.1.0",
  "entries": [
    {
      "id": "advisory-2026-0042",
      "name": "malicious-package 1.2.3",
      "ecosystem": "npm",
      "package": "malicious-package",
      "versions": ["1.2.3", "1.2.4"],
      "severity": "critical"
    }
  ]
}
MCP Config Security — Νέα Επιφάνεια
Το Bumblebee είναι από τα πρώτα security tools που αντιμετωπίζει τα MCP configuration files ως attack surface. Σκανάρει: claude_desktop_config.json, mcp.json, .mcp.json, mcp_settings.json, Gemini CLI settings και Claude Code configs. Remote MCP server URLs truncated σε scheme://host — τα credentials δεν διαρρέουν.

// 04 — ΕπιφάνειεςΤι Σκανάρει το Bumblebee;

Το Bumblebee καλύπτει 4 κύριες κατηγορίες surfaces — αυτές που τα υπάρχοντα tools παραλείπουν:

📦
Language Packages
npm · pnpm · Yarn · Bun · PyPI · Go · RubyGems · Composer

Lockfiles, manifests, installed package metadata. Normalized names για αποφυγή false negatives.

🧩
IDE Extensions
VS Code · Cursor · Windsurf · VSCodium

Extension manifests — ελέγχει αν κάποια extension είναι στο known-malicious registry.

🌐
Browser Extensions
Chromium · Firefox

Browser extension inventory. Ο attack vector που σχεδόν κανένα supply chain tool δεν καλύπτει.

🤖
MCP Configurations
Claude Desktop · Cline · Gemini CLI · Claude Code

AI tool configs ως attack surface — το πιο νέο και ανεξερεύνητο vector του 2026.

Σημαντικό — Τι ΔΕΝ Σκανάρει
Το Bumblebee v0.1.1 δεν υποστηρίζει Windows — macOS και Linux μόνο (αν και PR για Windows support ήδη ανοιχτό στο GitHub). Επίσης δεν παρσάρει non-JSON MCP configs όπως το Codex config.toml ή Continue YAML — αυτά έρχονται σε επόμενη έκδοση.

// 05 — ProfilesΤα 3 Scan Profiles

Το Bumblebee έχει 3 profiles που καλύπτουν διαφορετικά scenarios — από routine inventory έως active incident response:

Baseline
--profile baseline

Σκανάρει common global/user package roots, language toolchains, editor extensions, browser extensions, MCP configs. Ιδανικό για daily/weekly scan με cron ή launchd.

⚡ 5-15 δευτερόλεπτα
Project
--profile project

Στοχεύει configured development directories (~~/code, ~/src, ~/work). Χρήσιμο για recurring inventory active projects. Αρνείται bare home roots.

⚡ 15-60 δευτερόλεπτα
Deep
--profile deep

Sweeps operator-supplied roots, συνήθως bare home directory. Για active incident response. Απαιτεί explicit --root path.

⚡ Λεπτά (ανάλογα με disk)

// 06 — ΣυγκρίσειςBumblebee vs. Υπάρχοντα Εργαλεία

Χαρακτηριστικό Bumblebee SBOM Scanners EDR npm audit
Developer laptop inventory Native ~ Partial
Read-only — δεν εκτελεί τίποτα ~
MCP config scanning
IDE + browser extensions ~
Zero dependencies
SIEM-compatible output NDJSON
Safe σε compromised machine ~ ~
Open source Apache 2.0 ~ Μερικά Proprietary
Windows support Σύντομα

// 07 — ΕγκατάστασηΠάμε να το Τρέξουμε

Χρειάζεσαι Go 1.25+. Τίποτα άλλο.

Εγκατάσταση

BASH# Εγκατάσταση τελευταίας έκδοσης
go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest

# Ή συγκεκριμένη έκδοση
go install github.com/perplexityai/bumblebee/cmd/bumblebee@v0.1.1

# Επαλήθευση εγκατάστασης
bumblebee version
bumblebee selftest

Πρώτο Scan — Baseline

BASH# Scan με αποθήκευση αποτελεσμάτων
bumblebee scan --profile baseline > inventory.ndjson

# Δες τα αποτελέσματα
cat inventory.ndjson | head -5

# Μόνο αν βρει κάτι ύποπτο (για CI/CD)
bumblebee scan --profile baseline --findings-only

Project Scan — Για τον κώδικά σου

BASH# Σκανάρισε τους project φακέλους σου
bumblebee scan --profile project \
  --root "$HOME/code" \
  --root "$HOME/Developer" \
  > project-inventory.ndjson

Incident Response — Deep Scan με Catalog

BASH# Κατέβασε το threat intel catalog από το repo
git clone https://github.com/perplexityai/bumblebee
cd bumblebee

# Deep scan με exposure catalog για συγκεκριμένο campaign
bumblebee scan --profile deep \
  --root "$HOME" \
  --exposure-catalog ./threat_intel/ \
  --findings-only

# Αν βρει κάτι, επιστρέφει exit code != 0
# Ιδανικό για CI/CD pipelines

Automation — Daily Cron

CRON# Προσθήκη στο crontab (crontab -e)
# Κάθε μέρα στις 09:00
0 9 * * * /usr/local/bin/bumblebee scan \
  --profile baseline \
  --exposure-catalog ~/bumblebee/threat_intel/ \
  --findings-only \
  >> ~/security/daily-scan.ndjson 2>&1

Παράδειγμα Output

NDJSON{
  "record_type": "package",
  "schema_version": "0.1.0",
  "scanner_name": "bumblebee",
  "scanner_version": "v0.1.1",
  "scan_time": "2026-06-28T09:22:01.482Z",
  "ecosystem": "npm",
  "package_name": "@tanstack/query-core",
  "version": "5.59.20",
  "project_path": "/Users/dev/code/web-app",
  "package_manager": "pnpm",
  "source_type": "pnpm-lockfile",
  "confidence": "high"
}
Το Selftest
Τρέξε πάντα bumblebee selftest μετά την εγκατάσταση. Εκτελεί τον scanner σε embedded fake-package fixtures και επαληθεύει ότι βρίσκει αυτό που πρέπει. Non-zero exit = κάτι πήγε στραβά με το installation.

// 08 — RoadmapΤι Έρχεται;

Το repo κινείται γρήγορα — μέσα σε μια εβδομάδα από την κυκλοφορία είχε ήδη ανοιχτά PRs για:

🪟
Windows Support
PR #30 — σε review

Full Windows support με complete filesystem path handling για Windows dev environments.

🐍
Conda / Pixi Support
PR #36 — in progress

Ecosystem support για conda και pixi — κρίσιμο για data science και ML teams.

📦
npm / pip packages
PR #33 — open

Distribution μέσω npm και pip για easier installation σε teams χωρίς Go environment.

🔑
MCP Credential Detection
PR #44 — open

Ανίχνευση plaintext credentials σε MCP config files — critical για security audits.

// 09 — ΣυμπέρασμαΓιατί Πρέπει να το Τρέξεις Σήμερα;

Ζούμε σε εποχή όπου τα supply chain attacks δεν είναι πια σπάνια γεγονότα — είναι εβδομαδιαία routine. Ο Shai-Hulud, ο Mini Shai-Hulud, το Mastra attack — όλα μέσα σε 8 μήνες.

Το Bumblebee δεν είναι silver bullet. Δεν αντικαθιστά SBOM scanners, EDR systems, ή vulnerability management platforms. Αλλά καλύπτει ένα κενό που κανένα από αυτά δεν καλύπτει: ποια developer endpoints έχουν exposed package τώρα αυτή τη στιγμή;

Και το κάνει με τον πιο elegant τρόπο: ένα single Go binary, zero dependencies, read-only by design, που τρέχει σε 5-15 δευτερόλεπτα. Δεν υπάρχει λόγος να μην το έχεις στο machine σου.