Perplexity Open-Sources Bumblebee: un escáner de cadena de suministro de solo lectura para puntos finales de desarrolladores

Los atacantes atacan cada vez más los paquetes, las extensiones del editor y las configuraciones de herramientas de inteligencia artificial en las máquinas de desarrollo y no solo en los sistemas de producción. Perplexity ha abierto una herramienta interna que utiliza para abordar este problema.

Perplexity lanzó Bumblebee en GitHub. La herramienta es un recopilador de inventario de solo lectura para puntos finales de desarrollador de macOS y Linux. Está escrito completamente en Go y no tiene dependencias que no sean stdlib. Perplexity ya lo utiliza internamente para proteger los sistemas de los desarrolladores detrás de su producto de búsqueda, el navegador Comet y el agente informático.

Problema que resuelve Bumblebee

Si es ingeniero de software o científico de datos, es probable que tenga docenas de paquetes instalados localmente. Tiene extensiones de editor, complementos de navegador y posiblemente configuraciones MCP (Protocolo de contexto de modelo) en su máquina. Cuando surge una nueva vulnerabilidad, su equipo de seguridad se enfrenta a una pregunta urgente: ¿qué máquinas de desarrollador están expuestas en este momento?

Las herramientas existentes no responden plenamente a esta cuestión. Las SBOM (listas de materiales de software) y los escáneres de vulnerabilidades cubren repositorios y artefactos de compilación. Los productos EDR (Detección y respuesta de puntos finales) rastrean qué procesos se ejecutaron o tocaron la red. Ninguno de los dos verifica el estado del desarrollador local: archivos de bloqueo, metadatos de paquetes, manifiestos de extensión y configuraciones de herramientas de inteligencia artificial dispersas en el sistema de archivos de una computadora portátil.

Bumblebee llena ese vacío. Cuando un aviso nombra un paquete, extensión o versión, responde qué máquinas muestran una coincidencia en sus metadatos en el disco en este momento. El alcance del ecosistema también fue deliberado: los ecosistemas cubiertos se corresponden con campañas activas recientes de la cadena de suministro, incluida la serie Mini Shai-Hulud, que afectó a npm, PyPI, RubyGems, módulos Go y paquetes Composer en empresas como TanStack, SAP y Zapier.

Cómo funciona el abejorro

Bumblebee es un escáner de una sola vez. Cada invocación realiza un único escaneo y sale. La cadencia es responsabilidad del operador: herramientas de flota cron, launchd, systemd o MDM. Genera registros estructurados como NDJSON (JSON delimitado por nuevas líneas), uno por línea, y los diagnósticos van a stderr.

La herramienta admite tres perfiles de escaneo. El perfil de referencia analiza las raíces de paquetes de usuario y globales comunes, las cadenas de herramientas de idiomas, las extensiones del editor, las extensiones del navegador y las configuraciones de MCP. El perfil del proyecto apunta a directorios de desarrollo configurados como ~/code o ~/src. El perfil profundo barre las raíces proporcionadas por el operador, normalmente un directorio de inicio vacío durante un incidente activo.

Internamente, Perplexity utiliza Bumblebee dentro de un flujo de trabajo de cinco pasos. Una señal de amenaza proviene de divulgaciones públicas o fuentes de información de terceros. Luego, Perplexity Computer redacta una actualización del catálogo, ingresando la señal como una entrada estructurada con ecosistema, nombre del paquete y versión, y abre un GitHub PR con enlaces de origen. Un desarrollador humano revisa y fusiona las relaciones públicas. Luego, Bumblebee se ejecuta en puntos finales con el catálogo actualizado y los hallazgos se comparten con el equipo de seguridad.

Fuente de la imagen: https://www.perplexity.ai/hub/blog/perplexity-is-open-sourcing-bumblebee

Lo que escanea Bumblebee

Bumblebee cubre cuatro áreas de superficie que las herramientas existentes normalmente manejan por separado.

