GitHub y PyPI añaden nuevos controles para reducir el riesgo de la cadena de suministro de paquetes
GitHub y el Índice de Paquetes de Python (PyPI) están introduciendo medidas diseñadas para limitar dos riesgos de la cadena de suministro de software: la distribución rápida de nuevas versiones malici...
GitHub y el Índice de Paquetes de Python (PyPI) están introduciendo medidas diseñadas para limitar dos riesgos de la cadena de suministro de software: la distribución rápida de nuevas versiones maliciosas y la modificación posterior de versiones que han permanecido estables durante meses o años.
El cambio de GitHub añade un retraso predeterminado de tres días a las solicitudes de incorporación de cambios de Dependabot para actualizaciones rutinarias de dependencias. Dependabot esperará al menos 72 horas después de que una nueva versión esté disponible antes de proponer la actualización, lo que dará a los mantenedores, investigadores de seguridad y sistemas de análisis automatizado más tiempo para identificar código sospechoso o lograr que se retire un paquete comprometido.
El periodo de espera se aplica a las actualizaciones de versiones que no están relacionadas con la seguridad. Las organizaciones pueden ajustar este comportamiento mediante el archivo de configuración dependabot.yml, mientras que las actualizaciones relacionadas con la seguridad no están sujetas al mismo retraso predeterminado. GitHub afirmó que el periodo de tres días pretende equilibrar la exposición a paquetes maliciosos recién publicados con la necesidad de mantener las dependencias razonablemente actualizadas.
PyPI limita los cambios en versiones antiguas
PyPI está adoptando una medida de protección diferente al restringir la carga de nuevos archivos en versiones que tengan más de 14 días. La política pretende evitar que atacantes que obtengan las credenciales de publicación de un proyecto o comprometan su flujo de trabajo de lanzamiento añadan una rueda maliciosa u otro artefacto a una versión consolidada.
Se espera que la restricción entre en vigor después de que la API Upload 2.0 y los mecanismos de vista previa escalonada se estandaricen mediante la PEP 694. PyPI afirmó que el impacto debería ser limitado, ya que relativamente pocos proyectos siguen añadiendo archivos específicos de plataformas a versiones antiguas. En un análisis de los 15.000 paquetes más descargados, solo 56 habían publicado una rueda compatible con Python 3.14 más de dos semanas después de que la versión correspondiente estuviera disponible inicialmente.
Además de proteger a los usuarios, PyPI afirmó que la regla debería simplificar la respuesta ante incidentes. Si una versión antigua ya no puede recibir archivos nuevos, los investigadores podrán distinguir con mayor facilidad los artefactos legítimos de los archivos añadidos durante un compromiso.
En conjunto, las políticas abordan distintos puntos del ciclo de vida de las dependencias: GitHub ralentiza la adopción inicial de versiones no confiables, mientras que PyPI reduce la posibilidad de modificar versiones que los usuarios ya consideran fiables. Ninguno de los dos controles elimina los ataques a la cadena de suministro, pero ambos aportan tiempo y visibilidad adicionales para detectar cambios maliciosos antes de que se propaguen ampliamente.
