Ce nouveau logiciel malveillant que nous avons découvert et nommé CDRThief est conçu pour cibler une plateforme VoIP très spécifique, utilisée par deux softswitches (commutateurs logiciels) produits en Chine : Linknat VOS2009 et VOS3000. Un commutateur logiciel est un élément central d'un réseau VoIP qui assure le contrôle, la facturation et la gestion des appels. Ces commutateurs logiciels sont des solutions logicielles qui fonctionnent sur des serveurs Linux standard.

L'objectif principal du logiciel malveillant est d'exfiltrer diverses données privées d'un commutateur logiciel compromis, y compris les enregistrements des détails des appels (CDR). Les CDR contiennent des métadonnées sur les appels VoIP, telles que les adresses IP de l'appelant et de l'appelé, l'heure de début de l'appel, la durée de l'appel, les frais d'appel, etc.

Pour voler ces métadonnées, le logiciel malveillant interroge les bases de données MySQL internes utilisées par le commutateur logiciel. Ainsi, les attaquants démontrent une bonne compréhension de l'architecture interne de la plateforme ciblée.

Analyse de Linux/CDRThief

Nous avons remarqué ce logiciel malveillant dans un de nos flux de partage d'échantillons, et comme les logiciels malveillants sous Linux entièrement nouveaux sont rares, il a attiré notre attention. Ce qui était encore plus intéressant, c'est qu'il est rapidement devenu évident que ce logiciel malveillant visait une plateforme VoIP Linux spécifique. Son binaire ELF a été produit par le compilateur Go avec les symboles de débogage non modifiés, ce qui est toujours utile pour l'analyse.

Pour dissimuler les fonctionnalités malveillantes de l'analyse statique de base, les auteurs ont chiffré toutes les chaînes suspectes avec XXTEA et la clé fhu84ygf8643, puis les ont encodées en base64. La figure 1 montre une partie du code utilisé par le logiciel malveillant pour déchiffrer ces chaînes au moment de l'exécution.

Figure 1. La routine utilisée pour déchiffrer les chaînes de caractères du binaire

Pour accéder aux données internes stockées dans la base de données MySQL, le logiciel malveillant lit les identifiants des fichiers de configuration Linknat VOS2009 et VOS3000 qu'il tente de localiser dans les chemins suivants :

  • /usr/kunshi/vos2009/server/etc/server_db_config.xml
  • /usr/kunshi/vos3000/server/etc/server_db_config.xml
  • /home/kunshi/vos2009/server/etc/server_db_config.xml
  • /home/kunshi/vos3000/server/etc/server_db_config.xml
  • /home/kunshi/vos2009/etc/server_db_config.xml
  • /home/kunshi/vos3000/etc/server_db_config.xml
  • /usr/kunshi/vos2009/server/etc/serverdbconfig.xml
  • /usr/kunshi/vos3000/server/etc/serverdbconfig.xml

Il est intéressant de noter que le mot de passe du fichier de configuration est stocké sous forme chiffrée. Cependant, le logiciel malveillant Linux/CDRThief est toujours capable de le lire et de le déchiffrer. Ainsi, les attaquants font preuve d'une connaissance approfondie de la plate-forme ciblée, puisque l'algorithme et les clés de chiffrement utilisés ne sont pas documentés, pour autant qu'on puisse en juger. Cela signifie que les attaquants ont dû faire de l'ingénierie inverse des binaires de la plate-forme ou obtenir des informations sur l'algorithme de chiffrement AES et la clé utilisée dans le code Linknat.

Comme le montre la figure 2, CDRThief communique avec les serveurs de C&C en utilisant JSON par HTTP.

Figure 2. Capture de la communication réseau du logiciel malveillant Linux/CDRThief

Le code de Linux/CDRThief utilisé pour la communication avec les serveurs C&C comporte de multiples fonctions. Le tableau 1 contient les noms originaux de ces fonctions utilisées par les auteurs de logiciels malveillants.

Tableau 1. Fonctions utilisées pour la communication avec le C&C

Function name C&C path Purpose
main.pingNet /dataswop/a Checks if C&C is alive
main.getToken /dataswop/API/b Obtains token
main.heartbeat /dataswop/API/gojvxs Main C&C loop, called every three minutes
main.baseInfo /dataswop/API/gojvxs Exfiltrates basic information about compromised Linknat system:
#rowspan#

  •        MAC address
#rowspan#

  •        cat /proc/version
#rowspan#

  •        whoami
#rowspan#

  •        cat /etc/redhat-release
#rowspan#
  •        UUID from /bin/ibus_10.mo (or / home/kunshi/base/ibus_10.mo )
main.upVersion /dataswop/Download/updateGoGoGoGoGo Updates itself to the latest version
main.pushLog /dataswop/API/gojvxs Uploads malware error log
main.load /dataswop/API/gojvxs Exfiltrates various information about the platform:
#rowspan#

  •        SELECT SUM(TABLE_ROWS) FROM information_schema.TABLES WHERE table_name LIKE 'e_cdr_%'
#rowspan#

  •        cat /etc/motd
#rowspan#
  •        username, encrypted password, IP address of the database
#rowspan#
  •        ACCESS_UUID from server.conf
#rowspan#

  •        VOS software version
main.syslogCall /dataswop/API/gojvxs Exfiltrates data from e_syslog tables
main.gatewaymapping /dataswop/API/gojvxs Exfiltrates data from e_gatewaymapping tables
main.cdr /dataswop/API/gojvxs Exfiltrates data from e_cdr tables

