Bumblebee: اسکنر زنجیره تأمین برای مک و لینوکس
خلاصهٔ کاملتر
Bumblebee یه ابزار متنباز از Perplexityه که برای پاسخ به یه سوال خیلی مشخص در زمینه امنیت زنجیره تأمین (supply-chain security) ساخته شده: وقتی یه advisory امنیتی یه پکیج یا نسخه خاص رو نام میبره، کدوم دستگاههای توسعهدهنده الان اون پکیج رو روی خودشون دارن؟ ابزارهایی مثل SBOM بهت میگن چی ship شده، و EDR بهت میگه چی اجرا شده — ولی Bumblebee یه view متفاوت میده: وضعیت فعلی فایلهای روی دیسک، از lockfileها گرفته تا مانیفست افزونهها.
این ابزار بهصورت یه binary استاتیک واحد نوشته شده با Go 1.25+ و هیچ dependency خارج از stdlib نداره. فقط فایلهای متادیتا رو میخونه — مثل package-lock.json، pnpm-lock.yaml، go.sum، composer.lock و مانیفستهای افزونههای VS Code یا مرورگر — و هیچوقت دستوراتی مثل npm ls یا pip show رو اجرا نمیکنه. این یعنی کاملاً read-only و بیخطره.
سه پروفایل اسکن داره: baseline برای موجودی سبک روزانه (پکیجهای global، افزونهها)، project برای دایرکتوریهای پروژه مثل ~/code، و deep برای بررسیهای عمیقتر روی مسیرهای دلخواه مثل $HOME. پروفایل deep معمولاً با --exposure-catalog استفاده میشه تا فقط موارد مطابقت با advisory نشون داده بشن:
bumblebee scan --profile deep \
--root "$HOME" \
--exposure-catalog ./catalog.json \
--max-duration 10mخروجی به فرمت NDJSON (هر رکورد یه خط JSON) ه. هر رکورد اطلاعاتی مثل نام پکیج، نسخه، مسیر فایل منبع، hostname دستگاه، و سطح اطمینان (high، medium، low) داره. وقتی از --exposure-catalog استفاده میکنی، رکوردهای finding هم تولید میشن که دقیقاً نشون میدن کدوم دستگاه با کدوم advisory مطابقت داره.
فرمت exposure catalog سادهست — یه JSON با لیست پکیجها، نسخهها، ecosystem، و شدت آسیبپذیری. مقایسه دقیق بر اساس (ecosystem, name, version) انجام میشه. پروژه یه دایرکتوری threat_intel/ هم داره که catalogهای آمادهای برای کمپینهای اخیر supply-chain داره و از طریق PR بهروز میشه.
نکات کلیدی:
- ابزار read-onlyه و هیچ package managerای رو اجرا نمیکنه
- پوشش گسترده: npm، pnpm، Yarn، Bun، PyPI، Go modules، RubyGems، Composer، MCP configs، افزونههای VS Code و مرورگر
- سه پروفایل اسکن برای سناریوهای مختلف: baseline، project، deep
- خروجی NDJSON با فیلد confidence برای اطمینان از صحت نتایج
- binary استاتیک با zero dependency، نوشتهشده با Go
- دارای selftest داخلی برای تأیید سلامت نصب قبل از deploy




