ESTE SERVIÇO PODE CONTER TRADUÇÕES FEITAS PELO GOOGLE. O GOOGLE SE ISENTA DE TODAS AS GARANTIAS RELACIONADAS ÀS TRADUÇÕES, EXPRESSAS OU IMPLÍCITAS, INCLUINDO QUALQUER RESPONSABILIDADE EM RELAÇÃO À PRECISÃO, CONFIABILIDADE E QUALQUER DEVER IMPLÍCITO SOBRE SUA COMERCIALIZAÇÃO, ADEQUAÇÃO PARA UM FIM ESPECÍFICO E NÃO-VIOLAÇÃO.

Para sua conveniência, o site da Kaspersky Lab foi traduzido com a utilização do software de tradução Google Tradutor. Foram realizados esforços razoáveis para o oferecimento de uma tradução precisa; entretanto, as traduções automatizadas não são perfeitas e tampouco pretendem substituir a tradução qualificada de especialistas. Essas traduções são fornecidas como um serviço para os usuários do site da Kaspersky Lab e são exibidas "como estão". Não há nenhuma garantia de qualquer tipo, seja expressa ou implícita, sobre a precisão, confiabilidade, ou exatidão de quaisquer traduções feitas do inglês para qualquer outro idioma. Alguns conteúdos (como imagens, vídeos, Flash, etc.) podem não estar corretamente traduzidos devido às limitações do programa de tradução.

Virus.Win32.Crypto

Classe Virus
Plataforma Win32
Descrição

Detalhes técnicos

Este texto foi escrito com a ajuda de Adrian Marinescu, GeCAD Software.

Este é um vírus Win32 polimórfico parasita memória muito perigosa cerca de 20K de comprimento. Ele infecta os arquivos KERNEL32.DLL e PE EXE: grava seu código no final do arquivo e modifica os campos necessários no cabeçalho PE para obter controle quando um arquivo infectado é executado. O vírus também adiciona seus "droppers" a arquivos de diferentes tipos (ACE, RAR, ZIP, CAB, ARJ) e a alguns tipos de pacotes auto-extraíveis (arquivos SFX ACE e RAR).

O vírus usa um mecanismo polimórfico enquanto infecta apenas arquivos e arquivos EXE PE e deixa a imagem de vírus não criptografada no arquivo KERNEL32.DLL.

O vírus usa truques de anti-depuração, desativa scanners de acesso antivírus (Avast, AVP, AVG e Amon), exclui arquivos de dados de antivírus (AVP.CRC, IVP.NTZ, ANTI-VIR.DAT, CHKLIST.MS , CHKLIST.CPS, SMARTCHK.MS, SMARTCHK.CPS, AGUARD.DAT, AVGQT.DAT), corrige o arquivo LGUARD.VPS (banco de dados de antivírus?) E evita a infecção de muitos programas antivírus: TB, F- , AW, AV, NAV, PAV, RAV, NVC, FPR, DSS, IBM, INOC, ANTI, SCN, VSAF, VSWP, PANDA, DRWEB, FSAV, ARANHA, ADINF, SONIQUE, SQSTART.

Um dos mais importantes recursos do vírus é o fato de que ele criptografa / descriptografa as bibliotecas do Windows (arquivos DLL) quando carregadas – ao carregar uma biblioteca, o vírus a descriptografa e, ao descarregar, o vírus criptografa o corpo do arquivo. Para criptografar arquivos DLL, o vírus usa algoritmos criptográficos fortes (fornecidos pela Crypt API incluída no Windows). Como resultado, uma vez que o sistema infectado continua funcionando apenas no caso em que o código de vírus está presente na memória e realiza essa criptografia / descriptografia. Caso o sistema seja desinfetado, as bibliotecas DLL permanecerão criptografadas e o sistema não poderá carregá-las. O primeiro vírus a usar essa tecnologia foi o vírus multipartite Onehalf que foi "bem conhecido" na segunda metade dos anos 90.

O vírus é incompatível com várias versões do Win32, como as edições padrão Win95 e Win98. Sob essas condições, o vírus não se instala no sistema (não infecta KERNEL32.DLL) e / ou não infecta arquivos PE EXE.

Instalando no sistema

Quando um arquivo infectado é executado pela primeira vez em um sistema limpo, o loop do decodificador polimórfico ganha controle, restaura o código do arquivo original de forma limpa e passa o controle para lá. A rotina de instalação ganha controle e, depois de executar vários procedimentos de anti-depuração e anti-vírus, instala a cópia de vírus no sistema.

