Como antivírus funciona e detecta malwares? Quais são as técnicas que ele utiliza? Nesse artigo eu abordo em detalhes como funcionam os antivírus, mostrando as várias técnicas que eles utilizam para detectar malwares: assinatura, heurística, HIPS, proteção na nuvem e Inteligência Artificial.
A detecção através de assinatura é a técnica mais antiga e básica, onde o antivírus detecta malwares procurando por trechos de código ou combinação de caracteres que já foram utilizados em outros malwares: se eles também estiverem ali, certamente esse programa é um malware.
A repetição de linhas de código nos vírus é relativamente comum, pois existem na internet várias ferramentas (gratuitas ou não) para criação de vírus.
Muitos criadores de vírus não criam o seu próprio vírus: eles utilizam ferramentas que permitem criar um vírus sem ter conhecimento técnico para isso, ou eles baixam o código-fonte de vírus disponíveis em vários sites e fazem pequenas modificações neles.
O método de assinatura permite analisar um programa sem que ele seja executado pelo usuário.
Quem utiliza qualquer uma dessas duas opções para criar um vírus é apelidado de script kiddie, um indivíduo sem conhecimento técnico em programação que utiliza scripts ou programas prontos.
Quando um novo vírus é criado, e depois aparecem outros vírus que foram baseados nele, esses novos vírus são considerados uma variante do vírus principal, onde o nome principal do vírus é o mesmo, mas cada variante recebe uma identificação própria.
Um antivírus que identifique um malware somente pela sua assinatura seria um péssimo antivírus, pois ele não detectaria vírus que tenham um código-fonte diferente dos demais. Por isso há décadas os antivírus incluem métodos adicionais de detecção de vírus e malwares.
A heurística analisa as características do programa procurando padrões internos que possam indicar que o programa é um malware. Cada vez que um padrão é encontrado, é atribuída uma pontuação para ele, e se na soma total essa pontuação for superior a um determinado valor, o antivírus considera esse programa sendo um malware desconhecido.
O método de heurística detecta malwares analisando um programa sem que ele seja executado pelo usuário.
Isso acontece quando você baixa um arquivo para o seu computador, e assim que ele é baixado o seu antivírus já informa que ele é um malware. Nesse caso o módulo de assinatura ou de heurística detectaram pelo código do programa que ele é um malware, sem necessidade de executar o programa pra comprovar isso.
Existem dois tipos de heurística: passiva e ativa.
Heurística passiva analisa uma ameaça à medida que ela é verificada, verificando as instruções do programa antes dele ser executado pelo processador, procurando padrões, rotinas ou chamadas que indiquem comportamento malicioso. Ela é uma proteção proativa.
Heurística ativa é utilizada pelas soluções de segurança da ESET que criam uma máquina virtual dentro do mecanismo de varredura, analisando o que o programa pode fazer antes de ser executado no computador real. Ela é uma proteção reativa.
Com o módulo HIPS, o antivírus monitora o que um programa está fazendo ou o que ele vai fazer em seguida, e se esse programa apresentar um comportamento suspeito, o antivírus bloqueia ele informando que ele é malicioso. O HIPS detecta malwares antes dele causar danos ao sistema operacional.
Exemplo: se você executa um programa e o antivírus detecta que ele está começando a criptografar os arquivos da pasta Documentos, e a próxima instrução do programa (que já está carregada na memória RAM) é apagar os arquivos originais, isso indica o comportamento de um ransomware. Nesse caso o antivírus bloqueia a execução desse programa.
O mesmo acontece quando o antivírus detecta que um programa está injetando código adicional em outros programas, quando um programa altera o arquivo HOSTS ou ele instala um driver que monitora o teclado. Tudo isso é bloqueado pelo HIPS por indicar comportamento de um software mal-intencionado.
O módulo de IDS monitora a atividade da rede em busca de comportamentos suspeitos que possam indicar uma tentativa de invasão. Ele captura endereços IP de origem e destino, portas utilizadas, protocolos de comunicação, conteúdo dos pacotes de dados, etc.
O IDS compara a atividade da rede com padrões predefinidos de ataques conhecidos de tentativas de exploração de vulnerabilidades, ataques de força bruta, propagação de malware e outras ações maliciosas.
Além disso, o IDS analisa atividades incomuns ou anormais na rede, como aumento repentino no tráfego de rede, tentativas de acesso a portas incomuns ou conexões de endereços IP suspeitos. Se algo suspeito for detectado, o antivírus toma as ações necessárias, como bloquear a conexão suspeita, notificar o usuário ou iniciar uma varredura.
A proteção na nuvem permite análise e detecção de malwares utilizando servidores na nuvem ao invés de depender do computador do usuário para isso.
Como o banco de dados desses servidores é constantemente atualizado e o banco de dados do antivírus instalado no computador do usuário é atualizado apenas algumas vezes por hora, a taxa de detecção utilizando a nuvem é superior à do antivírus tradicional.
Um internauta baixou um programa desconhecido e executou-o. Ao fazer isso, o antivírus faz uma análise rápida desse programa para decidir se ele é um programa confiável ou não.
Essa análise é multi-layer, pois ele realiza simultaneamente diversas análises, verificações e comparações. Ele analisa se existe algum código suspeito, se o programa vai realizar alguma tarefa destrutiva como apagar partição, se o programa tem certificado digital válido, se o código do programa está propositalmente embaralhado para confundir o antivírus (técnica conhecida como obfuscar o código), etc.
Após essa análise, o antivírus conclui se o programa está infectado e será bloqueado, ou se ele não está infectado e será executado. Com a proteção na nuvem, existe uma terceira opção: o programa é suspeito.
Quando o programa é suspeito, o antivírus envia-o imediatamente para ser analisado em servidores na nuvem, e o resultado dessa análise é enviado de volta para o computador do internauta.
Se for confirmado que esse programa está infectado, o programa não é executado. Além disso, o malware detectado é identificado e catalogado, e as informações dele são adicionadas no arquivo de atualização de vírus que será baixado várias vezes por dia pelos antivírus. A partir daí, assim que algum outro internauta executar esse mesmo programa, ele será imediatamente bloqueado sem que seja enviado novamente para análise.
A conclusão é que antivírus com proteção na nuvem têm uma taxa de detecção mais alta, pois a nuvem permite receber, analisar e catalogar novos malwares em pouco tempo independentemente em qual país ele foi inicialmente detectado.
Como a Inteligência Artificial de um antivírus detecta malwares? O principal motivo do uso da Inteligência Artificial em um antivírus é vencer o desafio do antivírus não errar NUNCA, ou seja, ele precisa detectar 100% dos malwares e ter 0% de falso positivo (quando um programa comum é detectado como malware quando ele não é).
E da mesma forma que nós só ficamos experientes em algo depois de muita prática, a Inteligência Artificial também precisa de muito treino, com erros e acertos.
O treino da Inteligência Artificial para identificar malwares exige que ela tenha acesso ao maior número possível de arquivos para ela treinar a sua detecção – e o Microsoft Defender é perfeito para isso por ser utilizado por centenas de milhões de usuários.
Sempre que o Microsoft Defender detecta um malware, as informações dele são enviadas para os servidores de Machine Learning da Microsoft. Esses servidores analisam continuamente um volume imenso de informações do Microsoft Defender de milhões de usuários, procurando por padrões de comportamento e anomalias que ajudem a identificar se um programa desconhecido é um malware ou não.
O resultado da análise dessas informações permite a criação de padrões que serão levados em consideração quando a Inteligência Artificial analisar se um arquivo é malicioso ou não.
No dia 3 de fevereiro de 2018, o módulo de Inteligência Artificial do Microsoft Defender de um usuário na Carolina do Norte (EUA) bloqueou um novo malware.
Isso aconteceu pois esse módulo analisou o código do malware, montou uma árvore de decisão baseada em padrões descobertos pelos servidores de Machine Learning, e concluiu que aquele programa desconhecido era um novo malware.
Nesse momento o malware foi enviado para servidores de quarentena da Microsoft que “detonaram” ele, ou seja, eles executam o malware como administrador em um ambiente virtual protegido, e analisaram tudo que acontece depois. Isso permitiu saber se esse malware estava criptografando arquivos, se ele alterou alguma linha do Registro, se ele substituiu algum arquivo importante do sistema operacional, etc.
Como ocorreram diversas alterações no sistema operacional depois dessa detonação, elas foram analisadas e comparadas através de rede neural, que concluiu que o malware em questão é uma variante do trojan bancário Emotet .
Isso tudo aconteceu porque conforme os servidores de Machine Learning descobrem novos modelos de comportamento dos malwares, eles agrupam essas informações em PADRÕES, sendo que cada padrão pode conter milhões de combinações possíveis que são levados em consideração pelo módulo de Inteligência Artificial na detecção de um novo malware.
Esse exemplo do Emotet foi apenas um padrão dentre mais de trinta que funcionam em paralelo no Serviço do Microsoft Defender, sendo que eles são constantemente atualizados de acordo com os resultados das análises dos servidores de Machine Learning.
No dia 24 de outubro de 2017, um internauta em São Petersburgo (Rússia) baixou e executou um programa FlashUtil.exe achando que era uma atualização do Flash.
O Microsoft Defender analisou o programa, considerou ele suspeito e enviou informações dele para servidores de Machine Learning da Microsoft. O programa foi analisado e considerado suspeito, mas não o suficiente para ser considerado um malware.
Por causa disso, esses servidores solicitaram ao Microsoft Defender do internauta o envio do FlashUtil.exe para uma análise mais detalhada.
Ao receberem e analisarem o arquivo, chegou-se à conclusão que ele tinha 81,6% de chance de ser um malware. Como nesse cenário específico o arquivo precisa ter no mínimo 90% de chance para ser considerado malware, ele foi enviado para uma das câmara de detonação.
Uma câmara de detonação é uma máquina virtual criada especialmente para execução de programas desconhecidos, aonde TUDO que acontece após a execução desses programas é analisado e monitorado.
Ao ser executado, o programa FlashUtil.exe realizou diversas tarefas que foram consideradas suspeitas, incluindo a eliminação dos logs de Segurança do Visualizador de Eventos (detalhado na Aula 27 dos cursos de Manutenção), e também a reinicialização forçada do computador no final da execução das demais tarefas, fazendo com que a probabilidade dele ser um novo malware tenha superado 90%.
Assim que isso aconteceu, ele foi imediatamente considerado como um novo malware. A partir desse momento, o Microsoft Defender de todos usuários começou a considerar esse arquivo como malware assim que ele foi baixado por outros usuários.
O resultado disso é que transcorreram apenas 14 minutos entre o momento que o Microsoft Defender suspeitou desse arquivo no computador do primeiro internauta (“paciente zero“), e o início do bloqueio desse malware pelo Microsoft Defender dos demais usuários de todo mundo.
Nesses 14 minutos, apenas nove usuários de quatro países foram infectados. Esse malware depois ficou sendo conhecido como o ransomware Bad Rabbit .
Os antivírus são ferramentas essenciais para a segurança digital na era moderna. Através de diferentes técnicas, como detecção baseada em assinaturas, heurística e inteligência artificial, combatem malwares, protegem dados e garantem a privacidade dos usuários.
A escolha de um antivírus confiável e atualizado, combinado com práticas seguras de navegação, é crucial para minimizar os riscos online e aproveitar os benefícios da internet com tranquilidade.
Confira os melhores antivírus nesse artigo.