Página traducida y verificada automáticamente. Prevalece la versión en inglés. Algunas partes siguen en inglés mientras se verifica su traducción. Ver en inglés · Informar un error de traducción

DeepDive › Supervisión de terceros

Compilaciones reproducibles en la práctica

500 paquetes analizados. 312: reproducibles. 188: no reproducibles. El 188: el código fuente no determina de forma única el binario.

Supervisión de terceros 4 min de lectura · 23 de julio de 2026

Las compilaciones reproducibles (la propiedad de que un proceso de compilación produzca una salida idéntica bit a bit a partir de las mismas entradas de código fuente cuando se ejecuta en un entorno de compilación definido) proporcionan la base técnica para verificar de forma independiente que los artefactos de software distribuidos coinciden con el código fuente a partir del cual afirman haberse compilado. Cuando una compilación es reproducible, cualquier parte con acceso al código fuente y a la especificación del entorno de compilación puede recompilar el artefacto y verificar que su reproducción coincide con la versión distribuida. Cuando no es reproducible, hay que confiar en el artefacto distribuido sobre la base de la integridad del canal de distribución, sin ningún mecanismo técnico de verificación independiente.

El problema de la falta de reproducibilidad tiene varias causas, la mayoría de las cuales no son fallas de seguridad en sí mismas, sino decisiones de ingeniería que introducen variabilidad de forma involuntaria. Las marcas de tiempo incrustadas en los artefactos de compilación (marcas de tiempo de compilación, fechas de creación de archivos comprimidos) difieren entre compilaciones realizadas en momentos distintos. Los identificadores de versión o los metadatos de compilación que incluyen el nombre de host, la ruta o el nombre de usuario del entorno de compilación difieren entre entornos de compilación. El orden del contenido de los directorios al crear archivos comprimidos puede depender del sistema de archivos en lugar de ser determinista. La generación de números aleatorios durante la configuración de la compilación puede producir salidas distintas en ejecuciones distintas. Nada de esto introduce vulnerabilidades por sí mismo, pero impide verificar de forma independiente que el binario distribuido coincide con el código fuente.

La implicación de la falta de reproducibilidad para la seguridad de la cadena de suministro es que el compromiso de la infraestructura de distribución (la sustitución de un binario legítimo por uno malicioso en el registro de artefactos) no puede detectarse mediante la comparación del código fuente. Un binario que difiere de una recompilación limpia del código fuente podría no ser reproducible debido a una variabilidad benigna de la compilación, o podría contener código malicioso inyectado. Sin reproducibilidad, ambos casos son indistinguibles mediante comparación técnica. Con reproducibilidad, un binario que no coincide con una recompilación limpia es definitivamente anómalo y justifica una investigación.

Por qué es importante

Las compilaciones reproducibles son importantes para TPRM porque son el requisito técnico previo para verificar de forma independiente la procedencia del software a nivel de binario. En los despliegues de software de mayor criticidad (dispositivos de seguridad de red, bibliotecas criptográficas, infraestructura de autenticación), la imposibilidad de verificar de forma independiente que el binario distribuido coincide con el código fuente publicado representa un riesgo de la cadena de suministro no verificable que debe aceptarse por confianza y no por garantía técnica.

  • Reproducibilidad no evaluada en los proveedores de software crítico
  • Ausencia de verificación de la procedencia de los binarios: la coincidencia entre código fuente y binario no puede verificarse
  • Detección del compromiso de la distribución imposible sin reproducibilidad
  • Verificación del software crítico limitada a la firma en lugar de la coincidencia con el código fuente
  • No se solicita una hoja de ruta de reproducibilidad a los proveedores no reproducibles

Cómo se ve una buena práctica

Los programas maduros de reproducibilidad identifican el estado de reproducibilidad de los proveedores de software crítico, solicitan hojas de ruta de reproducibilidad a los proveedores cuyas compilaciones no son reproducibles y, en el software de mayor criticidad, realizan una verificación por recompilación: recompilan de forma independiente a partir del código fuente y comparan el resultado con el artefacto distribuido.

  • Evaluación del estado de reproducibilidad del software crítico
  • Hoja de ruta de reproducibilidad de los proveedores críticos no reproducibles
  • Verificación por recompilación del software de mayor criticidad
  • Participación en el proyecto Reproducible Builds como señal de calidad
  • La reproducibilidad como garantía de la cadena de suministro junto con la procedencia SLSA

Herramientas

Reproducibilidad: proyecto Reproducible Builds (reproducible-builds.org); rebuilderd para la verificación automatizada por recompilación

El proyecto Reproducible Builds mantiene una infraestructura para verificar la reproducibilidad en las principales distribuciones de Linux y ecosistemas de paquetes. Rebuilderd es un recompilador de software distribuido que recompila paquetes de forma independiente y compara los resultados con los binarios distribuidos. Para los profesionales de TPRM, comprobar si los paquetes de un proveedor crítico figuran en el seguimiento del proyecto Reproducible Builds aporta un dato sobre el estado de reproducibilidad procedente de una fuente independiente.

