Los perpetradores de amenazas están intensificando su uso de GitHub con tácticas innovadoras, como la explotación de Gists secretos y la emisión de comandos maliciosos a través de mensajes de confirmación de git. Karlo Zanki, un investigador de ReversingLabs, reveló en un informe compartido con The Hacker News que los actores de malware están optando cada vez más por GitHub como plataforma para alojar su código malicioso.
Aunque los autores de malware han utilizado tradicionalmente servicios como Dropbox, Google Drive, OneDrive y Discord para albergar malware de segunda etapa y eludir las herramientas de detección, se observa un aumento significativo en el uso de GitHub con fines maliciosos.
Este cambio hacia el uso de la plataforma de desarrollo de código abierto se debe a su aparente legitimidad, ya que servicios públicos legítimos son frecuentemente utilizados por actores de amenazas para alojar malware y actuar como resolutores de entrega muerta. Estos servicios sirven para recuperar la dirección real de comando y control (C2), proporcionando una capa adicional de ocultamiento para las operaciones maliciosas.
Aunque el uso de fuentes públicas para Comando y Control (C2) no garantiza inmunidad contra eliminaciones, proporciona a los actores de amenazas la ventaja de crear de manera fácil y económica una infraestructura de ataque confiable. Esta táctica, aunque no exenta de eliminaciones, permite a los malhechores fusionar su tráfico de red malicioso con comunicaciones legítimas en una red comprometida, complicando la detección y respuesta efectiva a las amenazas. En consecuencia, la probabilidad de que un punto final infectado que se comunica con un repositorio de GitHub sea identificado como sospechoso es considerablemente menor.
El abuso de GitHub representa una evolución de esta tendencia. Los Gists, que son esencialmente repositorios, brindan una forma sencilla para que los desarrolladores compartan fragmentos de código. Es importante destacar que los Gists públicos aparecen en el feed “Discover” de GitHub, mientras que los Gists secretos, aunque no son accesibles a través de “Discover”, pueden compartirse con otras personas mediante su URL.
“Sin embargo, si alguien que no conoce descubre la URL, también podrá ver su esencia”, señala GitHub en su documentación. “Si necesita mantener su código alejado de miradas indiscretas, es posible que desee crear un repositorio privado”.
Un aspecto intrigante de los Gists secretos es que no se muestran en la página de perfil de GitHub del autor, permitiendo que los actores de amenazas los utilicen como una suerte de servicio de Pastebin.
ReversingLabs identificó varios paquetes en el Python Package Index (PyPI), como httprequesthub, pyhttpproxifier, libsock, libproxy y libsocks5, que se disfrazaban como bibliotecas para gestionar el proxy de red. Estos paquetes contenían una URL codificada en Base64 que apuntaba a un Gist secreto alojado en una cuenta de GitHub desechable sin proyectos visibles al público.
En cuanto a los Gists, presentan comandos codificados en Base64 que se analizan y ejecutan en un nuevo proceso mediante código malicioso presente en el archivo setup.py de los paquetes falsificados. Este enfoque astuto permite a los actores de amenazas operar de manera sigilosa y evadir las medidas de seguridad convencionales.
Trend Micro resaltó previamente el empleo de Gists secretos para enviar comandos maliciosos a sistemas comprometidos en 2019, como parte de una campaña que propagaba una puerta trasera llamada SLUB (una combinación de SLack y githUB).
Otra técnica detectada por la empresa de seguridad en la cadena de suministro de software implica la manipulación de las funciones del sistema de control de versiones, aprovechando mensajes de confirmación de git para extraer comandos destinados a la ejecución en el sistema.
Un paquete en el Python Package Index (PyPI), denominado easyhttprequest, incorpora código malicioso que “clona un repositorio git específico de GitHub y verifica si la ‘head’ (cabecera) de confirmación de este repositorio contiene un mensaje que comienza con una cadena específica”, según explicó Zanki.
“En caso afirmativo, elimina esa cadena específica y descodifica el resto del mensaje de confirmación 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 contiene ningún mensaje de confirmación de git malicioso.
Todos los paquetes fraudulentos han sido eliminados del índice de paquetes de Python (PyPI).
“Si bien el uso de GitHub como infraestructura de Comando y Control (C2) no es novedoso en sí mismo, el abuso de características como Git Gists y mensajes de confirmación para la entrega de comandos representa un enfoque innovador empleado por actores maliciosos”, afirmó Zanki.