Golang abre la puerta al ransomware total
En los últimos meses han aparecido distintos códigos maliciosos desarrollados con Golang. Este lenguaje de programación «open source» permite cross-compilar para otras plataformas y sistemas operativos con enorme facilidad, lo cual permitiría atacar a múltiples plataformas con el mismo esfuerzo
No fue creado como herramienta ofensiva. Al contrario. Pero Golang, el lenguaje open source desarrollado hace algo más de una década por tres programadores de Google, podría acabar convertido en un poderoso aliado de los ciberdelincuentes. De los numerosos grupos de ransomware que habitan en las sombras de la Red.
Por ahora no son más que señales. Tímidas señales. Pero muy inquietantes.
En los últimos meses han ido apareciendo algunos ransoms desarrollados con Golang. Con todo lo que ello implica. Principalmente, su versatilidad para adaptarse a toda clase de plataformas y sistemas operativos.
Por el momento, el impacto de este malware ha sido muy limitado.
Pero la advertencia ya está ahí. Recientemente, Ekans (también conocido como Snake y desarrollado con Golang) demostraba la versatilidad de estos ransomware, en su caso, con un foco muy específico en sistemas industriales.
Y quienes trabajan en el universo de la ciberseguridad adivinan los peligros que se podrían desatar si esta primera generación evoluciona.
Para entender por qué Golang podría desencadenar una tormenta en el futuro hay que remontarse a la génesis: al nacimiento de este lenguaje de programación.
Robert Griesemer, Rob Pike y Ken Thompson presentaron a Google su proyecto en el 2007. Querían subsanar las carencias detectadas en otros lenguajes. Unos eran muy eficientes al compilar código, otros muy sencillos de programar. Algunos destacaban por la rapidez al ejecutarlos.
Ninguno, sin embargo, condensaba estas tres virtudes.
Go Programming Language, conocido popularmente como Golang, iba a resolver la ecuación. A Google le gustó lo que oía. Y puso los medios para hacer realidad el proyecto.
Desde entonces, Golang ha ido creciendo. Por la decidida apuesta de la multinacional, pero también gracias al empuje de una comunidad muy activa que participa en su desarrollo y optimización.
Y es precisamente esta mejora constante la que ha hecho saltar las alarmas del mundo de la ciberseguridad.
Potencial multiplataforma
Muy especialmente por el potencial de una de las señas de identidad de este lenguaje de programación. Su facilidad para funcionar en toda clase de plataformas y, por tanto, para adaptarse a un gran número de objetivos heterogéneos.
Y es que cuando se desarrolla un ransomware para Windows con otro lenguaje, su capacidad de ataque queda muy limitada a ese sistema operativo y plataformas subyacentes.
Si el actor hostil quiere llevar ese código malicioso a equipos con Linux y arquitectura ARM, por ejemplo, tendrá que portar un gran número de funcionalidades y reescribir muchas líneas de código.
En definitiva, volver a hacer el trabajo de nuevo.
Golang ayuda a sobrepasar esa limitación. Lo explica muy gráficamente José Lancharro, el director de BlackArrow, la división de servicios ofensivos y defensivos de Tarlogic: «Con Golang se puede crear un ransomware todoterreno. Puedes saltar a todas las plataformas casi con las mismas líneas de código».
Con una particularidad aún más turbadora. Es capaz de funcionar incluso en los móviles. Porque con Go se puede compilar el ransom para procesadores ARM, la arquitectura más habitual tanto en terminales iOS como Android.
También en sistemas embebidos como routers o incluso asistentes virtuales. Gadgets de uso cotidiano que se cuentan por millones a lo largo y ancho del planeta. Herramientas clave para la revolución del IoT.
«No tenemos evidencias de que esto se vaya a explotar –argumenta Lancharro-, pero por diseño se ha abierto una puerta muy peligrosa para dar el salto a los móviles y a los sistemas embebidos con poquísimos cambios».
Detrás de esta versatilidad para ir desplegándose en toda clase de plataformas está la propia naturaleza del lenguaje de programación. Una dinámica a la que estarían empezando a sacarle provecho los actores involucrados en el desarrollo de malware y ransomware.
Un ransom creado con Golang no necesita estar diseñado a medida del sistema que va a infectar. Algo que sí ocurre cuando el malware ha sido diseñado para Windows o Linux, sin ir más lejos.
Más pesado, más dañino
Es cierto que con Golang el bicho es más pesado porque incorpora en origen el código para ejecutar todas esas rutinas necesarias para consumar el ataque. Pero, a cambio, se adapta a un elevado número de sistemas.
O lo que es lo mismo, permite incrementar exponencialmente la superficie de ataque.
Por si fuera poco, aunque estos ransoms son más grandes, son relativamente ágiles en la fase de desarrollo. ¿Por qué? Pues porque Golang está pensado para aprovechar con relativa facilidad paquetes desarrollados por terceros.
Salvando las diferencias, se trata de una dinámica similar a la que se plantea en el desarrollo con React, Angular o Vue. Lenguajes en los que se pueden utilizar frameworks ajenos que agilizan sensiblemente los trabajos de programación.
El director de BlackArrow insiste en que, por el momento, los ransomware desarrollados con Golang aparecidos hasta la fecha han tenido un impacto muy limitado.
Pero han señalado un camino inquietante. «Se ha abierto una puerta a nuevas plataformas que no tenían malware específicos. Esto no significa que se estén explotando ya, pero sí se está creando un caldo de cultivo».
Desde el punto de vista de la ciberseguridad, Lancharro señala que equipos como los de BlackArrow o los de Tarlogic estudian ya la dimensión de un fenómeno que podría cambiar las reglas del juego.
Y adelanta que están levantando protecciones y herramientas para una eventual evolución del ransom si se generaliza su desarrollo con Golang.
La siguiente gran batalla para toda empresa de ciberseguridad podría estar a la vuelta de la esquina…
Descubre nuestro trabajo y nuestros servicios de ciberseguridad en www.tarlogic.com/es/
En TarlogicTeo y en TarlogicMadrid.