Análisis de la variante para Linux del backdoor SideWalk

Hemos descubierto una variante para Linux del backdoor SideWalk, uno de los múltiples implantes personalizados que utiliza el grupo de APT SparklingGoblin. Esta variante se utilizó en un ataque contra una universidad de Hong Kong en febrero de 2021, la misma universidad que ya había sido atacada por SparklingGoblin durante las protestas estudiantiles de mayo de 2020. Originalmente llamamos a este backdoor StageClient, pero ahora nos referimos a el como SideWalk Linux. También descubrimos que un backdoor para Linux previamente conocido, Spectre RAT, documentado por primera vez por 360 Netlab, también es una variante de SideWalk Linux, ya que presenta múltiples puntos en común con las muestras que identificamos.

SparklingGoblin es un grupo APT cuyas tácticas, técnicas y procedimientos (TTP, por sus siglas en inglés) se superponen parcialmente con APT41 y BARIUM. Utiliza loaders basados ​​en Motnug y ChaCha20, los backdoors CROSSWALK y SideWalk, junto con Korplug (también conocido como PlugX) y Cobalt Strike. Si bien el grupo se enfoca principalmente en el este y sudeste de Asia, también hemos visto ataques de SparklingGoblin apuntando a una amplia gama de organizaciones de distintos sectores en todo el mundo, con un enfoque particular en el sector académico. SparklingGoblin es uno de los grupos con acceso al backdoor ShadowPad.

Esta publicación documenta SideWalk Linux, su victimología y sus numerosas similitudes con el backdoor SideWalk originalmente descubierto.

Atribución

El backdoor SideWalk es exclusivo del grupo de APT SparklingGoblin. Además de las múltiples similitudes de código entre las variantes para Linux de SideWalk y varias herramientas de SparklingGoblin, una de las muestras de SideWalk Linux usa una dirección C&C (66.42.103[.]222) que el grupo utilizó anteriormente.

Teniendo en cuenta todos estos factores, atribuimos con gran confianza SideWalk Linux al grupo de APT SparklingGoblin.

Victimología

Si bien en VirusTotal hay varias muestras de SideWalk Linux, tal como las conocemos ahora, en nuestra telemetría hemos encontrado solo una víctima comprometida con esta variante de SideWalk: una universidad de Hong Kong que, en medio de protestas estudiantiles, había sido atacada previamente por SparklingGoblin (usando el loader Motnug y el backdoor CROSSWALK) y Fishmonger (usando los backdoor ShadowPad y Spyder). Tenga en cuenta que en ese momento pusimos esa actividad bajo la denominación más amplia de Winnti Group.

SparklingGoblin comprometió por primera vez a esta universidad en particular en mayo de 2020, y detectamos por primera vez la variante para Linux de SideWalk en la red de esa universidad en febrero de 2021. El grupo atacó continuamente a esta organización durante un largo período de tiempo, comprometiendo con éxito varios servidores clave, incluido un servidor de impresión, un servidor de correo electrónico y un servidor utilizado para administrar los horarios de los estudiantes y las inscripciones en los cursos.

El camino hacia Sidewalk Linux

SideWalk, un backdoor que describimos por primera en su versión para Windows en agosto de 2021, es una herramienta multipropósito que permite cargar módulos adicionales enviados desde el servidor de C&C. Hace uso de Google Docs como dead-drop resolver, y de Cloudflare como su servidor de C&C. Es capaz de manejar adecuadamente la comunicación detrás de un proxy.

Actualmente se desconoce la cadena de compromiso, pero creemos que el vector de ataque inicial podría haber sido la explotación de una vulnerabilidad. Esta hipótesis se basa en el artículo de 360 ​​Netlab que describe la botnet Spectre apuntando a cámaras IP y dispositivos NVR y DVR, y el hecho de que la víctima de Hong Kong usó un servidor de WordPress vulnerable, ya que hubo muchos intentos de instalar varios webshells.

Documentamos por primera vez la variante para Linux de SideWalk como StageClient el 2 de julio de 2021 , sin establecer la conexión en ese momento con SparklingGoblin y su backdoor personalizado SideWalk. El nombre original se utilizó debido a las repetidas apariciones de la string StageClient en el código.

Mientras investigamos más a fondo StageClient, nos encontramos con una publicación de 360 Netlab sobre la botnet Spectre. Esa publicación describe un backdoor modular para Linux con una configuración flexible que utiliza una variante del algoritmo de cifrado ChaCha20, básicamente un subconjunto de la funcionalidad de StageClient. Una inspección posterior confirmó esta hipótesis; además, encontramos una gran superposición en la funcionalidad, la infraestructura y los símbolos presentes en todos los binarios.

Similitudes con la variante de Windows

SideWalk Windows y SideWalk Linux comparten demasiadas similitudes para describirlas dentro de los límites de esta publicación de blog, por lo que aquí solo cubrimos las más llamativas.

ChaCha20

Una similitud obvia se nota en las implementaciones del cifrado ChaCha20: ambas variantes usan un contador con un valor inicial de 0x0B, el cual se mencionó en nuestra anterior publicación como una especificidad de la implementación ChaCha20 de SideWalk.

Arquitectura de software

Una particularidad de SideWalk es el uso de múltiples subprocesos para ejecutar una tarea específica. Notamos que en ambas variantes hay exactamente cinco hilos ejecutados simultáneamente, cada uno de ellos con una tarea específica. La siguiente lista describe la función de cada uno; los nombres de los hilos fueron obtenidos del código:

  • StageClient::ThreadNetworkReverse
    Si aún no se ha establecido una conexión con el servidor de C&C, este subproceso intenta recuperar periódicamente la configuración del proxy local y la ubicación del servidor de C&C del dead-drop resolver. Si el paso anterior fue exitoso, intenta iniciar una conexión con el servidor C&C.
  • StageClient::ThreadHeartDetect
    Si el backdoor no recibe un comando en la cantidad de tiempo especificada, este hilo puede terminar la conexión con el servidor C&C o cambiar a un modo de “suspensión” que introduce cambios menores en el comportamiento.
  • StageClient::ThreadPollingDriven
    Si no hay otros datos en cola para enviar, este subproceso envía periódicamente un comando de latido al servidor C&C que además puede contener la hora actual.
  • StageClient::ThreadBizMsgSend
    Este hilo comprueba periódicamente si hay datos para enviar en las cola de mensajes utilizada por todos los demás hilos y, si es así, los procesa.
  • StageClient::ThreadBizMsgHandler
    Este hilo comprueba periódicamente si hay mensajes pendientes recibidos del servidor de C&C y, en caso afirmativo, los gestiona.

Regresar a Noticias
T-Cert / Tigo Copyright©, Guatemala todos los derechos reservados.