O novo malware que descobrimos e batizamos de CDRThief foi projetado para atingir uma plataforma VoIP muito específica, usada por dois softswitches (centrais de redes de voz) produzidos na China: Linknat VOS2009 e VOS3000. Softswitch é um elemento central de uma rede VoIP que proporciona controle, cobrança e gerenciamento de chamadas. Esses softswitches são soluções baseadas em software que funcionam em servidores Linux padrão.
O principal objetivo do CDRThief é exfiltrar vários dados privados de um softswitch comprometido, incluindo registros de detalhes de chamadas (CDRs). Os CDRs contêm metadados sobre chamadas VoIP, como endereços IP de quem realiza e recebe a chamada, hora de início da chamada, duração da chamada, tarifa da chamada, etc.
Para roubar esses metadados, o CDRThief verifica os bancos de dados MySQL internos usados pelo softswitch. Ou seja, os atacantes demonstram um conhecimento sólido sobre a arquitetura interna da plataforma alvo.
Análise do malware Linux/CDRThief
Percebemos esse malware em um de nossos feeds de compartilhamento de amostras e chamou nossa atenção por ser uma raridade encontrar um malware para Linux totalmente novo. O mais interessante é que rapidamente ficou claro que esse malware tinha como alvo uma plataforma VoIP específica para Linux. Seu binário ELF foi produzido pelo compilador Go e contém os símbolos de depuração inalterados, o que é sempre útil para análise.
Para ocultar a funcionalidade maliciosa da análise estática básica, os criadores da ameaça criptografaram todas as strings de aparência suspeita com XXTEA e com a chave fhu84ygf8643 e, em seguida, codificou-as em base64. A Figura 1 mostra parte do código que o malware usa para descriptografar essas strings em tempo de execução.
Para acessar os dados internos armazenados no banco de dados MySQL, o malware lê as credenciais dos arquivos de configuração Linknat VOS2009 e VOS3000 que tenta localizar nos seguintes caminhos:
- /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
Curiosamente, a senha do arquivo de configuração é armazenada de forma criptografada. No entanto, o malware Linux/CDRThief ainda é capaz de lê-la e descriptografá-la. Isso demonstra que os atacantes contam com um conhecimento sólido sobre a plataforma alvo, uma vez que, até onde sabemos, o algoritmo e as chaves de criptografia utilizadas não foram documentados. Isso significa que os atacantes tiveram que fazer a engenharia reversa dos binários da plataforma ou obter informações no código do Linknat sobre o algoritmo de criptografia AES e a chave usada.
Assim como podemos ver na Figura 2, o CDRThief se comunica com os servidores C&C usando JSON sobre HTTP.
Existem várias funções no código do malware Linux/CDRThief que são usadas para se comunicar com os servidores C&C. A Tabela 1 contém os nomes originais dessas funções usadas pelos criadores do malware.
Tabela 1. Funções usadas para estabelecer comunicação como o 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 |
Para extrair dados da plataforma, o Linux/CDRThief executa buscas SQL diretamente para o banco de dados MySQL. O malware está interessado principalmente em três tabelas:
- e_syslog – contém o registro de eventos do sistema
- e_gatewaymapping – contém informações sobre os gateways VoIP (veja a Figura 3)
- e_cdr – contém registros de dados de chamadas (metadados das chamadas)
Os dados que serão exfiltrados das tabelas e_syslog, _gatewaymapping e e_cdr são compactados e criptografados com uma chave pública RSA-1024 codificada antes da exfiltração. Portanto, apenas os criadores ou operadores do malware podem descriptografar os dados extraídos.
Com base na funcionalidade descrita, podemos dizer que o foco principal desse malware é coletar dados do banco de dados. Ao contrário de outros backdoors, o Linux/CDRThief não suporta a execução de comandos shell ou a exfiltração de arquivos específicos do disco do softswitch comprometido. No entanto, esses recursos podem ser introduzidos em uma nova versão.
O malware pode ser distribuído para qualquer local do disco com qualquer nome de arquivo. Não se sabe que tipo de persistência é usada para iniciar o binário malicioso em cada inicialização. No entanto, deve-se notar que uma vez que o malware é iniciado, ele tenta lançar um binário legítimo presente na plataforma Linknat VOS2009/VOS3000 usando o seguinte comando:
exec -a '/home/kunshi/callservice/bin/callservice -r /home/kunshi/.run/callservice.pid'
Isso sugere que o binário malicioso pode de alguma forma ser inserido em uma cadeia de inicialização regular da plataforma para obter persistência e possivelmente mascarar-se como um componente do software softswitch Linknat.
Até o momento (produção deste post), não sabemos como o malware é distribuído em dispositivos comprometidos. Especulamos que os atacantes podem obter acesso ao dispositivo por meio de um ataque de força bruta ou explorando uma vulnerabilidade. Essas vulnerabilidades no VOS2009/VOS3000 foram relatadas anteriormente.
Conclusão
Analisamos o malware Linux/CDRThief, que tem o propósito de atacar softswitches VoIP específicas. Dificilmente vemos softswitches VoIP sendo alvo de ameaças - isso torna o malware Linux/CDRThief bastante interessante.
É difícil saber o objetivo final dos atacantes que usam esse malware. No entanto, uma vez que exfiltra informações confidenciais, incluindo metadados de chamadas, parece razoável supor que o malware seja usado para espionagem cibernética. Outro possível objetivo dos invasores que usam esse malware é a fraude VoIP. Uma vez que os invasores obtêm informações sobre a atividade de softswitches VoIP e seus gateways, essas informações podem ser usadas para realizar fraudes de compartilhamento de receita internacional.
Caso tenha dúvidas ou queira enviar uma amostra relacionada ao assunto, escreva um e-mail para threatintel@eset.com.
Indicadores de Comprometimento
Nome da detecção (soluções ESET)
Linux/CDRThief.A
Mutex baseado em arquivos
/dev/shm/.bin
/dev/shm/.linux
Arquivos criados durante a atualização do malware
/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
Chave de criptografia (RSA) de exfiltração
-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCQ3k3GgS3FX4pI7s9x0krBYqbMcSaw4BPY91Ln
tt5/X8s9l0BC6PUTbQcUzs6PPXhKKTx8ph5CYQqdWynxOLJah0FMMRYxS8d0HX+Qx9eWUeKRHm2E
AtZQjdHxqTJ9EBpHYWV4RrWmeoOsWAOisvedlb23O0E55e8rrGGrZLhPbwIDAQAB
-----END PUBLIC KEY-----
Técnicas de MITRE ATT&CK
Nota: esta tabela foi criada usando a versão 7 do framework MITER 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. |