Tres días de cuarentena por paquete: GitHub adopta mano dura contra los hackers

Tres días de cuarentena por paquete: GitHub adopta mano dura contra los hackers

GitHub y PyPI endurecen las normas tras una oleada de ataques a la cadena de suministro de software.

image

GitHub y Python Package Index decidieron no apresurarse con las actualizaciones de dependencias, para que los desarrolladores instalen con menos frecuencia paquetes maliciosos inmediatamente después de su publicación. Dependabot ahora por defecto espera tres días antes de actualizar, y PyPI prohibió añadir nuevos archivos a las versiones con más de dos semanas.

Las nuevas restricciones surgieron tras una serie de grandes ataques a las cadenas de suministro de software. En el último año los atacantes comprometieron los paquetes chalk y debug, llevaron a cabo la operación s1ngularity, la campaña Shai-Hulud y el ataque GhostAction. En cada caso intentaron introducir código malicioso en proyectos a través de herramientas y bibliotecas de confianza.

Dependabot supervisa las dependencias en proyectos en GitHub, detecta la aparición de nuevas versiones de paquetes y sugiere a los desarrolladores actualizar los componentes. Antes, ese mecanismo podía incorporar casi de inmediato una versión nueva, incluyendo un paquete que los atacantes habían subido apenas unos minutos antes.

Ahora Dependabot por defecto esperará 72 horas. GitHub calcula que en ese plazo las medidas de protección, los mantenedores de proyectos y los propietarios de repositorios tendrán tiempo para detectar una versión sospechosa y eliminarla antes de su difusión masiva.

Muchos paquetes maliciosos de npm se detectan en efecto pocos minutos tras la publicación. Sin embargo, la detección por sí sola no basta. Los propietarios del repositorio deben bloquear el paquete, los desarrolladores tienen que eliminar la versión infectada y los proveedores de seguridad deben actualizar las reglas de detección. Antes de completarse todas las acciones, el código malicioso puede llegar a otros proyectos.

GitHub optó por el plazo de tres días como compromiso entre seguridad y rapidez de las actualizaciones. Los mantenedores de proyectos pueden reducir o aumentar el periodo de espera en la configuración de Dependabot.

La compañía advirtió que la demora no protegerá frente a paquetes que los atacantes preparan con antelación o que infectan tiempo después. GitHub recomienda fijar versiones exactas de dependencias en los archivos de bloqueo, limitar los permisos de las claves de acceso y desactivar scripts de instalación innecesarios en los sistemas de integración continua.

PyPI introdujo otra restricción. La plataforma ya no permite añadir archivos a una versión de paquete tras 14 días de su publicación. Esta medida impide que atacantes modifiquen de forma inadvertida una versión antigua y ya confiable después de robar una clave de acceso o comprometer el proceso de publicación.

La verificación de PyPI mostró que los desarrolladores raramente añaden archivos a una versión pasadas dos semanas. Por eso la restricción casi no afectará el trabajo habitual, pero cerrará una forma potencialmente peligrosa de infectar paquetes.

Hasta ahora no se han detectado ataques confirmados en PyPI que sustituyan archivos en versiones antiguas. La plataforma introdujo la prohibición de forma preventiva, sin esperar a que los atacantes comenzaran a aplicar ese esquema en la práctica.