La semana pasada, GitHub lanzó la función de revocación de credenciales de autoservicio para Enterprise. Esta función permite a los propietarios de las organizaciones bloquear las credenciales comprometidas en toda la organización de una sola vez, en lugar de tener que localizar tokens individuales durante un incidente en curso.
Esta solución se ha hecho esperar mucho tiempo, ya que los últimos meses han puesto de manifiesto lo que ocurre cuando la revocación es lenta o incompleta. Trivy en marzo volvió a producirse por segunda vez porque la primera limpieza dejó al menos una credencial activa, y esa reacción en cadena llegó a Checkmarx después. En junio, los propios repositorios «durabletask» de Microsoft se vieron afectados a través de una cuenta que nunca se limpió por completo tras un ataque anterior.
Últimamente, Microsoft se ha volcado en las correcciones de seguridad. Hace solo unos días nos introdujeron un periodo de espera para publicar cambios tras modificar una cuenta, y a principios de junio también actualizaron npm para impedir la ejecución automática de scripts tras la instalación. Estaremos atentos a qué más lanzan y cómo afecta esto a los ataques contra el software de código abierto.
Lo que ha lanzado GitHub
Los propietarios de empresas que cuenten con el permiso «Gestionar credenciales de la empresa» ahora pueden revocar o eliminar de forma masiva las credenciales de todos los usuarios de la organización, o bien actuar sobre una cuenta concreta. Esto abarca las autorizaciones de inicio de sesión único (SSO) para los tokens de acceso personal (PAT), las claves SSH y los tokens OAuth. Las organizaciones con usuarios gestionados por la empresa (EMU) disponen de una opción para eliminarlo todo, mientras que las API REST a nivel de organización permiten una revocación más detallada por organización. Cada acción genera una entrada en el registro de auditoría y envía notificaciones por correo electrónico a los usuarios afectados.
Los usuarios individuales disponen de una nueva vista en «Configuración > Credenciales» que muestra todas las credenciales vinculadas a su cuenta, tanto las autorizadas mediante SSO como las personales. Desde allí, con una sola acción se puede eliminar el acceso de todas esas credenciales a los recursos empresariales protegidos por SSO en un único paso, lo que elimina el laborioso proceso de revisar una lista de tokens entrada por entrada. Los miembros de las organizaciones de EMU también disponen de una opción independiente para eliminar de forma permanente todos sus tokens y claves SSH.
Antes de que existiera esta función de emergencia, había que utilizar varias herramientas diferentes para revocar las credenciales de una cuenta. Los PAT de nivel detallado se podían revocar desde la pantalla de tokens de la organización. Los tokens clásicos solo se podían revocar mediante la revocación de la autorización de SSO por token, y únicamente si se tenía activado el SSO SAML. La API de revocación de credenciales podía anular un token, pero solo si ya se disponía de la cadena del token, lo que funciona en el caso de una filtración de secretos, pero no en el de una cuenta comprometida (esto solo es una pequeña muestra de las complejidades, pero lo dejaremos aquí). La cuestión es que esto hacía que coordinar los cambios de credenciales resultara una tarea bastante complicada.
Nota: Los tokens de GitHub Actions quedan fuera del ámbito de este artículo, ya que se generan por cada tarea y caducan cuando esta finaliza, por lo que no hay nada que revocar. La forma de limitar los daños durante un incidente es desactivar Actions en el repositorio.
¿Por qué ahora?
Los recientes ataques de malware han afectado de lleno a Microsoft.
El 19 de mayo, unos atacantes utilizaron credenciales robadas anteriormente para enviar tres versiones maliciosas de Microsoft tarea duradera paquete a PyPI, como parte de la campaña del gusano Miasma. Microsoft retiró los paquetes en cuestión de horas. Sin embargo, el 5 de junio, la misma cuenta publicó una actualización maliciosa en el repositorio de GitHub `Azure/durabletask`, introduciendo de nuevo el gusano. GitHub respondió desactivando 73 repositorios en cuatro de las organizaciones de Microsoft en GitHub. Entre ellos se incluían las herramientas de Azure Functions que utilizan muchos equipos para sus implementaciones, lo que interrumpió los flujos de trabajo de CI/CD más allá de Microsoft. Los investigadores enumeran varias explicaciones posibles para esta repetición, pero la más probable es que las credenciales de mayo nunca se rotaran por completo. Una empresa de monitorización descubrió posteriormente que las credenciales de GitHub de la cuenta aparecían en los registros de un programa de robo de información que se remontaban incluso a abril. Sea cual sea el mecanismo exacto, se utilizó la misma cuenta en ambos ataques.
Pero esto no es nada nuevo, y el problema ya se ha presentado en varias ocasiones este año. A finales de febrero de 2026, un programa malicioso Un bot de IA se aprovechó de una configuración errónea pull_request_target Flujo de trabajo de GitHub Actions en el repositorio Trivy, lo que permitió al atacante hacerse con una credencial PAT con acceso de escritura a más de 33 flujos de trabajo de la organización Aqua Security . Aqua Security la brecha de seguridad y procedió a la rotación de las credenciales. Pero, por desgracia, la rotación no se completó y no se revocaron todas las credenciales al mismo tiempo.
El 19 de marzo, los atacantes utilizaron credenciales que habían sobrevivido a la rotación incompleta para forzar el envío de 75 de las 76 etiquetas de versión del repositoriotrivy a commits maliciosos. La carga útil se ejecutaba antes del Trivy real Trivy en cada pipeline, por lo que todos los flujos de trabajo parecían completarse con normalidad. Los pipelines de CI/CD que ejecutaban Trivy recopilando credenciales de sus propios ejecutores, como claves SSH, credenciales de la nube, tokens de Kubernetes y PAT de GitHub.
Cuatro días después, las credenciales sustraídas de esos canales se utilizaron para contaminar las GitHub Actions Checkmarx con una carga útil de robo idéntica. Checkmarx que la actividad de los autores de la amenaza persistió en su entorno hasta el 22 de abril, y que los datos sustraídos se publicaron en la dark web el 25 de abril.
Toda esta Checkmarx , Trivy Checkmarx , se remonta a una rotación incompleta. Si Aqua Security podido bloquear al instante todas las credenciales de la cuenta de servicio comprometida tras la filtración de febrero, el ataque se habría detenido ahí.
¿Rotación atómica qué?
La rotación atómica consiste en sustituir una credencial mediante una única operación de «todo o nada», de modo que no hay ningún momento en el que funcionen tanto la credencial nueva como la antigua. El objetivo es evitar cualquier tiempo de inactividad en el sistema. En teoría, esto suena muy bien. Sin embargo, en un sistema distribuido, simplemente no funciona así. La coordinación necesaria es demasiado compleja. A la escala de una organización como GitHub, la rotación atómica no tiene sentido.
Así pues, la rotación real opta por una de dos vías, ambas imperfectas. La rotación rutinaria mantiene válidas ambas credenciales durante un periodo determinado para que nada falle, lo cual está bien cuando no hay ningún problema, pero deja activa la credencial antigua. La respuesta ante incidentes hace lo contrario: bloquea la credencial antigua al instante y acepta que se produzcan fallos hasta que se vuelva a emitir.
Un botón de emergencia te permite hacer lo único que realmente es «atómico»: eliminar de una sola vez todas las credenciales del ámbito. Claro, eso interrumpe el proceso de CI/CD. Pero expulsar a un atacante de tu infraestructura es mucho más importante, y merece la pena pasar unas horas o unos días con las compilaciones interrumpidas.
Hasta ahora, cancelar todas las credenciales de una sola vez resultaba difícil de llevar a cabo. Esta nueva cancelación en un solo paso es lo que permite ejecutarla bajo presión y, aunque la rotación atómica completa sigue siendo bastante difícil de conseguir, esto nos acerca al mundo ideal.
Qué hacer
En tu organización de GitHub, comprueba que el permiso «Gestionar credenciales de empresa» esté asignado a alguien que pueda actuar de inmediato, y hazlo antes de que se produzca un incidente. Revisa ahora «Configuración > Credenciales» para que sepas qué es lo que abarca.
Además, mientras actualizas tu configuración de seguridad, fija tus GitHub Actions a los SHA de los commits completos en lugar de a las etiquetas de versión. Las etiquetas pueden modificarse mediante un «force push» para que apunten a un código totalmente diferente, lo cual es la técnica principal detrás del Trivy . Un SHA de commit fijado no se puede modificar.
Aikido Security supervisa tus aplicaciones en tiempo real para detectar paquetes comprometidos. Si algo en tu proceso de desarrollo se ve afectado, recibirás una alerta antes de que se ejecute el programa de robo de credenciales. Esto es posible gracias a Aikido Intel, que analiza las nuevas versiones de los paquetes tan pronto como se publican.
Gracias por todas las novedades, Microsoft. Seguid así, por favor. 🙏

