El pasado 3 de abril de 2021, varios portales de tecnología anunciaban que GitHub Actions, la tecnología de integración y despliegue continuos en GitHub, estaba siendo usada de forma maliciosa para el minado de criptomonedas.
¿Qué es GitHub Actions?
GitHub Actions es la solución que permite establecer tareas periódicas (o activadas bajo determinadas circunstancias) para que ejecuten automatismos para nuestro flujo de software.
De forma simplificada, se utilizan máquinas virtuales para ejecutar estas tareas. Estas tareas pueden comprobar que el código en cuestión compila de forma correcta, ejecutan todos los tests unitarios definidos en un proyecto… o, como ha estado ocurriendo, minar criptomonedas.
¿Cuál es el problema?
Cualquier persona puede tener un repositorio con proyectos personales o profesionales. Y también, cualquier persona puede colaborar con esos repositios aportando su propio código. Generalmente, esas colaboraciones suponen la corrección de algún bug en el código, sumar a la documentación, aportar nuevas ideas de funcionalidades… a través de un PR o pull request.
Si haces uso de GitHub Actions o las tienes habilitadas en tu repositorio, lo más natural es que, cuando se abre un pull request (o una colaboración de una persona ajena al repositorio en cuestión), esta Action se active y ejecute ciertas tareas en la infraestructura de GitHub… y es ahí donde ocurre el minado.
En el mejor de los casos, esta persona no tiene malas intenciones y puede que ni siquiera tenga conocimientos de lo que está pasando. El motivo es que para que este ataque se ejecute con éxito, no se necesita ninguna acción por parte de la persona responsable del repositorio.
One of my repo's just got hit with a similar attack. Account in question has a bunch of other open PR's that currently have miners running. https://t.co/PZxApykuO9 pic.twitter.com/zugl7mFK0K
— Justin Perdok (@JustinPerdok) April 2, 2021
Según la captura aportada en el tweet anterior, al menos 95 repositorios habían sido afectados hasta ese momento.
Este uso malitencionado de los pull requests en GitHub acaba penalizando a la persona que posee o gestiona ese repositorio. La razón es que como resultado de esas acciones, las cuentas asociadas a la persona propietaria pueden llegar a ser bloqueadas.
¿Qué va a ocurrir?
El equipo de GitHub es consciente de la problemática y ya ha empezado a tomar decisiones, entre las cuales:
- Cuando una ejecución de una Action sea sospechosa o confirmada como maliciosa, las consecuencias serán dirigidas hacia la persona atacante y el repositorio desde donde se almacena el código malicioso.
- Cuando se produzcan el primer pull request de una persona en un repositorio concreto, se necesitará una aprobación manual para que se ejecuten las Actions que lo harían normalmente con una persona que ha demostrado ser confiable y colabora de forma positiva en el repositorio.
Con estas acciones, el flujo automatizado de CI y CD puede ralentizarse un poco, pero permite evitar tales abusos de forma sencilla y efectiva.
¿Serán suficientes estas acciones? ¿Cómo nos sorprenderán en el futuro sobre el minado de criptomonedas?
¡Hasta el próximo artículo, Microsofters!
Fuentes:
- GitHub Actions update: Helping maintainers combat bad actors
- GitHub Actions being actively abused to mine cryptocurrency on GitHub servers