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.
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.
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# |
|
|
#rowspan# |
|
|
#rowspan# |
|
|
#rowspan# |
|
|
#rowspan# |
|
|
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# |
|
|
#rowspan# |
|
|
#rowspan# |
|
|
#rowspan# |
|
|
#rowspan# |
|
|
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)
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. |