Há alguns dias, foram detectadas em diferentes sites da Internet novas variantes do ZITMO, versão do Zeus para dispositivos móveis que permite tomar o controle do dispositivo e executar comandos remotos. Essa versão do código malicioso, detectado pelo ESET Mobile Security para Android como Android/Spy.Zitmo, apresenta uma evolução considerável em comparação a outras ameaças detectadas anteriormente. Praticamente todo o código do trojan foi reescrito pelos cibercriminosos que o propagam como uma suposta aplicação de segurança, também conhecida como Rogue. Veremos a seguir alguns pontos importantes e a interação com o painel de controle.
Anteriormente, quando foram detectadas ou reportadas variantes do ZITMO para dispositivos móveis, suspeitava-se que eram aplicações para transações online. Desta vez, vemos que simula ser uma solução de segurança. Um dos principais motivos disso é o fato do Android ser um sistema baseado em permissões, que o usuário deve aceitar para instalar um aplicativo. No momento de executar o aplicativo pela primeira vez, o usuário observa uma tela com um código de ativação, mas ignora o que realmente acontece no seu dispositivo.
Esta nova variante do Android/Spy.Zitmo se trata da versão 1.2.7 do código malicioso e permite seu controle através de mensagens de texto. A ameaça armazena as mensagens recebidas em um banco de dados no diretório /data/data/com.android.security/secsuite.db e conta com três tabelas diferentes:
- android_metadata
- delay_data
- sqlite_sequence
Na tabela delay_data, são armazenados todos os dados referentes às mensagens de texto que não foram enviadas ao criminoso virtual. Esta informação é enviada de forma sincronizada em um número determinado de tempo. O primeiro relatório do código malicioso é feito aos 180 segundos após ter sido iniciada a aplicação e é atualizado aos 1500 segundos. Na tela a seguir podemos ver que a classe ValueProvider concentra toda a informação de administração do bot: o endereço URL a que o malware se reporta (UrlToReport), que está ofuscada, variáveis padrão, versão do malware, etc:
Todos esses dados são utilizados pelas diferentes seções do código malicioso. Além de que o AndroidManifest.xml conta com a definição de um BroadCastReceiver, com o nome SecurityProvider, que é disparado a uma recepção de uma mensagem de texto, a realização de uma chamada ou quando finaliza a inicialização do sistema. Toda essa informação fica detalhada no arquivo de permissões, porém não pode ser vista pelo usuário:
Através da utilização deste tipo de técnicas, que já reportamos anteriormente, o bot consegue obter a informação temporal, armazená-la na base de dados e em seguida enviar ao endereço URL. Outro ponto importante a levar em consideração é que o controle do computador infectado é feito através de mensagens SMS. Quando é iniciado o evento onReceive da classe Security Receiver, segundo o conteúdo da mensagem, podemos interpretar como um comando ou como uma mensagem a ser armazenada, com base nas opções da função AlternativeControl. Este último detalhe permite alterar as opções do bot segundo as necessidades do criminoso e estender suas funcionalidades:
As funcionalidades desta ameaça permitem ao criminoso tomar o controle do dispositivo e realizar ações distintas. A ação a ser executada varia segundo o caractere com o qual se inicia a mensagem de texto. Para prevenir a infecção dos dispositivos móveis com esse tipo de ameaças é recomendável contar com uma solução de segurança que detecte proativamente as ameaças.
Pablo Ramos
Security Researcher