Durante a instalação, o vírus infecta o arquivo KERNEL32.DLL para que, na próxima inicialização, o Windows carregue o código do vírus como parte da biblioteca KERNEL32. Ao infectar, o vírus corrige as tabelas de exportação do KERNEL32 para que, no próximo carregamento, o vírus intercepte e filtre várias funções de acesso ao arquivo que são exportadas do KERNEL32.DLL (CreateFile, OpenFile, __lopen, CopyFile, MoveFileEx, LoadLibrary, LoadLibraryEx, FreeLibrary – nos formulários ANSI e UNICODE).

Para infectar KERNEL32.DLL (esta biblioteca é carregada na memória quando o vírus é executado, portanto, é protegido pelo Windows para gravação), o vírus copia o arquivo KERNEL32.DLL para a pasta Windows, infecta essa cópia e, em seguida, força o Windows a alterne o arquivo antigo com o infectado na próxima inicialização. Como resultado, na próxima reinicialização, o Windows será carregado com o KERNEL32.DLL infectado – o vírus filtra eventos de acesso a arquivos e executa as rotinas PE EXE e de infecção de arquivo.

Depois de infectar o KERNEL32.DLL, o vírus apaga seu código da memória e retorna o controle para o programa host.

Propagação de vírus

Quando o Windows é carregado com um KERNEL32.DLL infectado, o vírus permanece na memória como um componente de KERNEL32.DLL e conecta várias funções exportadas KERNEL32. Em uma primeira chamada para essas funções, o vírus ativa sua rotina de infecção que procura por arquivos de vítimas (PE EXE) em segundo plano e os infecta. O vírus pesquisa arquivos em todas as unidades de C a Z.

Para tornar o processo de digitalização menos visível, o vírus primeiro aguardará três segundos antes de cada varredura de unidade.

Ao infectar um arquivo, o vírus amplia a última seção do arquivo e reserva espaço para seu código, depois grava o código criptografado junto com o decodificador polimórfico e configura o ponto de entrada do programa para a rotina de descriptografia.

Infecção de arquivo

O vírus é capaz de adicionar droppers aos arquivos de vários tipos: ACE e RAR (incluindo arquivos autoextraídos SFX), bem como ZIP, CAB, ARJ. Os droppers de vírus nos arquivos recebem um nome selecionado aleatoriamente das variantes:

INSTALAR, CONFIGURAR, EXECUTAR, SOM, CONFIG, AJUDA, GRATIS, CRACK, UPDATE, README

começando ou terminando com '!' Caracteres. A extensão do nome do arquivo é .exe.

Para adicionar seu dropper a um arquivo, o vírus cria um dropper como um arquivo de disco e executa o programa externo necessário para processar o respectivo tipo de arquivo. Usando esse método, o vírus é capaz de anexar o conta-gotas compactado com um método selecionado aleatoriamente, dependendo do programa de compactação.

Criptografando Bibliotecas

O vírus cria chaves criptográficas na parte de instalação do vírus (usando a Crypt API incluída no Windows). Se as chaves forem criadas com êxito, o vírus poderá criptografar o código dos arquivos DLL usados ​​pelos aplicativos (eles são carregados pelo Windows em caso de necessidade). Para fazer isso, o vírus usa os ganchos LoadLibrary e FreeLibrary, intercepta o carregamento da biblioteca e os criptografa / descriptografa em tempo real.

Qualquer DLL com o nome começando com um dos padrões a seguir é exceção: SFC, MPR, OLE32, NTDLL, GDI32, RPCRT4, USER32, RSASIG, SHELL32, CRIPT32, RSABASE, PSTOREC, KERNEL32, ADVAPI32, RUNDLL32, SFCFILES. Além disso, as DLLs listadas nas listas a seguir não são criptografadas:

 SystemCurrentControlSetControlSessionManagerKnownDLLs 
 SystemCurrentControlSetControlSessionManagerKnown16DLLs 

O aspecto mais importante é que a chave de criptografia e o algoritmo de criptografia são exclusivos para cada sistema infectado. O WinCrypt suporta algoritmos de criptografia personalizados, impossibilitando a desinfecção de outros sistemas além do Windows. A criptografia das DLLs consumirá muitos recursos de tempo / CPU – o vírus lerá sempre que necessário as chaves do registro.

Para poder usar a Crypt API incluída no Windows, o vírus precisa criar uma nova chave, com o nome do container definido como "Prizzy / 29A". Primeiro, o vírus verifica sua existência e, se a chave não estiver presente, a API dedicada é chamada para criar uma nova. Então, o vírus precisará armazenar a chave gerada – para isso, o vírus usará o registro do sistema. Neste ponto, o vírus contém uma limitação – ele assumirá que a chave SOFTWAREMicrosoftCryptographyUserKeysPrizzy / 29A será criada após a chamada da API CryptAquireContext. O vírus irá definir o valor 'Kiss Of Death' para a chave recém-gerada.


Link para o original