Há dois anos atrás a ESET divulgou algumas informações sobre o vírus Win32/Induc.A que infectava ficheiros Delphi aquando da compilação. Apesar de não ser muito avançado de um ponto de vista técnico, o vírus não deixava de ser interessante, porque ao invés de infectar ficheiros executáveis directamente, tinha como alvo a biblioteca standard do popular ambiente de programação Delphi. Como resultado, qualquer aplicação compilada com um IDE Delphi infectado, estava comprometida. Talvez o criador deste vírus se tenha inspirado num documento de 1984, escrito por Ken Thompson, que descrevia uma infecção similar utilizando um método que modificava o compilador de C.
Apesar deste malware apenas afectar instalações com o Delphi presente, começou a espalhar-se com sucesso por todo o mundo utilizando um número alargado de aplicações escritas nesta linguagem (incluindo, ironicamente alguns exemplos de malware).
Mas para alem de um curioso mecanismo de infecção, o vírus Induc.A não tinha qualquer outro payload malicioso.
Contudo, dois anos mais tarde tudo mudou, com o aparecimento de novas variantes.
Em Julho de 2011, a ESET detectou pela primeira vez o Induc.B. Esta versão era bastante similar à antecessora em virtude de continuar a não incluir um payload genuinamente malicioso. Contudo todo o código havia sido reescrito e existiam algumas alterações consideráveis.
À semelhança do Win32/Induc.A, o Win32/Induc.B afecta as versões 4.0 a 7.0 do Delphi. Porém, o Induc.B é mais inteligente a encontrar a pasta onde o ambiente de programação foi instalado, sendo a mesma localizada ainda que o IDE já não se chame Delphi. Para alem disso consegue também infectar o Borland Developer Studio (BDS) e Codegear BDS.
Foram também introduzidas algumas técnicas de anti-debugging. Foi utilizada alguma encriptação simples em XOR para “mascarar” o código, tornando a análise um pouco mais difícil.
Por outro lado, o mecanismo de infecção manteve-se o mesmo – recompilando a biblioteca standard Delphi SysConst.pas após introduzir o código do vírus.
Contudo, as ultimas variantes do vírus, Win32/Induc.C, introduziram alterações bastante mais significativas, tendo a ESET descoberto esta variante no passado mês de Agosto. O código é completamente diferente dos seus antecessores e a única semelhança reside no facto de infectar Delphi. Porém, o mecanismo de infecção mudou e se anteriormente apenas as aplicações em Delphi eram comprometidas (aquando da compilação), foi adicionado um novo vector de infecção que ataca os ficheiros executáveis (.exe). A mudança mais significativa é a presença de uma função que permite efectuar downloads. O Induc.C cria uma backdoor através da qual outro malware pode ser descarregado para o computador e executado, expandindo em larga escala as capacidades desta infecção.
Em resumo, aqui estão algumas das novas funcionalidades e alterações no Win32/Induc.C:
- O algoritmo que localiza a pasta de instalação Delphi foi alterado. Ao invés de obter o caminho através do Registo do Windows, conduz uma pesquisa pelos discos rígidos presentes no computador.
- A biblioteca alvo para a infecção já não é a SysConst.pas, mas sim a SysInit.pas e os mecanismos de infecção são mais eficazes.
- O Induc.C tem a capacidade de infectar ficheiros executáveis que não tenham sido compilados por um ambiente Delphi comprometido. Este vector de infecção é utilizado em executáveis presentes em dispositivos amovíveis, como pen drives, que poderão ajudar o vírus a espalhar-se de um modo mais global do que as versões anteriores.
- O vírus foi programado para se tentar ligar a três URLs. O mecanismo de download foi implementado de um modo pouco ortodoxo. As ligações apontam para ficheiros JPG (avatars de utilizadores em fóruns de discussão), dentro dos quais está um URL encriptado. O URL é escondido dentro da secção EXIF da imagem JPG e aponta para malware adicional, executando-o à posteriori.
- Um malware especifico que o Induc.C descarrega é um password stealer que a ESET detecta como Win32/PSW.Delf.NQS. Ele pode ser utilizado para a obtenção de acesso a servidores FTP privados, sendo capaz de extrair palavras-passe de diversas aplicações FTP.
- O Induc.C envia um ID único do PC infectado para um computador remoto. Isto permite ao cibercriminoso acompanhar as infecções e criar uma botnet.
Posto isto, ao serem comparadas as diferentes versões do vírus, torna-se notório que as primeiras versões do Induc estavam numa espécie de fase Beta de desenvolvimento, em que o autor experimentou métodos inovadores de infecção. Por outro lado, a nova variante, Induc.C é um malware com objectivos notoriamente ilícitos.
Como já havíamos referido, a família de malware Induc tem vindo a espalhar-se de uma forma activa, como se confirma pelas estatísticas obtidas através da tecnologia ESET Live Grid (uma versão optimizada do sistema ThreatSense.Net baseado na cloud).
Podemos verificar que o vírus se tem espalhado a nível global, sendo detectado mais vezes na Rússia, seguindo-se a China. Importa salientar que também se tem vindo a detectar um numero consideravelmente significativo nos Estados Unidos.
Com a nova variante, Win32/Induc.C, os números são diferentes e interessantes de se analisarem:
O numero mais alto de detecções desta infecção foi obtido na Eslováquia e na Rússia.
A ESET vai continuar a monitorizar a evolução deste vírus e a fornecer protecção para todas as variantes desta infecção. Esta ultima variante representa uma ameaça bastante mais significativa que os seus antecessores.
Robert Lipovsky – Malware Researcher