search

Presentando OSS Rebuild: Código abierto, reconstruido para durar

person Por Kimberly Samra
source Fuente: Google Online Security Blog
calendar_today
schedule 7 min de lectura

Publicado por Matthew Suozzo, Equipo de Seguridad de Código Abierto de Google (GOSST) Hoy estamos emocionados de anunciar OSS Rebuild, un nuevo proyecto para fortalecer la confianza en los ecosistemas de paquetes de código abierto mediante la reproducción de artefactos de upstream. A medida que los ataques de la cadena de suministro continúan dirigirse a las dependencias más utilizadas, OSS Rebuild proporciona a los equipos de seguridad datos potentes para evitar la comprometed, sin exigir a los mantenedores de upstream. El proyecto comprende: Automatización para derivar definiciones de construcción declarativas para paquetes existentes de PyPI (Python), npm (JS/TS) y Crates.io (Rust). SLSA Provenance para miles de paquetes en nuestros ecosistemas admitidos, cumpliendo los requisitos de SLSA Build Level 3 sin intervención del publicador. Herramientas de observabilidad y verificación para los que las equipan los equipos de seguridad en sus flujos de trabajo existentes de gestión de vulnerabilidades. Definiciones de infraestructura para permitir a las organizaciones ejecutar sus propias instancias de OSS Rebuild para reconstruir, generar, firmar y distribuir la procedencia. Desafíos El software de código abierto se ha convertido en la base de nuestro mundo digital. Desde la infraestructura crítica hasta las aplicaciones cotidianas, los componentes de OSS representan el 77% de las aplicaciones modernas. Con un valor estimado que supera los 12 billones de dólares, el software de código abierto nunca ha sido tan integral para la economía global. Sin embargo, esta ubicuidad hace que el código abierto sea un objetivo atractivo: Los recientes ataques de la cadena de suministro de alto perfil han demostrado métodos sofisticados para comprometer paquetes ampliamente utilizados. Cada incidente erosiona la confianza en los ecosistemas de código abierto, creando vacilación tanto entre los contribuyentes como entre los consumidores. La comunidad de seguridad ha respondido con iniciativas como OpenSSF Scorecard, Trusted Publishers de pypi y SLSA nativo de npm. Sin embargo, no existe una panacea: Cada esfuerzo tiene como objetivo un aspecto específico del problema, a menudo haciendo concesiones como trasladar el trabajo a los editores y mantenedores. Nuestro objetivo con OSS Rebuild es empoderar a la comunidad de seguridad para comprender y controlar profundamente sus cadenas de suministro al hacer que el consumo de paquetes sea tan transparente como usar un repositorio de origen. Nuestra plataforma de reconstrucción desbloquea esta transparencia utilizando un proceso de construcción declarativo, instrumentación de construcción y capacidades de monitoreo de red, que, dentro del marco SLSA Build, produce metadatos de seguridad granulares y duraderos y confiables. Basándonos en el modelo de infraestructura que hemos pionero con OSS Fuzz para la detección de problemas de memoria, OSS Rebuild busca igualmente utilizar recursos alojados para abordar los desafíos de seguridad en el código abierto, esta vez para asegurar la cadena de suministro de software. Nuestra visión se extiende más allá de cualquier ecosistema individual: Estamos comprometidos a llevar la transparencia y la seguridad de la cadena de suministro a todo el desarrollo de software de código abierto. Nuestro soporte inicial para los registros de paquetes de PyPI (Python), npm (JS/TS) y Crates.io (Rust) —proporcionando reconstrucción de procedencia para muchos de sus paquetes más populares— es solo el comienzo de nuestro viaje. Cómo funciona OSS Rebuild Mediante la automatización y la heurística, determinamos una definición de construcción potencial para un paquete objetivo y lo reconstruimos. Comparamos semánticamente el resultado con el artefacto de upstream existente, normalizándolos para eliminar las inestabilidades que causan fallos en las comparaciones bit a bit (p. ej. compresión de archivos). Una vez que hemos reproducido el paquete, publicamos la definición de construcción y el resultado a través de SLSA Provenance. Esta afirmación permite a los consumidores verificar de forma fiable el origen de un paquete en el historial de origen, comprender y repetir su proceso de construcción y personalizar la construcción a partir de una base funcional conocida (o incluso usarla para generar SBOMs más detallados). Con la automatización existente de OSS Rebuild para PyPI, npm y Crates.io, la mayoría de los paquetes obtienen protección sin intervención del usuario ni del mantenedor. Cuando la automatización no puede reproducir completamente el paquete, ofrecemos una especificación de construcción manual para que toda la comunidad se beneficie de las contribuciones individuales. También estamos entusiasmados con el potencial de la IA para reproducir paquetes: Los procesos de construcción y publicación a menudo se describen en documentación de lenguaje natural, que, aunque difíciles de utilizar con la lógica discreta, son cada vez más útiles para los modelos de lenguaje. Nuestros experimentos iniciales han demostrado la viabilidad del enfoque para automatizar la exploración y las pruebas, con una intervención humana limitada, incluso en las construcciones más complejas. Nuestros capacidades OSS Rebuild ayuda a detectar varias clases de compromisos de la cadena de suministro: Código fuente no enviado - Cuando los paquetes publicados contienen código que no está presente en el repositorio de código fuente público, OSS Rebuild no atestigua el artefacto. Ataque del mundo real: solana/webjs (2024 Ataque de compromiso del entorno de construcción - Creando entornos de construcción estándar y mínimos con un monitoreo completo, OSS Rebuild puede detectar actividad de construcción sospechosa o evitar la exposición a componentes comprometidos por completo. Ataque del mundo real: tj-actions/changed-files (2025 Ataques de puertas tras cerradas - Incluso las puertas tras cerradas sofisticadas como xz a menudo exhiben patrones de comportamiento anómalos durante la construcción. Las capacidades de análisis dinámico de OSS Rebuild pueden detectar rutas de ejecución inusuales o operaciones sospechosas que de lo contrario son imprácticas para identificar a través de la revisión manual. Ataque del mundo real: xz-utils (2024 Para empresas y profesionales de seguridad, OSS Rebuild puede… Mejorar los metadatos sin cambiar los registros enriqueciendo los datos para los paquetes de upstream. No es necesario mantener registros personalizados o migrar a un nuevo ecosistema de paquetes. Ampliar los SBOMs añadiendo información de observabilidad de la construcción a losímeros de Software Bills of Materials, creando una imagen de seguridad más completa. Acelerar la respuesta a vulnerabilidades proporcionando un camino a los proveedores, parches y re-hosting de paquetes de upstream utilizando nuestras definiciones de construcción verificables. Para editores y mantenedores de paquetes de código abierto, OSS Rebuild puede… Fortalecer la confianza en los paquetes proporcionando a los consumidores una verificación independiente de la integridad de la construcción de los paquetes, independientemente de la sofisticación de la construcción original. Retrofit la integridad de los paquetes históricos con afirmaciones de construcción de alta calidad, independientemente de si las afirmaciones de construcción estaban presentes o soportadas en el momento de la publicación. Reducir la sensibilidad de la seguridad de la CI para que los editores puedan centrarse en el trabajo de desarrollo principal. Las plataformas de CI tienden a tener modelos de autorización y ejecución complejos y al realizar reconstrucciones separadas, el entorno de la CI ya no necesita soportar la seguridad de los paquetes. Comprueba aquí! La forma más fácil (pero no la única!) de acceder a las afirmaciones de OSS Rebuild es utilizando la interfaz de línea de comandos Go proporcionada. Puede compilarse e instalarse fácilmente: $ go install github.com/google/oss-rebuild/cmd/oss-rebuild@latest Puede obtener SLSA Provenance de OSS Rebuild: $ oss-rebuild get cratesio syn 2.0.39 …o explorar las versiones reconstruidas de un paquete específico: $ oss-rebuild list pypi absl-py …o incluso reconstruir el paquete por ti mismo: $ oss-rebuild get npm lodash 4.17.20 –output=dockerfile | docker run $(docker buildx build -q -) Únete a nosotros para asegurar el código abierto OSS Rebuild no se trata solo de solucionar problemas, sino de empoderar a los usuarios finales para que hagan que los ecosistemas de código abierto sean más seguros y transparentes a través de la acción colectiva. Si eres desarrollador, empresa o investigador de seguridad, te invitamos a seguirnos y participar. Consulta el código, comparte tus ideas y expresa tu opinión en github.com/google/oss-rebuild. Explora los datos y contribuye a mejorar el soporte para tus ecosistemas y paquetes críticos. Aprende más sobre SLSA Provenance en slsa.dev

Artículos relacionados

cybersecurity

Nueva campaña norcoreana utiliza entrevistas de programación falsas para robar credenciales de desarrolladores

Hackers afiliados a Corea del Norte escondieron malware en imágenes de banderas SVG para realizar pruebas de programación durante las entrevistas para puestos de trabajo. Ninguna empresa de software antivirus lo detectó.

cybersecurity

Abbott investiga dos incidentes cibernéticos a raíz de las denuncias de extorsión

Abbott Laboratories está investigando dos incidentes de ciberseguridad separados después de confirmar el acceso no autorizado a sistemas internos Exact Sciences de su negocio de diagnóstico del cáncer, así como una reclamación separada de que los atacantes accedieron al portal de LabCentral y robaron datos de la empresa.

cybersecurity

La vulnerabilidad HollowByte de ataque DDoS infla la memoria del servidor OpenSSL con un payload de 11 bytes

Una vulnerabilidad denominada HollowByte permite a atacantes no autenticados provocar una condición de denegación de servicio (DoS) en servidores OpenSSL con una carga maliciosa de solo 11 bytes.