GitHub y PyPI han implementado nuevas defensas basadas en restricciones temporales para mitigar ataques a la cadena de suministro en sus ecosistemas de desarrollo. Estas medidas buscan reducir el riesgo de que código malicioso se integre rápidamente en proyectos de software.
Por qué importa: Los ataques a la cadena de suministro han aumentado en frecuencia y sofisticación, poniendo en riesgo miles de proyectos y usuarios que dependen de paquetes de terceros.
Lo esencial
Dependabot de GitHub introduce un periodo de espera de 72 horas antes de actualizar dependencias automáticamente.
PyPI bloquea la adición de archivos nuevos a versiones de paquetes con más de 14 días de antigüedad.
Estas medidas buscan prevenir la incorporación rápida de paquetes maliciosos y la contaminación de versiones antiguas confiables.
Dependabot añade periodo de enfriamiento para actualizaciones
Dependabot, la herramienta de GitHub para gestionar actualizaciones de dependencias, ahora aplica un retraso predeterminado de tres días antes de abrir solicitudes de actualización. Este periodo busca evitar que paquetes maliciosos recién publicados sean adoptados automáticamente por proyectos, dado que en ataques recientes se detectaron paquetes dañinos minutos después de su publicación.
GitHub permite configurar este retraso para adaptarlo a las necesidades de cada proyecto, pero advierte que esta medida no elimina riesgos a largo plazo. Por ello recomienda usar archivos de bloqueo para fijar versiones, limitar tokens con permisos restringidos y deshabilitar scripts innecesarios en integraciones continuas.
PyPI bloquea modificaciones en lanzamientos antiguos
PyPI, el repositorio oficial de paquetes Python, ha implementado una restricción que impide a los mantenedores subir nuevos archivos a versiones de paquetes que tengan más de 14 días desde su publicación. Esta medida busca evitar que actores maliciosos comprometan tokens o flujos de trabajo para contaminar versiones antiguas y confiables.
Imagen de referencia: BleepingComputer.
Si bien no se han registrado ataques confirmados que usen esta técnica, PyPI actúa preventivamente para cerrar esta posible vía de ataque, ya que la mayoría de proyectos no realizan modificaciones en versiones tan antiguas.
Contexto de ataques recientes a la cadena de suministro
El último año ha visto múltiples ataques destacados contra ecosistemas de desarrollo, como los incidentes con los paquetes ‘chalk’ y ‘debug’, la operación “s1ngularity”, la campaña Shai-Hulud y el ataque GhostAction. Estas campañas han demostrado la vulnerabilidad de los sistemas automatizados para actualizar dependencias y la necesidad de controles adicionales.
GitHub y PyPI continúan fortaleciendo sus defensas para proteger a millones de desarrolladores y usuarios que dependen de sus plataformas para distribuir y mantener software seguro.
Preguntas frecuentes sobre Dependabot y PyPI
¿Se puede modificar el periodo de espera en Dependabot?
Sí, los usuarios pueden configurar el tiempo de espera en Dependabot mediante la opción de configuración 'cooldown' para ajustarlo según sus necesidades.
¿Existen ataques confirmados que usen la técnica bloqueada por PyPI?
No, hasta ahora no se han confirmado ataques que hayan utilizado la adición de archivos a versiones antiguas, pero la medida busca prevenir esta posibilidad.