GitHub y PyPI (Python Package Index) han introducido un mecanismo basado en el tiempo en la herramienta de gestión de dependencias Dependabot para protegerse contra ataques a la cadena de suministro y limitar su impacto. Específicamente, Dependabot ahora incluye un período de espera predeterminado de tres días, mientras que PyPI rechazará nuevos archivos subidos a versiones publicadas hace más de 14 días.
La medida llega después de que ambos ecosistemas de desarrollo hayan experimentado múltiples ataques de alto perfil durante el último año. Algunos ejemplos notables incluyen los ataques 'chalk' y 'debug', la operación 's1ngularity', la campaña Shai-Hulud y el ataque a la cadena de suministro GhostAction.
GitHub añade período de espera en Dependabot
Dependabot es el servicio de actualización de dependencias de GitHub que lee archivos con información sobre nuevas versiones de paquetes y abre solicitudes de actualización para notificar a los mantenedores de software. Ahora la herramienta retrasa el proceso de actualización de paquetes durante 72 horas para reducir el riesgo de adoptar automáticamente paquetes maliciosos recién publicados.
En muchos casos recientes, paquetes npm maliciosos fueron detectados y señalados por herramientas de seguridad en cuestión de minutos tras ser publicados. Sin embargo, la detección rápida por sí sola no elimina la amenaza, ya que los mantenedores de repositorios y proveedores deben tomar medidas para eliminar los paquetes, dejando una ventana durante la cual los desarrolladores y proyectos pueden descargar e incorporar código malicioso.
GitHub explicó que se eligió el período de tres días como un punto equilibrado entre evitar lanzamientos riesgosos y mantenerse al día con las últimas actualizaciones, aunque señaló que los usuarios aún pueden configurar un retraso más corto o más largo mediante la opción de configuración 'cooldown' de Dependabot.
PyPI bloquea el envenenamiento de versiones con un límite de 14 días
PyPI anunció que ahora bloquea a los mantenedores para que no agreguen nuevos archivos a una versión de paquete después de que hayan transcurrido 14 días desde su publicación. La medida tiene como objetivo evitar que los atacantes que comprometan tokens de publicación o flujos de trabajo envenenen versiones antiguas y confiables.
La plataforma descubrió que solo un porcentaje muy pequeño de proyectos cargaban legítimamente archivos más de dos semanas después de publicar una versión. Cabe destacar que no se ha confirmado que ningún ataque conocido a PyPI haya utilizado la técnica de envenenamiento de versiones que esta nueva medida bloquea, pero la plataforma actúa de manera preventiva para cerrar una posibilidad peligrosa.