Desafíos de gobernanza

El desafío de gobernanza de las compilaciones reproducibles es la inversión de ingeniería necesaria. Lograr la reproducibilidad exige corregir el manejo de las marcas de tiempo, eliminar las rutas de las salidas de compilación y abordar otras fuentes de variabilidad de la compilación, un esfuerzo de ingeniería acotado pero no trivial. Para los programas de TPRM, el enfoque práctico es priorizar los requisitos de reproducibilidad para las categorías de software de mayor criticidad (bibliotecas criptográficas, software de seguridad de red, infraestructura de autenticación) en lugar de exigirla de forma universal.

  • Priorice la evaluación de la reproducibilidad del software de mayor criticidad
  • Solicite una hoja de ruta de reproducibilidad a los proveedores críticos cuyas compilaciones no son reproducibles
  • Consulte el estado de los paquetes del proveedor en el proyecto Reproducible Builds
  • Realice una verificación por recompilación en los despliegues críticos cuando las herramientas lo permitan
  • Pondere la reproducibilidad en los criterios de adquisición de software crítico

Si usted forma parte de un equipo pequeño

Para sus proveedores de bibliotecas criptográficas, software de seguridad de red e infraestructura de autenticación, consulte reproducible-builds.org para conocer su estado de reproducibilidad. Ese sitio web hace seguimiento de la reproducibilidad en las principales distribuciones y ecosistemas de paquetes. Para los paquetes que no aparecen, pregunte directamente al proveedor: ¿su proceso de compilación está diseñado para ser reproducible y puede proporcionar la especificación del entorno de compilación que permitiría a un tercero independiente verificar que su recompilación coincide con el artefacto distribuido?

  • Consulte reproducible-builds.org para los paquetes de los proveedores de software crítico
  • Pida una hoja de ruta de reproducibilidad a los proveedores cuyas compilaciones no son reproducibles
  • Solicite la especificación del entorno de compilación para la verificación independiente
  • Pondere la reproducibilidad en los criterios de selección de software crítico

Qué exigir

Pregunte directamente:

“¿Está diseñado su proceso de compilación para producir artefactos reproducibles? ¿Puede proporcionar la especificación del entorno de compilación y el commit del código fuente que permitirían a una parte independiente recompilar el artefacto y verificar que coincide con su binario distribuido?”

Evidencia que debe esperar

  • Confirmación de la reproducibilidad u hoja de ruta para lograrla
  • Especificación del entorno de compilación
  • Referencia al commit del código fuente de los artefactos distribuidos
  • Participación en el proyecto Reproducible Builds o equivalente

A un proveedor que confirma la seguridad de su cadena de suministro se le debe preguntar por la reproducibilidad. La reproducibilidad es la base técnica de la verificación independiente. Sin ella, la procedencia de los binarios debe aceptarse basándose únicamente en la confianza en la infraestructura de distribución.

Cómo demostrarlo

  • Evaluación del estado de reproducibilidad del software crítico
  • Hoja de ruta de reproducibilidad para los proveedores críticos cuyas compilaciones no son reproducibles
  • Registros de verificación por recompilación, cuando se haya realizado
  • Reproducibilidad en los criterios de adquisición de software crítico

Conclusión clave

500 paquetes. 312 reproducibles. 188: el mismo código fuente produce binarios distintos. En el caso de los 188, el artefacto distribuido no puede verificarse de forma independiente frente al código fuente. Un compromiso de la infraestructura de distribución sustituye un binario distinto, pero el binario ya era distinto de una compilación limpia del código fuente debido a una variabilidad benigna. Lo reproducible y lo no reproducible son técnicamente indistinguibles de lo comprometido cuando el binario difiere del código fuente de la manera esperada. La reproducibilidad elimina la variabilidad benigna, lo que permite detectar el compromiso de la distribución mediante la comparación de binarios. En el software de mayor criticidad (infraestructura criptográfica, seguridad de red), la verificación independiente mediante la reproducibilidad es la garantía técnica en la que se apoyan las atestaciones de procedencia.

Biblioteca de regulaciones

Todas las leyes estatales de privacidad de EE. UU., en un mapa

24 estados tienen una ley integral de privacidad en la biblioteca, junto con las leyes de la UE, del Reino Unido, federales de EE. UU. y globales: 102 en total, cada una explicada en palabras sencillas con sus fuentes. Seleccione un estado para ver qué se aplica allí.

  • En vigor
  • Entrada en vigor
  • Leyes sectoriales
AK ME VT NH WA ID MT ND MN IL WI MI NY RI MA OR NV WY SD IA IN OH PA NJ CT CA UT CO NE MO KY WV VA MD DE AZ NM KS AR TN NC SC DC OK LA MS AL GA HI TX FL