Emulador
Sobre a tecnologia de emulação de código
O método de emulação de código da detecção de malware verifica o comportamento de um arquivo emulando a sua execução em um ambiente virtual (emulado). De modo geral, essa abordagem é semelhante à da detecção de malware em sandbox, mas a emulação e a sandbox com todos os recursos diferem nos detalhes de design e aplicação. Vejamos a diferença.
Uma sandbox com todos os recursos, ao contrário de um emulador, é um método "pesado". Ela emula todo o ambiente e executa uma amostra verificada em uma máquina virtual com sistema operacional e aplicativos reais instalados. Consequentemente, esse método exige uma grande capacidade de computação e apresenta limitações de compatibilidade no sistema host. Por esse motivo, uma sandbox é mais eficaz em soluções centralizadas na nuvem e no local. Ela não é adequada para detecção de malware em hosts do usuário e outros computadores normais.
Um emulador simula apenas a execução da própria amostra. Ele cria temporariamente objetos com os quais a amostra interage: cria senhas que um malware tentará roubar, aplica antivírus que tentará interromper a memória ou o Registro do sistema, etc. Esses objetos não são partes reais do sistema operacional ou do software, mas imitações criadas pelo emulador. O controle do emulador sobre o ambiente emulado permite que ele avance no tempo, observe o comportamento futuro dos arquivos e impeça o malware de realizar evasão por atraso.
Um emulador determina caraterísticas de comportamento essenciais de um arquivo verificado utilizando muito menos recursos do que uma sandbox, além de ser adequado para hosts de usuário. A execução de arquivos desconhecidos geralmente é adiada até que eles sejam verificados em um emulador. A abordagem de emulação não é nova, mas alguns emuladores são muito avançados e sua contribuição na detecção de malware é substancial. Os emuladores atuais são reforçados com serviços de reputação baseados na nuvem e sua eficácia é aumentada pelo uso de Machine Learning.
Emulador da Kaspersky
Nossas soluções incluem um emulador como uma linha de defesa em uma abordagem de proteção em vários níveis. Ele emula arquivos binários e scripts, e a importância deste segundo item está crescendo com o aumento da popularidade dos ataques sem arquivos baseados em script.
A emulação é otimizada para recursos de computação limitados. Ela utiliza muito menos RAM por objeto do que uma sandbox e verifica simultaneamente muitos objetos sem sobrecarregar consideravelmente o sistema. Devido à aceleração do hardware, a emulação utiliza de forma segura o processador para acelerar a verificação cerca de 20 vezes.
Nossas soluções iniciam a emulação fazendo uma verificação "por demanda", quando um usuário solicita uma verificação do disco, ou "ao acessar", quando um objeto é automaticamente verificado antes de ser acessado ou executado. A emulação pode começar paralelamente a outros métodos de detecção, como solicitações de reputação do processo na nuvem.
Os emuladores estão implementados nas soluções de endpoint da Kaspersky, nas soluções no nível do gateway (por exemplo, servidores de e-mail e proxy) e na proteção do ambiente de virtualização. Na infraestrutura da Kaspersky, emuladores potentes fazem parte do fluxo de classificação de objetos.
Tarefas do emulador:
- Emular a execução de arquivos executáveis (PE): *.exe, *.dll, *.sys e outros no ambiente Windows.
- Processar scripts do tipo JavaScript, VBScript e AutoIT e scripts autônomos (baixados como arquivos).
- Verificar scripts recebidos por meio de um link da Web (em uma página da Web, e-mail ou mensagem) e incorporados em arquivos PDF e do MS Office.
Atualizações
A tecnologia de emulação é implementada com um núcleo de emulação e registros de detecção que analisam os dados fornecidos pelo núcleo. Os registros são criados na Kaspersky e as atualizações são baixadas pelas soluções de hora em hora. Um registro de detecção pode detectar muitas amostras de malware diferentes com conteúdo binário diferente, mas comportamento semelhante.
Fluxo de trabalho de detecção de malware
- O emulador recebe uma solicitação para verificar um objeto (um arquivo executável ou script) de outro componente de uma solução de segurança.
- O emulador executa com segurança as instruções do objeto, uma por uma, em um ambiente virtual, começando pelo ponto de entrada do objeto. Se uma instrução interagir com o ambiente (sistema operacional, Registro, outros arquivos, Web, memória, etc.), o emulador imitará a resposta desses objetos.
- O emulador coleta artefatos e os encaminha para o analisador heurístico. O analisador encaminha um veredito com base nesses artefatos para o componente que solicitou a análise.
- A emulação é interrompida quando há artefatos suficientes para detectar um malware ou devido ao tempo limite.
Artefatos coletados pelo emulador
Para arquivos executáveis (binários):
- Registro de chamada à API
- Todas as alterações no sistema de arquivos, Registro do sistema
- Despejos de memória
Para scripts:
- Argumentos e retornos de operações de string
- Chamadas de funções integradas e funções fornecidas pelo ambiente
- Eventos
- Carregamentos no sistema de arquivos e scripts secundários
Prevenção de evasão
Os criadores de malware avançado incluem no malware recursos para evitar a detecção na emulação. Nosso emulador detecta e combate essas novas técnicas de evasão. Exemplos:
Evasão A: antes da execução, o malware precisa ser descompactado. Isso leva muito tempo de computação, sendo normalmente suficiente para evadir a detecção por conta do limite de tempo da emulação.
Combate à evasão A: o emulador reconhece arquivos compactados e ajusta a profundidade da emulação de maneira apropriada. A aceleração do hardware confere ao emulador potência suficiente para passar pela descompactação.
Evasão B: antes de executar sua carga maliciosa, o malware pode acessar recursos ou parâmetros da Web do seu ambiente (por exemplo, nome do computador, tamanho do disco) e verificar se estão disponíveis e se são relevantes. Se não detectar uma resposta relevante, o malware não executará sua carga e escapará da detecção.
Combate à evasão B: após as solicitações do arquivo verificado, o emulador imita as informações sobre o ambiente e os recursos do sistema, tornando-os o mais relevantes possível. Por exemplo, ele disponibiliza nomes de computador aleatoriamente, para que o malware não consiga utilizar nomes de computador específicos como sinal de execução em uma emulação.