Im Visier der neuen Malware, die wir entdeckt und CDRThief genannt haben, ist eine sehr spezifische VoIP-Plattform, die von zwei in China hergestellten Softswitches (Software-Switches) verwendet wird: Linknat VOS2009 und VOS3000. Ein Softswitch ist ein Kernelement eines VoIP-Netzwerks, es übernimmt Anrufsteuerung, Abrechnung und Verwaltung, sie sind rein softwarebasierte Lösungen, die auf Standard-Linux-Servern ausgeführt werden.

Das Hauptziel der Malware besteht darin, verschiedene private Daten von einem kompromittierten Softswitch zu filtern, einschließlich den Verbindungsdatensätzen, den sogenannten Call Detail Records (CDR). CDRs enthalten Metadaten zu VoIP-Anrufen, wie die IP-Adressen von Anrufer- und Angerufenem, Startzeit des Anrufs, Anrufdauer, Anrufgebühr usw.

Um diese Metadaten zu stehlen, fragt die Malware interne MySQL-Datenbanken ab, die vom Softswitch verwendet werden. Die Angreifer verfügen also über ein gutes Verständnis der internen Architektur der Zielplattform.

Linux/CDRThief-Analyse

Wir haben CDRThief in einem unserer Malware-Sample-Feeds entdeckt. Da völlig neue Linux-Malware eine Seltenheit ist, hat sie unsere Aufmerksamkeit erregt. Noch interessanter wurde es, als sich herausstellte, dass diese Malware auf eine spezifische Linux-VoIP-Plattform abzielt. Ihre ELF-Binärdatei wurde mit dem Go-Compiler mit unveränderten Debug-Symbolen erstellt, was für die Analyse immer hilfreich ist.

Um böswillige Funktionen vor einer grundlegenden statischen Analyse zu verbergen, haben die Autoren alle verdächtig aussehenden Zeichenfolgen mit XXTEA und dem Schlüssel fhu84ygf8643 verschlüsselt und anschließend mit base64 encodiert. Abbildung 1 zeigt einen Teil des Codes, mit dem die Malware diese Zeichenfolgen zur Laufzeit entschlüsselt.

Abbildung 1. Die Routine zum Entschlüsseln der Binärzeichenfolgen

Um auf interne Daten zuzugreifen, die in der MySQL-Datenbank gespeichert sind, liest die Malware Anmeldeinformationen aus den Konfigurationsdateien von Linknat VOS2009 und VOS3000, die sie unter den folgenden Pfaden zu finden versucht:

  • /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

Interessanterweise wird das Passwort aus der Konfigurationsdatei verschlüsselt gespeichert. Die Linux/CDRThief-Malware kann sie jedoch weiterhin lesen und entschlüsseln. Somit verfügen die Angreifer über detailliertes Wissen zur Zielplattform, denn der verwendete Algorithmus und die verwendeten Verschlüsselungsschlüssel sind, soweit wir das beurteilen können, nicht dokumentiert. Wir schließen daraus, dass die Angreifer Plattform-Binärdateien nachkonstruiert haben oder auf andere Weise an Informationen zum AES-Verschlüsselungsalgorithmus und den im Linknat-Code verwendeten Schlüsseln erhalten haben.

Wie in Abbildung 2 dargestellt, kommuniziert CDRThief mit C&C-Servern mittels JSON über HTTP.

Abbildung 2. Erfasste Netzwerkkommunikation der Linux/CDRThief-Malware

Der Linux/CDRThief-Code enthält mehrere Funktionen für die Kommunikation mit C&C-Servern. Tabelle 1 enthält die ursprünglichen Namen dieser Funktionen, die von den Malware-Autoren verwendet werden.

Tabelle 1. Funktionen für die Kommunikation mit 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

Um Daten von der Plattform zu filtern, führt Linux/CDRThief SQL-Abfragen direkt in der MySQL-Datenbank aus. Hauptsächlich interessiert sich die Malware für drei Tabellen:

  • e_syslog – enthält ein Systemereignisseprotokoll
  • e_gatewaymapping – enthält Informationen zu VoIP-Gateways (siehe Abbildung 3).
  • e_cdr – enthält Anrufdatensätze (Metadaten von Anrufen)

Abbildung 3. Disassemblierter Code der Funktion, die eine SQL-Abfrage initialisiert

Die Daten, die aus den Tabellen e_syslog, e_gatewaymapping und e_cdr exfiltriert werden sollen, werden komprimiert und vor der Exfiltration mit einem fest codierten öffentlichen RSA-1024-Schlüssel verschlüsselt. Somit können nur die Malware-Autoren oder -Betreiber die exfiltrierten Daten entschlüsseln.

Basierend auf der beschriebenen Funktionalität liegt, für uns, der Hauptfokus der Malware auf dem Sammeln von Daten aus der Datenbank. Im Gegensatz zu anderen Backdoors unterstützt Linux/CDRThief weder die Ausführung von Shell-Befehlen noch das Exfiltrieren bestimmter Dateien von der Festplatte des gefährdeten Softswitch. Diese Funktionen könnten jedoch in einer aktualisierten Version eingeführt werden.

Die Malware kann unter einem beliebigen Dateinamen an einem beliebigen Speicherort auf der Festplatte bereitgestellt werden. Es ist nicht bekannt, welche Art von Persistenz zum Starten der schädlichen Binärdatei bei jedem Start verwendet wird. Es ist jedoch bemerkenswert, dass die Malware nach dem Start mit dem folgenden Befehl versucht, eine legitime Binärdatei auf der Linknat VOS2009/VOS3000-Plattform zu starten:

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

Dies deutet darauf hin, dass die böswillige Binärdatei möglicherweise in eine reguläre Startkette der Plattform eingefügt wird, um Persistenz zu erreichen und sich möglicherweise als Bestandteil der Linknat-Softswitch-Software zu tarnen.

Zum Zeitpunkt dieses Artikels wissen wir nicht, wie die Malware auf die gefährdeten Geräte gelangt. Wir spekulieren, dass Angreifer mithilfe eines Brute-Force-Angriffs oder durch Ausnutzung einer Sicherheitslücke Zugriff auf das Gerät erhalten könnten. Solche Schwachstellen in VOS2009 / VOS3000 wurden in der Vergangenheit öffentlich gemeldet.

Fazit

Wir haben die Linux/CDRThief-Malware analysiert, die nur auf bestimmte VoIP-Softswitches abzielt. Die Tatsache, dass wir selten Bedrohungsakteure sehen die auf VoIP-Softswitches abzielen, macht Linux/CDRThief interessant.

Es ist schwer, das tatsächliche Ziel der Angreifer zu erkennen, die diese Malware verwenden. Da diese Malware jedoch vertrauliche Informationen, einschließlich Anrufmetadaten, herausfiltert, kann davon ausgegangen werden, dass die Malware zur Cyberspionage verwendet wird. Ein weiteres mögliches Ziel für Angreifer, die diese Malware verwenden, kann VoIP-Betrug sein. Da die Angreifer Informationen über die Aktivität von VoIP-Softswitches und deren Gateways erhalten, können diese Informationen zur Durchführung von International Revenue Share Fraud (IRSF), einem Telefongebührenbetrug, verwendet werden.

Für Anfragen oder Mustereinreichungen zu diesem Thema wenden Sie sich bitte an threatintel@eset.com.

Indicators of Compromise

ESET detection name

Linux/CDRThief.A

File based mutexes

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

Files created during malware update

/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

Exfiltration encryption key (RSA)

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

MITRE ATT&CK techniques

Note: This table was built using version 7 of the MITRE ATT&CK framework.

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.