GitHub y PyPI añaden defensas de retardo temporal contra ataques a la cadena de suministro

GitHub y el Python Package Index (PyPI) han introducido esta semana defensas basadas en el tiempo, orientadas a frenar los ataques a la cadena de suministro que explotan la velocidad de las actualizaciones automatizadas de dependencias. El Dependabot de GitHub ahora retrasa la adopción de nuevas versiones de paquetes en 72 horas de forma predeterminada, mientras que PyPI ha comenzado a rechazar nuevas subidas de archivos a versiones de paquetes con más de 14 días.
Ambos cambios apuntan a la misma debilidad subyacente: las herramientas de seguridad pueden marcar un paquete malicioso en cuestión de minutos tras su publicación, pero la detección por sí sola no elimina la amenaza. Los mantenedores aún deben actuar sobre la alerta, y mientras tanto, las herramientas automatizadas como Dependabot pueden incorporar el paquete comprometido a producción antes de que alguien se dé cuenta.
Por qué ahora
Estas medidas siguen a una serie de incidentes de alto perfil en ambos ecosistemas durante el último año, incluyendo las usurpaciones de paquetes npm 'chalk' y 'debug' — que juntos afectaron paquetes con una descarga semanal combinada de 2 mil millones — la campaña de malware impulsada por IA s1ngularity que golpeó 2,180 cuentas de GitHub, el ataque Shai-Hulud que distribuyó paquetes maliciosos firmados disfrazados de librerías TanStack y Mistral, y la campaña GhostAction que obligó a PyPI a invalidar tokens de publicación robados. GitHub ya había anunciado un conjunto más amplio de cambios de seguridad en npm el mes pasado; el retardo de Dependabot esta semana extiende ese esfuerzo de endurecimiento.
Cómo funcionan las defensas
El nuevo período de retardo de 72 horas de Dependabot demora los Pull Requests que abre para nuevas versiones de dependencias, dando tiempo a la comunidad de seguridad para detectar y marcar versiones maliciosas antes de que las herramientas automatizadas las adopten. GitHub dijo que se eligieron tres días como equilibrio entre seguridad y mantenerse al día con actualizaciones legítimas, y el retardo es configurable — los mantenedores pueden acortarlo o alargarlo. GitHub también recomendó combinar el retardo con lockfiles para fijar dependencias, tokens de publicación de alcance restringido, y deshabilitar scripts de instalación innecesarios en pipelines de CI, ya que el retardo por sí solo no defiende contra compromisos de cuentas a largo plazo.
El cambio de PyPI apunta a un patrón de ataque diferente: un atacante que compromete el token de publicación o el flujo de trabajo de CI de un mantenedor mucho después de que una versión de paquete se haya lanzado y haya ganado la confianza de los desarrolladores. Al bloquear nuevas subidas de archivos a cualquier versión con más de 14 días, PyPI cierra la ventana para este tipo de "envenenamiento de versiones", donde una versión confiable ya adoptada se modifica silenciosamente después. PyPI señaló que ningún ataque confirmado en el pasado ha usado esta técnica específica — la plataforma actúa de forma preventiva, habiendo encontrado que solo una pequeña fracción de los proyectos suben archivos legítimamente más de dos semanas después del lanzamiento.
Qué significa esto para los desarrolladores
Para la mayoría de los proyectos, el efecto práctico es un breve retardo antes de que aparezcan PRs automatizados de dependencias, y la imposibilidad de parchear versiones antiguas de paquetes in situ después de dos semanas. Ninguno de los cambios requiere acción del desarrollador para beneficiarse — ambos están habilitados por defecto a nivel de plataforma — aunque los mantenedores con flujos de trabajo de lanzamiento inusuales pueden necesitar ajustar la configuración de retardo de Dependabot si el valor predeterminado de 72 horas entra en conflicto con su cadencia de actualizaciones, según informó BleepingComputer.
Originally reported by BleepingComputer. Read the original article for additional details.
View original source