Afin d'exfiltrer les données de la plateforme, Linux/CDRThief exécute des requêtes SQL directement vers la base de données MySQL. Le logiciel malveillant s'intéresse principalement à trois tables :

  • e_syslog – comprend le journal des événements du système
  • e_gatewaymapping – comprend des informations sur les passerelles VoIP (voir figure 3)
  • e_cdr – contient les enregistrements de données d'appel (métadonnées des appels)

Figure 3. Code désassemblé de la fonction qui initialise une requête SQL

Les données à exfiltrer des tables e_sysloge_gatewaymapping, et e_cdr sont compressées, puis chiffrées avec une clé publique RSA-1024 codée en dur avant l'exfiltration. Ainsi, seuls les auteurs ou les opérateurs de logiciels malveillants peuvent déchiffrer les données exfiltrées.

Sur la base des fonctionnalités décrites, on peut dire que le logiciel malveillant se concentre principalement sur la collecte de données de la base de données. Contrairement à d'autres portes dérobées, Linux/CDRThief ne prend pas en charge l'exécution de commandes shell ou l'exfiltration de fichiers spécifiques du disque du softswitch compromis. Toutefois, ces fonctions pourraient être introduites dans une version mise à jour.

Le logiciel malveillant peut être déployé à n'importe quel endroit du disque sous n'importe quel nom de fichier. On ignore quel type de persistance est utilisé pour lancer le binaire malveillant à chaque démarrage. Toutefois, il convient de noter qu'une fois que le logiciel malveillant est lancé, il tente de lancer un binaire légitime présent sur la plate-forme Linknat VOS2009/VOS3000 à l'aide de la commande suivante :

exec -a '/home/kunshi/callservice/bin/callservice -r /home/kunshi/.run/callservice.pid'

Cela suggère que le binaire malveillant pourrait d'une manière ou d'une autre être inséré dans une chaîne de démarrage normale de la plate-forme afin d'obtenir une persistance et éventuellement se faire passer pour un composant du logiciel de commutation logicielle de Linknat.

Au moment où nous écrivons ces lignes, nous ne savons pas comment le logiciel malveillant est déployé sur les appareils compromis. Nous supposons que les attaquants pourraient obtenir l'accès au dispositif en utilisant une attaque par force brute ou en exploitant une vulnérabilité. De telles vulnérabilités dans VOS2009/VOS3000 ont été signalées publiquement dans le passé.

Conclusion

Nous avons analysé le logiciel malveillant Linux/CDRThief, qui a pour unique objectif de cibler des commutateurs logiciels VoIP spécifiques. Nous voyons rarement des commutateurs logiciels de VoIP ciblés par les acteurs de la menace. C'est ce qui rend le logiciel malveillant Linux/CDRThief fascinant.

Il est difficile de connaître le but ultime des attaquants qui utilisent ce logiciel malveillant. Cependant, comme ce logiciel malveillant exfiltre des informations sensibles, y compris des métadonnées d'appel, il semble raisonnable de supposer qu'il est utilisé pour le cyberespionnage. Un autre objectif possible des attaquants qui utilisent ce logiciel malveillant est la fraude à la voix sur IP. Comme les attaquants obtiennent des informations sur l'activité des commutateurs logiciels VoIP et de leurs passerelles, ces informations pourraient être utilisées pour commettre une fraude au partage des recettes internationales (IRSF).

Pour toute demande de renseignements, ou pour nous soumettre des échantillons sur le sujet, contactez-nous à l'adresse suivante : threatintel@eset.com.

Indicateurs de compromission

Nom de détection par ESET

Linux/CDRThief.A

Mutex à base de fichiers

/dev/shm/.bin
/dev/shm/.linux

Fichiers créés lors de la mise à jour d'un logiciel malveillant

/dev/shm/callservice
/dev/shm/sys.png

Hashes

CC373D633A16817F7D21372C56955923C9DDA825
8E2624DA4D209ABD3364D90F7BC08230F84510DB (UPX packed)
FC7CCABB239AD6FD22472E5B7BB6A5773B7A3DAC
8532E858EB24AE38632091D2D790A1299B7BBC87 (Corrupted)

C&C

http://119.29.173[.]65
http://129.211.157[.]244
http://129.226.134[.]180
http://150.109.79[.]136
http://34.94.199[.]142
http://35.236.173[.]187

Clé de chiffrement d'exfiltration (RSA)

-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCQ3k3GgS3FX4pI7s9x0krBYqbMcSaw4BPY91Ln
tt5/X8s9l0BC6PUTbQcUzs6PPXhKKTx8ph5CYQqdWynxOLJah0FMMRYxS8d0HX+Qx9eWUeKRHm2E
AtZQjdHxqTJ9EBpHYWV4RrWmeoOsWAOisvedlb23O0E55e8rrGGrZLhPbwIDAQAB
-----END PUBLIC KEY-----

Techniques MITRE ATT&CK

Note : Ce tableau a été construit en utilisant la version 7 du cadre MITRE ATT&CK.

Tactic ID Name Description
Defense Evasion T1027 Obfuscated Files or Information Linux/CDRThief contains obfuscates strings in the payload.
T1027.002 Obfuscated Files or Information: Software Packing Some Linux/CDRThief samples are packed with UPX.
Credential Access T1552.001 Unsecured Credentials: Credentials In Files Linux/CDRThief reads credentials for MySQL database from a configuration file.
Discovery T1082 System Information Discovery Linux/CDRThief obtains detailed information about the compromised computer.
Collection T1560.003 Archive Collected Data: Archive via Custom Method Linux/CDRThief compresses stolen data with gzip before exfiltration.
Command and Control T1071.001 Application Layer Protocol: Web Protocols Linux/CDRThief uses HTTP for communication with C&C server.
Exfiltration T1041 Exfiltration Over C2 Channel Linux/CDRThief exfiltrates data to the C&C server.