Hackers están abusando de GitHub para evadir la detección y controlar hosts comprometidos

Cada vez más los actores de amenazas están utilizando GitHub con fines maliciosos a través de métodos novedosos, incluyendo el abuso de Gists secretos y el envío de comandos maliciosos mediante mensajes de compromiso de git, según un informe del investigador de ReversingLabs Karlo Zanki compartido con este medio.

«Los autores de malware ocasionalmente colocan sus muestras en servicios como Dropbox, Google Drive, OneDrive y Discord para alojar malware de segunda etapa y evitar herramientas de detección», dijo Zanki.

«Pero últimamente, hemos observado el aumento del uso de la plataforma de desarrollo de código abierto de GitHub para alojar malware».

Los actores de amenazas se sabe que utilizan servicios públicos legítimos para alojar malware y actuar como resolutores de dead drop para obtener la dirección real de comando y control (C2).

Aunque el uso de fuentes públicas para C2 no los hace inmunes a los retiros, ofrecen la ventaja de permitir a los actores de amenazas crear fácilmente una infraestructura de ataque que es económica y confiable.

Esta técnica es astuta, ya que permite a los actores de amenazas mezclar su tráfico de red malicioso con comunicaciones genuinas dentro de una red comprometida, lo que hace que sea difícil detectar y responder de manera efectiva a las amenazas. Como resultado, es menos probable que se detecte un endpoint infectado que se comunique con un repositorio de GitHub como sospechoso.

El abuso de los gists de GitHub apunta a una evolución de esta tendencia. Los gists, que no son más que repositorios, ofrecen una forma fácil para que los desarrolladores compartan fragmentos de código con otros.

Vale la pena señalar en este punto que los gists públicos aparecen en el feed de descubrimiento de GitHub, mientras que los gists secretos, aunque no son accesibles a través del feed, se pueden compartir con otros compartiendo su URL.

«Sin embargo, si alguien que no conoces descubre la URL, también podrá ver tu gist», señala GitHub en su documentación. «Si necesitas mantener tu código alejado de miradas indiscretas, es posible que desees crear un repositorio privado en su lugar».

Otro aspecto interesante de los gists secretos es que no se muestran en la página de perfil de GitHub del autor, permitiendo a los actores de amenazas aprovecharlos como un servicio de pastebin.

ReversingLabs dijo que identificó varios paquetes PyPI, a saber, httprequesthub, pyhttpproxifier, libsock, libproxy y libsocks5, que se disfrazaban de bibliotecas para manejar la intermediación de red, pero contenían una URL codificada en Base64 que apuntaba a un gist secreto alojado en una cuenta de GitHub desechable sin proyectos públicos.

Por su parte, el gist presenta comandos codificados en Base64 que son analizados y ejecutados en un nuevo proceso a través de código malicioso presente en el archivo setup.py de los paquetes falsificados.

El uso de los gists secretos para entregar comandos maliciosos a hosts comprometidos fue destacado previamente por Trend Micro en 2019 como parte de una campaña que distribuía una puerta trasera llamada SLUB (acrónimo de Slack y GitHub).

Una segunda técnica observada por la firma de seguridad de la cadena de suministro de software implica la explotación de características del sistema de control de versiones, confiando en los mensajes de compromiso de git para extraer comandos para su ejecución en el sistema.

El paquete PyPI, llamado easyhttprequest, incorpora código malicioso que «clona un repositorio de git específico de GitHub y comprueba si el commit ‘head’ de este repositorio contiene un mensaje de commit que comienza con una cadena específica», dijo Zanki.

«Si es así, elimina esa cadena mágica y decodifica el resto del mensaje de commit codificado en Base64, ejecutándolo como un comando de Python en un nuevo proceso». El repositorio de GitHub que se clona es una bifurcación de un proyecto PySocks aparentemente legítimo, y no tiene ningún mensaje de commit malicioso.

Todos los paquetes fraudulentos han sido eliminados del repositorio de Python Package Index (PyPI).

«El uso de GitHub como infraestructura de C2 no es nuevo por sí solo, pero el abuso de características como los Gists de Git y los mensajes de commit para la entrega de comandos son enfoques novedosos utilizados por los actores maliciosos», dijo Zanki.