Para los administradores de paquetes de idiomas, lee desde los módulos npm, pnpm, Yarn, Bun, PyPI, Go, RubyGems y Composer. Lee archivos de bloqueo y metadatos de paquetes instalados directamente: fuentes como package-lock.json, pnpm-lock.yaml, go.sum y *.dist-info/METADATA. Tenga en cuenta que bun.lockb, el formato de archivo de bloqueo binario de Bun, no se analiza en v0.1; sólo se admite el formato de texto bun.lock.

Para las configuraciones del agente de IA, Bumblebee lee los archivos de configuración del host MCP JSON: mcp.json, .mcp.json, claude_desktop_config.json, mcp_config.json, mcp_settings.json, cline_mcp_settings.json y ~/.gemini/settings.json para Gemini CLI. Las configuraciones de MCP que no son JSON, como Codex config.toml y Continuar YAML, no se analizan en la versión 0.1. Analiza estos archivos para el inventario del servidor, pero no emite valores de entorno ni nombres de claves de entorno que se encuentran en los bloques env.

Para las extensiones del editor, lee manifiestos de VS Code, Cursor, Windsurf y VSCodium. Para las extensiones de navegador, cubre los navegadores de la familia Chromium (Chrome, Comet, Edge, Brave y Arc) además de Firefox.

Por qué solo lectura

Los paquetes npm pueden contener scripts posteriores a la instalación que se ejecutan automáticamente en la instalación de npm. Un escáner que invoca npm para verificar la exposición ya desencadenó el ataque que estaba buscando. Bumblebee evita esto por completo al no ejecutar nunca scripts de instalación o enlaces de ciclo de vida, nunca invocar npm, pnpm, bun o pip, nunca leer los archivos fuente de la aplicación y no realizar ningún proceso o monitoreo de red. No es una EDR.

Catálogo de salida y exposición

Cada registro de paquete incluye el nombre de host, el sistema operativo, la arquitectura, el ecosistema, el nombre del paquete, la versión, el archivo fuente y un campo de confianza. La confianza es alta cuando la identidad y la versión exactas provienen de metadatos canónicos, media cuando la identidad es confiable pero la versión o la fuente es parcial y baja cuando solo se encuentra una ruta de configuración o una referencia de especificaciones.

Los equipos de seguridad proporcionan sus propios catálogos de exposición: archivos JSON simples que especifican el ecosistema, el nombre del paquete y las versiones afectadas. Cuando Bumblebee encuentra una coincidencia, emite un registro de búsqueda que incluye la gravedad, la identificación del catálogo y la evidencia. Cada hallazgo es totalmente rastreable hasta qué entrada del catálogo lo provocó. El repositorio también incluye un directorio Threat_intel/ con catálogos de exposición mantenidos creados a partir de informes de campañas de la cadena de suministro pública.

Empezando

Bumblebee requiere Go 1.25 o posterior. Instalar con:

vaya a instalar github.com/perplexityai/bumblebee/cmd/bumblebee@latest

Después de la instalación, la autoprueba de Bumblebee verifica que el binario funcione correctamente con los dispositivos integrados. La herramienta tiene la licencia Apache 2.0. La versión actual es v0.1.1.

Conclusiones clave

Bumblebee es el escáner de punto final de desarrollador de código abierto y de solo lectura de Perplexity para verificaciones de exposición de la cadena de suministro. Cubre npm, pnpm, Yarn, Bun, PyPI, módulos Go, RubyGems, Composer, configuraciones MCP, extensiones de editor y extensiones de navegador. Tres perfiles de escaneo (línea de base, proyecto y profundo) respaldan el inventario de rutina y la respuesta activa a incidentes. La herramienta nunca ejecuta scripts de instalación ni invoca administradores de paquetes, lo que evita ataques desencadenados por análisis. Go integrado sin dependencias no estándar; disponible ahora en GitHub bajo Apache 2.0.

Consulte el repositorio de GitHub y los detalles técnicos. Además, no dude en seguirnos en Twitter y no olvide unirse a nuestro SubReddit de más de 150.000 ML y suscribirse a nuestro boletín. ¡Esperar! estas en telegrama? Ahora también puedes unirte a nosotros en Telegram.

¿Necesita asociarse con nosotros para promocionar su repositorio de GitHub O su página principal de Hugging O su lanzamiento de producto O seminario web, etc.? Conéctate con nosotros