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 los ataques a la cadena de suministro y limitar su impacto.
En concreto, Dependabot incluye un periodo de espera predeterminado de tres
días, mientras que PyPI rechazará los archivos nuevos subidos a versiones con
más de 14 días de antigüedad.
Esta medida se implementa tras los múltiples ataques de gran repercusión que
sufrieron ambos ecosistemas de desarrollo durante el último año. Algunos
ejemplos notables incluyen los ataques «chalk and debug», la operación «s1ngularity«, la campaña «Shai-Hulud» y el ataque a la cadena de suministro de «GhostAction«.
El mes pasado,
GitHub anunció cambios
para abordar las amenazas a la cadena de suministro, y el proceso de
fortalecimiento continúa con estas nuevas medidas.
GitHub añade un periodo de espera para 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 extracción para notificar a los responsables del mantenimiento del
software. La herramienta ahora
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, las herramientas de seguridad detectaron y marcaron
paquetes npm maliciosos a los pocos minutos de su publicación.
Sin embargo, la detección rápida por sí sola no elimina la amenaza, ya que los
responsables del repositorio y los proveedores aún deben tomar medidas para
eliminar los paquetes, lo que deja un margen de tiempo durante el cual los
desarrolladores y proyectos pueden descargar e incorporar el código malicioso.
Si bien GitHub explicó que el período de tres días se eligió como un punto de
equilibrio entre evitar lanzamientos riesgosos y mantener las últimas
actualizaciones, señaló que los usuarios aún tienen la opción de configurar un
retraso más corto o más largo mediante la opción de configuración
«cooldown» de Dependabot.
GitHub destacó las limitaciones del «cooldown» de Dependabot frente a
compromisos a largo plazo, recomendando el uso de archivos de bloqueo para la
fijación de dependencias, tokens de alcance restringido y la
desactivación de scripts de instalación innecesarios en la integración
continua (CI).
PyPI bloquea el envenenamiento de versiones con un límite de 14 días
Por su parte, PyPI anunció que ahora
impide a los mantenedores
agregar nuevos archivos a una versión de paquete después de que hayan
transcurrido 14 días desde su publicación.
Esta medida busca evitar que atacantes que comprometen tokens o flujos
de trabajo de publicación envenenen versiones antiguas y confiables. La
plataforma descubrió que solo un porcentaje muy pequeño de proyectos subía
archivos legítimamente más de dos semanas después de publicar una versión.
Cabe destacar que no se ha confirmado ningún ataque previo a PyPI que haya
utilizado la técnica de envenenamiento de versiones que esta nueva medida
bloquea, pero la plataforma está actuando de forma preventiva para evitar una
posibilidad peligrosa.
Fuente:
BC
