Descubren miles de repositorios de GitHub con falsos exploits PoC con malware
GitHub es conocido por todos al ser considerada una de las grandes plataformas de alojamiento de código. Esta es usada por programadores y también por investigadores de seguridad para subir sus proyectos.
Pero aunque se le da mucha confianza a todo lo que se almacena en GitHub, una investigación reciente nos recuerda que hay que tener cuidado a la hora de descargar diferentes archivos.
Investigadores del Leiden Institute of Advanced Computer Science encontraron miles de repositorios en GitHub que ofrecen exploits de prueba de concepto (PoC) falsos para varias vulnerabilidades, algunos de los cuales incluyen malware.
GitHub es una de las plataformas de alojamiento de código más grandes, y los investigadores la usan para publicar vulnerabilidades de PoC. Los PoCs ayudan a la comunidad de seguridad a verificar soluciones para vulnerabilidades o determinar el impacto y el alcance de una falla.
Según el documento técnico de los investigadores del Leiden Institute of Advanced Computer Science, la posibilidad de infectarse con malware en lugar de obtener un PoC podría llegar al 10.3%, excluyendo las falsificaciones comprobadas y el software de broma.
Recogida y análisis de datos
Los investigadores analizaron un poco más de 47,300 repositorios que anuncian un exploit para una vulnerabilidad revelada entre 2017 y 2021 utilizando los siguientes tres mecanismos:
- Análisis de direcciones IP: comparación de la IP del editor de PoC con listas de bloqueo públicas y VT y AbuseIPDB.
- Análisis binario: ejecutar comprobaciones de VirusTotal en los ejecutables proporcionados y sus hashes.
- Análisis hexadecimal y Base64: decodificar archivos ofuscados antes de realizar comprobaciones binarias y de IP.
De las 150,734 direcciones IP únicas extraídas, 2864 entradas de la lista de bloqueo coincidieron, 1522 se detectaron como maliciosas en los análisis antivirus en VirusTotal y 1069 de ellas estaban presentes en la base de datos AbuseIPDB.
El análisis binario examinó un conjunto de 6160 ejecutables y reveló un total de 2164 muestras maliciosas alojadas en 1398 repositorios.
En total, 4,893 repositorios de los 47,313 probados se consideraron maliciosos, y la mayoría de ellos se referían a vulnerabilidades de 2020.
El informe contiene un pequeño conjunto de repositorios con PoC falsos que contienen malware. Sin embargo, los investigadores compartieron con algunos medios al menos otros 60 ejemplos que aún están activos y en proceso de ser eliminados por GitHub.
“Descubrimos que no todos los PoC son confiables. Algunas pruebas de concepto son falsas (es decir, en realidad no ofrecen la funcionalidad PoC) o incluso maliciosas. Por ejemplo, intentan filtrar datos del sistema en el que se ejecutan o intentan instalar malware en este sistema”
Malware en PoC
Al observar más de cerca algunos de esos casos, los investigadores encontraron una gran cantidad de diferentes malware y scripts dañinos, que van desde troyanos de acceso remoto hasta Cobalt Strike.
Un caso interesante es el de un PoC para CVE-2019-0708, comúnmente conocido como “BlueKeep”. Este contiene un script de Python ofuscado en base64 que obtiene un VBScript de Pastebin.
El script es Houdini RAT, un antiguo troyano basado en JavaScript que admite la ejecución remota de comandos a través de Windows CMD.
En otro caso, los investigadores detectaron un PoC falso que era un ladrón de información que recopila información del sistema, dirección IP y agente de usuario.
Esto fue creado anteriormente como un experimento de seguridad por otro investigador, por lo que encontrarlo con la herramienta automatizada fue una confirmación para los investigadores de que su enfoque funcionó.
Uno de los investigadores, El Yadmani Soufian, que también es investigador de seguridad en Darktrace, tuvo la amabilidad de proporcionar ejemplos adicionales no incluidos en el informe técnico, que se detallan a continuación:
El PoC de PowerShell que contiene un binario codificado en base64 marcado como malicioso en Virus Total.
El PoC de Python que contiene una sola línea que decodifica un payload codificado en base64 marcado como malicioso en Virus Total.
Asimismo, el falso exploit de BlueKeep que contiene un ejecutable que la mayoría de los motores antivirus marcan como malicioso e identifican como Cobalt Strike.
Un script que se esconde dentro de un PoC falso con componentes maliciosos inactivos que podrían causar daños si su autor así lo desea.
Cómo mantenerte a salvo
Confiar ciegamente en un repositorio en GitHub de una fuente no verificada sería una mala idea ya que el contenido no está moderado, por lo que corresponde a los usuarios revisarlo antes de usarlo.
Recomendamos a los probadores de software que analicen cuidadosamente los PoC que descargan y ejecuten tantas verificaciones como sea posible antes de ejecutarlos.
Soufian cree que todos los evaluadores deben seguir estos tres pasos:
- Leer atentamente el código que estás a punto de ejecutar en tu red o la de tu cliente.
- Si el código está demasiado ofuscado y necesitas demasiado tiempo para analizarlo manualmente, guárdalo en un entorno (por ejemplo, una máquina virtual aislada) y verifica tu red en busca de tráfico sospechoso.
- Utilizar herramientas de inteligencia de código abierto como VirusTotal para analizar archivos binarios.
Los investigadores informaron todos los repositorios maliciosos que descubrieron a GitHub. Sin embargo, pasará algún tiempo hasta que todos sean revisados y eliminados, por lo que muchos aún permanecen disponibles para el público.
Como explicó Soufian, su estudio tiene como objetivo no solo servir como una acción de limpieza única en GitHub, sino actuar como un activador para desarrollar una solución automatizada que podría usarse para marcar instrucciones maliciosas en el código cargado.
Esta es la primera versión de la investigación del equipo y están trabajando para mejorar su detector. Actualmente, la herramienta de detección oculta el código con una ofuscación más fuerte.