Antivírus: na trilha de malware, mesmo com técnicas heurísticas
O antivírus é uma ferramenta fundamental na nossa “vida informática” quotidiana, a análise dos ficheiros do nosso computador graças sobretudo às técnicas heurísticas permite-nos identificar potenciais malwares antes que possam causar danos significativos. No entanto, muitas vezes acontece de nós abordarmos este programa vendo apenas o painel gráfico, sem pensar no que realmente está por baixo. Na verdade, na maioria das vezes, parece uma perda de tempo verificar o sistema em busca de software em potencial que possa comprometer nossa segurança. Mas como um antivírus na prática nos diz se um programa é malicioso? Existem algumas técnicas estabelecidas que podem ser combinadas para aumentar a capacidade analítica, incluindo:
- Análise estática, onde as "assinaturas" de vírus já conhecidas são comparadas com o código descompilado do programa analisado;
- Sandbox, ou melhor, ambientes isolados, criados ad-hoc, que permitem que softwares suspeitos sejam executados para entender seu comportamento e, a partir das ações, decidir se classificá-lo como malicioso ou não;
- Métodos heurísticos, que tentam prever a bondade ou não de uma aplicação por meio de estimativas em relação a modelos predefinidos.
Essas três técnicas básicas podem ser mais ou menos combinadas por cada fornecedor para obter resultados diferentes (e, com sorte, melhores) na busca por software malicioso.
Técnicas simples, mas agora bem refinadas
A análise estática (também conhecida como método baseado em assinatura ) usa a assinatura do executável, seu recurso inerente, e o compara com um banco de dados de assinaturas de malware conhecido . Como é de fácil compreensão, a principal vantagem é que, em caso de correspondência, teremos a certeza de que aquele arquivo é malicioso devido à típica impressão digital já detectada para aquele tipo de vírus. Por outro lado, a maior dificuldade é ter uma base de dados sempre atualizada que será, obviamente, da responsabilidade do fabricante a manutenção. Isso se traduz em uma deficiência significativa em termos de identificação de ameaças ainda não conhecidas precisamente porque não foram analisadas e não estão muito difundidas.
A outra abordagem muito bem estabelecida é o uso de sandboxes que, como dissemos, são máquinas virtuais isoladas. O seu isolamento garante que o software potencialmente perigoso pode ser executado sem impactos particulares e, de fato, seu comportamento pode ser avaliado para entender como classificá-lo. Este modo é extremamente eficaz para analisar quais danos o software que está sendo analisado pode causar , mas, na verdade, não aumenta nossa capacidade de prever malware potencial. Além disso, o uso de máquinas virtuais é impraticável no uso diário, quando muitas vezes temos pressa para abrir documentos, instalar aplicativos ou descompactar arquivos, mas talvez seja mais adequado para uso em laboratório, onde pesquisas e análises mais avançadas podem ser feitas.
As técnicas heurísticas contra malware
A terceira técnica é baseada em métodos heurísticos que tentam prever a bondade ou não do arquivo analisado . O que é uma heurística? Geralmente, em pesquisa operacional, um método heurístico é um algoritmo capaz de chegar a uma boa solução (não necessariamente ótima, que é o melhor que poderíamos produzir) em menos tempo do que um método clássico. Esta abordagem é particularmente eficaz para os chamados problemas NP-Completos, ou seja, problemas particularmente complexos que exigiriam tempos de resolução e capacidade computacional muito altos, mas que podem encontrar uma resposta com esses algoritmos.
Na realidade dos antivírus com técnicas heurísticas entendemos principalmente os métodos de Aprendizado de Máquina que têm o objetivo de classificar um determinado arquivo na categoria de vírus ou arquivos confiáveis. A análise é baseada principalmente em algumas características típicas, tais como: sistema ou chamadas API, a análise do gráfico de fluxo de controle, bem como, em um nível inferior, a análise de códigos operacionais, ou seja, códigos em nível de máquina que identificam a operação para ser executado.
Com base na técnica de classificação utilizada (como Naïve Bayes) e no refinamento dos algoritmos de classificação utilizados, obteremos uma previsão que é muito mais sensível à realidade. Além disso, a abordagem heurística é particularmente válida em casos de vírus polimórficos , que são capazes de alterar seu código. O algoritmo é capaz de avaliar até mesmo uma correspondência parcial no código do aplicativo, o que permite ativar os alarmes necessários e alertar o usuário do perigo potencial. A maior desvantagem, entretanto, reside na dificuldade de prever um vírus com certeza e potencialmente gerar falsos positivos que afetam o funcionamento normal de nós, usuários.
Antivírus em comparação
Desde o início desta análise, dissemos que esses programas ainda são bastante desconhecidos para os usuários finais. No entanto, estudos recentes como o liderado pelo grupo Politecnico di Milano visam lançar luz sobre as diferentes implementações por meio de inferências baseadas nos resultados obtidos pela análise do mesmo malware com aplicativos diferentes. O framework que criaram permite-nos compreender o comportamento do antivírus na presença de diferentes aplicações, avaliando a sua capacidade de resposta, mas sobretudo a aplicação de uma técnica e não de outra.
Concluindo, portanto, essas ferramentas extremamente fascinantes para os amantes da segurança cibernética ainda permanecem um tanto obscuras, mas temos cada vez mais conhecimento para avaliar suas capacidades e tecnologias. Talvez em um futuro não muito distante também tenhamos um padrão aberto que nos permite alinhar tecnologias e fornecer ferramentas cada vez mais eficazes. Por outro lado, o lema " Segurança através da obscuridade " é fortemente desencorajado para garantir altos níveis de segurança em nossos sistemas!
Artigo por Nicola Fioranelli
O artigo Antivírus: na trilha do malware, mesmo com técnicas heurísticas, vem do Tech CuE .