// 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 τώρα;" Και κανένα εργαλείο δεν μπορούσε να απαντήσει αξιόπιστα.
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
Zapier, ENS, PostHog, Postman npm packages. Κακόβουλος κώδικας μέσω postinstall scripts.
PyTorch Lightning 2.6.2-2.6.3 στο PyPI, lightning-bolts. Credential theft payload.
TanStack packages με valid SLSA Build Level 3 provenance — ακόμα και το verification system έχασε.
324 AntV npm packages, 643 malicious versions. Crypto wallets, browser data, cloud credentials theft.
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.
dependencies
single static file
ecosystems
time
functions
open source
Η Perplexity το χρησιμοποιεί εσωτερικά ήδη για να προστατεύει τα developer endpoints της. Το γεγονός ότι το open-sourced είναι ασυνήθιστο για μια εταιρεία αξίας δεκάδων δισεκατομμυρίων — και σηματοδοτεί ότι η Perplexity στοιχηματίζει στο developer trust ως competitive moat.
// 03 — ΑρχιτεκτονικήΠώς Λειτουργεί Εσωτερικά;
Το scan loop του Bumblebee ακολουθεί 6 βήματα σε κάθε εκτέλεση:
Ανάλογα με το profile (baseline/project/deep), καθορίζει ποιους directories θα σκανάρει. Αρνείται bare home roots στα baseline/project για safety.
Διατρέχει το filesystem, παρακάμπτοντας symlinks και 100+ sensitive/noisy directories: .ssh, .aws, .kube, .gnupg, browser caches, Keychains.
Κάθε recognized filename (package-lock.json, requirements.txt, go.sum, Gemfile.lock…) πηγαίνει στον αντίστοιχο parser. Κανένα execution — pure metadata reading.
npm lowercase, PyPI PEP 503 normalization — εξασφαλίζει ότι "React" και "react" αντιμετωπίζονται ίδια. Αποτρέπει false negatives λόγω case differences.
Exact match (ecosystem, package name, version) με τα catalogs από το threat_intel/ directory. Αν υπάρχει match → finding με severity και confidence score.
Ένα 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"
}
]
}
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 παραλείπουν:
Lockfiles, manifests, installed package metadata. Normalized names για αποφυγή false negatives.
Extension manifests — ελέγχει αν κάποια extension είναι στο known-malicious registry.
Browser extension inventory. Ο attack vector που σχεδόν κανένα supply chain tool δεν καλύπτει.
AI tool configs ως attack surface — το πιο νέο και ανεξερεύνητο vector του 2026.
config.toml ή Continue YAML — αυτά έρχονται σε επόμενη έκδοση.
// 05 — ProfilesΤα 3 Scan Profiles
Το Bumblebee έχει 3 profiles που καλύπτουν διαφορετικά scenarios — από routine inventory έως active incident response:
Σκανάρει common global/user package roots, language toolchains, editor extensions, browser extensions, MCP configs. Ιδανικό για daily/weekly scan με cron ή launchd.
Στοχεύει configured development directories (~~/code, ~/src, ~/work). Χρήσιμο για recurring inventory active projects. Αρνείται bare home roots.
Sweeps operator-supplied roots, συνήθως bare home directory. Για active incident response. Απαιτεί explicit --root path.
// 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"
}
bumblebee selftest μετά την εγκατάσταση. Εκτελεί τον scanner σε embedded fake-package fixtures και επαληθεύει ότι βρίσκει αυτό που πρέπει. Non-zero exit = κάτι πήγε στραβά με το installation.
// 08 — RoadmapΤι Έρχεται;
Το repo κινείται γρήγορα — μέσα σε μια εβδομάδα από την κυκλοφορία είχε ήδη ανοιχτά PRs για:
Full Windows support με complete filesystem path handling για Windows dev environments.
Ecosystem support για conda και pixi — κρίσιμο για data science και ML teams.
Distribution μέσω npm και pip για easier installation σε teams χωρίς Go environment.
Ανίχνευση 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 σου.
Ένα Command. 10 Δευτερόλεπτα. Ξέρεις αν Είσαι Εκτεθειμένος.
go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest
Αυτό είναι το μόνο που χρειάζεσαι. Στα 10 δευτερόλεπτα ξέρεις αν έχεις κάποιο γνωστό κακόβουλο package, extension ή MCP config στο laptop σου.