Vytvořeno: 31.5.2026 | Aktualizováno: 31.05.2026 20:32
Bumblebee je read-only scanner vývojářských endpointů pro sběr metadat o balíčcích, rozšířeních a vývojářských nástrojích uložených na disku. Slouží hlavně k rychlé odpovědi na otázku, jestli se na konkrétním stroji nebo ve vývojových projektech nachází známý kompromitovaný balíček, verze nebo rozšíření.
Bumblebee řeší úzký problém v oblasti software supply-chain incident response:
Není to obecný detektor malwaru. Bumblebee neříká, že stroj byl kompromitován. Říká, že na disku existuje metadata stopa komponenty, která odpovídá známému rizikovému záznamu.
Typická otázka, na kterou odpovídá:
„Vyšlo advisory naexample-pkg@1.2.3. Které vývojářské stroje nebo projekty tuto verzi obsahují?“
Bumblebee vyplňuje mezeru mezi klasickým SBOM a EDR:
To je praktické hlavně u vývojářských strojů, kde mohou zůstávat staré projekty, cache, lokální virtuální prostředí, rozšíření editorů nebo MCP konfigurace, které nejsou vidět v produkčním SBOM.
Přesný seznam čtených souborů je popsaný v dokumentaci inventory sources. Podle aktuální dokumentace Bumblebee pokrývá hlavně tyto oblasti:
package-lock.json, npm-shrinkwrap.json, node_modules/.package-lock.json, node_modules/<pkg>/package.jsonpnpm-lock.yaml a metadata v .pnpm layoutuyarn.lockbun.lock; binární bun.lockb je pouze diagnostikován.dist-info a .egg-infogo.sum a go.modGemfile.lock a vybrané .gemspec souborycomposer.lock a vendor/composer/installed.jsonmcp.json, .mcp.json, claude_desktop_config.json nebo vybrané konfigurace Gemini / Claude CodeBumblebee je navržený jako read-only scanner. Podle dokumentace:
npm ls, pip show, go list, bundle list, composer show nebo brew list,To je důležité pro bezpečné použití na vývojářských endpointech: nástroj pouze čte vybraná metadata a generuje strukturovaný výstup.
Bumblebee potřebuje jeden ze dvou vstupů:
Praktický tok při incidentu:
finding záznamy pro přesné shody.Bumblebee je Go projekt bez externích non-stdlib závislostí. Podle README vyžaduje Go 1.25+.
Instalace poslední vydané verze:
go install github.com/perplexityai/bumblebee/cmd/bumblebee@latest
Instalace konkrétní verze:
go install github.com/perplexityai/bumblebee/cmd/bumblebee@v0.1.1
Po instalaci je vhodné spustit self-test:
bumblebee selftest
Self-test používá vestavěné fixture balíčky a nedělá síťové volání. Pokud selže, lokální instalace nedetekuje to, co má.
Bumblebee má tři profily. Každé spuštění je jednorázové: scanner proběhne a skončí. Periodicitu musí řešit externí runner, například cron, systemd, launchd nebo MDM.
Profil baseline skenuje běžné globální a uživatelské umístění:
Použití:
bumblebee scan --profile baseline > baseline.ndjson
Hodí se pro pravidelný lehký inventář endpointu.
Profil project skenuje vývojové adresáře, například ~/code, ~/src, ~/Developer nebo explicitně předané roots.
Použití:
bumblebee scan --profile project \ --root "$HOME/code" \ --root "$HOME/Developer" \ > project.ndjson
Hodí se pro pravidelný inventář známých workspace adresářů.
Profil deep je určený hlavně pro incidentní nebo kampaňové kontroly. Vyžaduje explicitní –root a umí projít široký adresář, například celý $HOME.
Typické použití při známém incidentu:
bumblebee scan --profile deep \ --root "$HOME" \ --exposure-catalog ./catalog.json \ --findings-only
deep není ideální jako běžný denní scan všeho. Smysl dává hlavně tehdy, když už existuje konkrétní exposure catalog a cílem je rychle ověřit expozici.
Exposure catalog je JSON seznam známých rizikových komponent. Formát je jednoduchý a pracuje s přesnou kombinací ekosystému, názvu balíčku a verze.
Minimalistický příklad:
{
"schema_version": "0.1.0",
"entries": [
{
"id": "advisory-2026-0042",
"name": "example-pkg 1.2.3 compromised release",
"ecosystem": "npm",
"package": "example-pkg",
"versions": ["1.2.3"],
"severity": "critical"
}
]
}
Použití katalogu:
bumblebee scan --profile deep \ --root "$HOME" \ --exposure-catalog ./catalog.json \ --findings-only
Pokud advisory popisuje rozsah verzí, je potřeba podle dokumentace počítat s tím, že Bumblebee v katalogu používá přesné shody. Takový rozsah je tedy potřeba buď převést na konkrétní verze, nebo dělat širší korelaci mimo Bumblebee nad inventářem.
Bumblebee sám neříká, co je kompromitované. K tomu je potřeba threat intelligence nebo ručně připravený katalog.
Repozitář obsahuje složku threat_intel s ukázkovými a udržovanými exposure katalogy pro vybrané supply-chain kampaně. Dokumentace k této složce výslovně doporučuje záznamy před produkčním použitím zkontrolovat proti aktuálním advisories.
Další praktické zdroje mohou být:
Výsledek z těchto zdrojů musí být převedený do formátu exposure catalogu.
Bumblebee zapisuje výstup jako NDJSON, tedy jeden JSON záznam na řádek. README a state model dokumentace popisují tři důležité typy záznamů:
package — záznam o nalezené komponentě,finding — shoda s exposure catalogem,scan_summary — závěrečný souhrn běhu scanneru.
U dlouhodobého sběru je důležité pracovat jen s kompletními běhy. Dokumentace doporučuje považovat běh za použitelný pro aktuální stav až po přijetí odpovídajícího scan_summary se stavem complete.
Příklad filtrování inventáře přes jq:
jq 'select(.record_type == "package" and .ecosystem == "npm")' inventory.ndjson
Hledání konkrétního balíčku:
jq 'select(.record_type == "package" and .normalized_name == "example-pkg")' inventory.ndjson
Zobrazení MCP záznamů:
jq 'select(.record_type == "package" and .source_type == "mcp-config")' inventory.ndjson
Pro osobní nebo malý vývojářský setup dává smysl začít takto:
bumblebee selftest bumblebee scan --profile baseline > baseline.ndjson bumblebee scan --profile project \ --root "$HOME/code" \ > project.ndjson
Při konkrétní supply-chain kampani:
bumblebee scan --profile deep \ --root "$HOME" \ --exposure-catalog ./threat_intel/nejaky-katalog.json \ --findings-only
Pro firemní použití dává větší smysl:
baseline a project inventář,deep používat jen jako cílený incidentní scan.Aktuální dokumentace uvádí, že Bumblebee zatím nepokrývá například:
Cargo.lock,bun.lockb decoder.Je také potřeba počítat s tím, že nález je metadata stopa, ne důkaz spuštění nebo kompromitace. Pokud Bumblebee najde rizikový balíček, je to vstup pro další šetření a remediaci.
Bumblebee je praktický nástroj pro rychlou kontrolu expozice vývojářských strojů vůči známým supply-chain kompromitacím. Největší hodnotu má ve chvíli, kdy existuje konkrétní seznam podezřelých balíčků nebo verzí a je potřeba rychle zjistit, kde se v lokálním vývojářském prostředí nachází.