28 maio 2019
Nossa nova tecnologia de emulação: o pior pesadelo dos malwares
Você já se perguntou por que os vírus de computador são conhecidos como vírus? Bem, a verdade é que hoje a palavra “vírus” é utilizada de forma um tanto imprecisa para se referir a quase “qualquer tipo de programa malicioso ou para descrever o dano que um programa gera em dispositivos”. A fonte dessa definição é a nossa enciclopédia.
No entanto (e ainda segundo nossa enciclopédia), “no sentido mais estrito … um vírus é definido como um código de programação que se replica e espalha” e se desenvolve a partir dele mesmo, como um vírus biológico, por exemplo, a gripe.
No entanto (e ainda segundo nossa enciclopédia), “no sentido mais estrito … um vírus é definido como um código de programação que se replica e espalha” e se desenvolve a partir dele mesmo, como um vírus biológico, por exemplo, a gripe.
O mais curioso é que esse conceito sobre os vírus não faz sentido há vários anos. Atualmente, os programas maliciosos não precisam se reproduzir, já que contam com uma funcionalidade extremamente desagradável que é roubar dados de um computador ou até mesmo apagá-los completamente, um exemplo: os Trojans. Mas, até agora, se você pedir a alguém para exemplificar as “tecnologias de segurança de computadores”, o mais comum é descrever laboratórios de ficção científica com pesquisadores em trajes de quarentena e tubos de ensaio nas mãos, embora tudo isso exista, só é realmente necessário quando as ameaças enfrentadas são vírus biológicos.
Ou seja, os vírus de computador foram extintos. Mas os métodos de análise que têm sido utilizados para a detecção e desinfecção (outra falsa analogia com o mundo da microbiologia!) continuam, e seguem se desenvolvendo, até hoje, proporcionando uma enorme ajuda na luta contra os vírus os malwares atuais. Uma dessas tecnologias da velha escola é o emulador.
Em suma, a emulação é um método para descobrir ameaças anteriormente desconhecidas por meio do qual um arquivo de comportamento suspeito é executado em um ambiente virtual (ambiente “simulado”) que imita um computador real. Uma vez lá, o antivírus* analisa o comportamento do arquivo (e em tempo real, o que vou detalhar logo mais) e, caso encontre atividade maliciosa, o isola para uma investigação mais aprofundada.
Consegue perceber outra analogia com a microbiologia? Por que injetar um antídoto poderoso com vários efeitos adversos em um paciente que talvez apresente certa doença, se ele pode não ter nada? Seria mais eficiente, primeiro emular in vitro para observar o que acontece e, em seguida, administrar o medicamento apropriado.
No entanto, o principal desafio é o mesmo da microbiologia: é essencial que o ambiente emulado seja o mais parecido possível com o real. Caso contrário, os arquivos maliciosos podem perceber que é uma armadilha e começar a agir sem causar danos. Bem, depois de vários anos décadas fazendo emulações, podemos dizer, sem falsa modéstia, estamos a frente da concorrência. Nós temos tudo sob controle!
O primeiro emulador do mundo, eu mesmo desenvolvi em 1992, na época do DOS. A partir daí, não demorou muito para especialistas de todo mundo começarem a dar opiniões favoráveis sobre as taxas de detecção de nosso antivírus (ainda era um “antivírus”), que destruiu a concorrência em testes independentes, em parte, graças ao emulador.
Os anos se passaram e o cenário de ameaças começou a se tornar cada vez mais complexo: os vírus saíram de cena, dando lugar a worms, trojans e outras ameaças sofisticadas. Enquanto isso, as tecnologias digitais cresceram, computadores, smartphones, IdC e outras, as funcionalidades de nossos emuladores contra vírus acompanharam, estão adaptadas a nossa segurança em nuvem KSN e, por isso, aprendem novas linguagens de programação, conhecem novos navegadores e outros objetos do sistema operacional para nos ajudar a detectar automaticamente tipos desconhecidos de malwares. Nenhuma conversa sobre IA, apenas um monte de trabalho árduo e inteligente, base realmente necessária para conceber inovações reais centradas em HuMachine.
Atualmente, poucos concorrentes têm essa tecnologia contra vírus e não é surpresa: a emulação é uma tarefa muito complexa que requer anos de experiência, uma integração de produto para “frente de batalha” que leva tempo e demanda desenvolvimento constante. Muitos iniciantes na indústria de cibersegurança preferem investir em marketing sem sentido, em alguns casos, a curto prazo, essa estratégia pode fornecer um grande impulso para o desenvolvimento de negócios. Mas, o fato é: não dá para enganar o usuário por muito tempo. O resultado é insatisfação e um erro colossal. Assim, se uma empresa de cibersegurança possui seu próprio emulador, é possível inferir que os níveis de experiência e maturidade do desenvolvedor são impressionantes. Por outro lado, se não houver emulador, o fornecedor provavelmente terá pouco conhecimento e experiência, diminuindo de forma significativa a eficiência da ferramenta.
Mas estou fugindo do assunto.
Estamos sempre aprimorando nosso emulador contra vírus, mas os cibercriminosos não estão de braços cruzados, já que protegem ativamente suas operações e estratégias de ciberespionagem, o que inclui proteção contra nossa ferramenta de emulação.
Os autores de ameaças mais sofisticados empregam uma variedade de estratagemas contra o emulador para reconhecer os ambientes de “teste”; por exemplo, eles lançam uma função não documentada, verificam a autenticidade das solicitações para modificar os registros do processador, analisam os códigos de erro, procuram os códigos específicos na memória, usam “bombas lógicas” que colocam o emulador em um loop infinito, para citar algumas. Se o malware detectar algo suspeito, ele interromperá as operações maliciosas e se comportará como se não tivesse quebrado uma placa.
Mas nós conhecemos esses comportamentos e assumimos a dianteira, pois estamos sempre aprimorando nosso emulador contra essas táticas e melhorando-o em outros aspectos (principalmente, reduzindo a intensidade do uso de recursos). Por exemplo, para acelerá-lo, usamos diferentes limitadores, otimizadores e perfis de configuração, que podem até mesmo desabilitar completamente o emulador sob certas condições, quando o atraso é tão grave quanto um erro BSoD (erro de detecção ou tela azul).
Enquanto isso, há pouco, nossos guerreiros de patentes nos trouxeram boas notícias sobre nossas soluções de emulação: obtivemos a patente (US10275597) para um emulador de código de programa que pode interpretar objetos desconhecidos! Pelo meu conhecimento, nenhum produto concorrente tem esta característica. Para se proteger dos estratagemas contra emulador de malware, a concorrência precisa rever o emulador na totalidade, o que naturalmente é um processo moroso. Nós, por outro lado, ensinamos o emulador a se atualizar em tempo real a partir de um banco de dados local! Portanto, é um recurso muito útil e não há razão para não falarmos sobre isso, já que é uma oportunidade para explicarmos melhor o que fazemos para proteger seus dispositivos.
No entanto, alguns arquivos não são distribuídos em código máquina, mas dir]etamente no código-fonte. Para executá-los em um computador, um intérprete (por exemplo, Java Script ou VBA) é necessário para traduzir este código em tempo real em uma linguagem adaptada para a máquina. E, como você deve ter adivinhado, é muito comum que o malware também habite esses arquivos.
Para detectar ameaças desconhecidas desse tipo, há muitos anos, criamos um emulador de código de programação que verifica os arquivos em um “tubo de ensaio” antes de executá-los. No entanto, emular contra vírus um intérprete em sua totalidade requer muitos recursos e o atraso no processamento de páginas on-line com scripts frustra muitos usuários da Internet. Portanto, os emuladores geralmente recriam uma versão vulnerável do espaço virtual, o que é aceitável em termos de desempenho e qualidade de proteção. Mas o que acontece quando o emulador encontra um objeto, método ou função desconhecidos no código, cuja interpretação é absolutamente crucial para executar a análise total do arquivo?
Resolvemos esse problema de outra forma: com a ajuda de um pequeno intérprete “inteligente” que poderia aprender rapidamente como emular esses objetos. Durante uma atualização por meio da nuvem da KSN, o produto recebe um código auxiliar na linguagem do objeto em análise (JavaScript, VBA, VB Script, AutoIt …) e, uma vez armado com o novo conhecimento, retorna para verificar o arquivo. Nos casos mais complicados, quando o código auxiliar ainda precisa ser desenvolvido, essa tarefa é passada automaticamente para nossos analistas, que desenvolvem o código e o adicionam rapidamente ao banco de dados.
Como resultado, os usuários têm à sua disposição uma tecnologia robusta e eficiente, capaz de combater rapidamente às ciberameaças e sem ter que esperar pela edição de todo o emulador. Bingo!
* “Antivírus” é outro conceito dissonante da era dos vírus informáticos. As soluções de segurança atuais protegem não apenas contra vírus, mas contra todos os tipos de malwares. Elas também apresentam outras funcionalidades importantes como por exemplo, um gerenciador de senhas, VPN, controle dos pais, backups e muitas outras funções. Então, para ser preciso, hoje um bom antivírus deve ser chamado de “anti-this, that e everything que protege minha família, nossos dispositivos e nossos dados, e que vem totalmente equipado “. Não parece bom, certo?