dezembro 13, 2012

[Segurança] Quem precisa de antivírus?

A Imperva, em parceria com a Universidade de Tel Aviv, divulgou um estudo chamado "Assessing the Effectiveness of Anti-Virus Solutions" que causou grande furor no mercado, ao dizer que softwares antivírus são ineficazes na detecção de novas ameaças de malware atualmente, e que "o gasto das empresas e consumidores com antivírus não é proporcional a sua eficácia".

De acordo com o relatório a Imperva, as empresas deveriam adquirim produtos gratuitos de antivírus, para que elas pudessem investir em outros modelos de segurança, "investindo em soluções que identifiquem comportamento anormal" (hum, será que ela estaria sugerindo para as empresas usar a verba que gastam com AV para comprar os produtos da Imperva?).

Como não é difícil imaginar, este relatório teve grande repercussão na imprensa e grande reação no mercado, principalmente por parte das empresas de antivírus. Uma das críticas principais diz respeito a metodologia dos testes realizados pela Imperva, que rodou uma coleção de 82 novos tipos de malwares no VirusTotal, que verifica os arquivos em cerca de 40 produtos antivírus diferentes - e a taxa inicial de detecção foi de 5%, ou seja, próxima de zero. Além do mais, os produtos levaram pelo menos quatro semanas para adicionar uma amostra previamente não-detectada em seus bancos de dados. A principal crítica diz respeito justamente ao uso do VirusTutal, pois eles não utilizam uma versão completa dos antivírus (um colega que trabalha em um fabricante me disse, inclusive, que nem utilizam uma versão atualizada das assinaturas, pois os fabricantes sabem que vários ciber criminosos usam o VirusTotal para testar se o código deles está sendo detectado). A ESET é um dos fabricantes que publicou um post no blog deles criticando duramente o relatório da Imperva (vale a leitura!).

O Javvad fez um vídeo divertido satirizando esta história:



Mas, Imperva a parte, periodicamente este questionamento sobre a eficácia das soluções de Antivírus ressurge. Em Abril deste ano o SANS Institute escreveu um artigo questionando isso, baseado em um experimento que eles criaram aonde o antivírus não foi capaz de detectar um conjunto de malwares. Em Junho a universidade de Cambridge, na Inglaterra, também divulgou um estudo criticando os altos gastos com antivírus no país (US$ 170 milhões), que estariam acima dos gastos com o combate ao crime cibernético (US$ 15 milhões)

Na minha opinião, o principal problema é que as soluções de antivírus são reativas: elas são feitas para detectar malwares conhecidos, baseado em uma base de assinaturas gigantesca e análises de comportamento conhecido dos malwares. Por isso, eles não são capazes de detectar um malware novo ou criado especificamente para atacar uma empresa. Afinal, para um determinado malware ser analisado pelos fabricantes e ter sua assinatura incluída na base deles, é necessário que haja um número significante de infecções, que aí também entra o critério de cada fabricante para decidir quando um malware deve ser analisado ou não.

Ou seja, os antivírus são reativos, não estão preparados para nos defender contra novas ameaças, e muito menos para ameaças bem direcionadas.

O Rodrigo Branco (BSDaemon) fez um estudo muitíssimo interessante sobre o modelo de detecção adotado pelos fabricantes de antivírus, que resultou em uma palestra sensacional que ele já apresentou em vários eventos, incluindo na BlackHat e no SegInfo, no Rio de Janeiro. Resumindo em poucas palavras, ele usou uma base gigantesca de malwares que acumulou em parceria com vários fabricantes de antivírus, e decidiu testar a eficácia da detecção destes códigos maliciosos baseado na identificação se eles usam técnicas de anti-análise de malware (como o uso de obfuscação, packers, anti-debugging, detecção de VMs, etc). A conclusão dele é que a grande maioria dos códigos maliciosos podem ser detectados através disso, em vez de usar o modelo tradicional de análise de assinatura. Ou seja, para saber se um arquivo é malicioso ou não, é mais eficaz analisar se ele usa técnicas de anti-análise de malware em vez de verificar o arquivo frente a uma base gigantesca de assinaturas de vírus conhecidos - que é o que a indústria de antivírus faz até hoje.

A conclusão é que a indústria de antivírus se apegou de tal forma ao modelo de assinaturas que, devido ao enorme crescimento da quantidade de malwares hoje em dia (segundo a Symantec, 1 milhão de novos malwares por dia), acabou tornando a solução ineficiente. E, vez de tentar criar uma nova técnica ou estratégia de análise, o que os fabricantes tem feito atualmente é jogar essa base gigantesca de assinaturas "na nuvem", e centralizar esta análise em uma infra-estrutura mais parruda. E aí cria um novo problema: se o seu computador estiver offline, o seu antivírus não consegue analisar o arquivo para decidir se ele é malicioso ou não.

Enfim, a indústria está sentada em cima de um modelo de detecção arcaico, que pouco mudou desde o surgimento dos primeiros antivírus, e que mostra-se insuficiente para as ameaças atuais. Isto, certamente, dá margem para criticarem a eficiência dos antivírus, ainda mais se compararmos com o gasto que empresas e usuários finais tem com eles.

Enfim, quem precisa de antivírus?

Na minha opinião, infelizmente, todo mundo. É um mal necessário. Mesmo que ele não detecte as ameaças mais recentes, ainda assim ele é capaz de detectar muita coisa, o que é importante para garantirmos um nível mínimo de proteção para os usuários finais. Mas isto não significa que a existência de uma solução de antivírus garanta que o usuário esteja totalmente protegido - na minha opinião, ele está "minimamente protegido".

Usar antivírus no computador é como tomar a vacina da gripe: ela te protege contra alguns vírus da gripe, mas não contra novas mutações, nem contra o vírus da catapora.

Eu conheço gente que não usa antivírus, que não paga seguro no carro, que não usa cinto de segurança e sei que existe gente que não usa camisinha, e são felizes assim. Mas eu, particularmente, não recomendo nenhum destes "comportamentos de risco" para ninguém.

4 comentários:

Anônimo disse...

Parabéns por mais este post!

Mas, a respeito da detecção por métodos anti-análise de malware em tese é um bom método, se não fosse por um pequeno detalhe:

- Muitos softwares legítimos e sem intenções maliciosas utilizam "parte" de tais técnicas para dificultar a engenharia reversa de seus softwares, sendo assim forte vetor de falso positivo, que é algo que a indústria de anti-malware tenta evitar ao máximo.

Anchises disse...

Obrigado pelo feedback, Alberto.
Eu concordo em gênero, número e grau com o que você disse. Mas pense bem, é mais fácil e eficiente fazer um whitelist com as aplicações válidas e que usam estas "técnicas de malware" do que ter uma blacklist gigantesca, que é a base de assinatura de vírus.

Unknown disse...

Olá Anchises,

Parabéns pelo excelente post.

Mesmo estando envolvido mais com o mundo Linux sempre recomendo a utilização de AV neste ambiente porque alguns malwares possuem caracteristicas similares, principalmente para servidores web.

Fiz um teste simples entre 3 AVs ( 2 pagos e 1 gratuito ) na detecação de web backdoors e 1 dos pagos ( Symantec ) foi o que teve menor eficácia, enquanto que o gratuito identificou cerca de 80% e o outro identificou 100%.

Apesar de pequeno o teste foi interessante especificamente para a infra estrutura em questão.

A conclusão foi a mesma apresentada por você, o AV continua sendo um mal necessário.

Abração

Alexos

AL. disse...

Esta semana lembrei deste post ao ser envolvido numa conversa sobre o seguinte cenário:

- um malware que o anti-vírus da empresa não detectou e outros endpoint também não detectaram.

O artefato em questão foi empregado num pentest direcionado e suas características não eram muito diferentes de muitos utilitários legítimos, construção que foi adotada de propósito. Se uma regra heurística fosse criada para detectar este tipo de artefato, o número de falsos positivos com outros softwares seriam enormes!

Quanto ao whitelist, em tese a idéia é excepcional se há um completo inventário e controle dos softwares utilizados na organização, se os softwares não se atualizassem e se todos sistemas de atualização tivessem arquitetura que favorecessem a prática e fossem seguros, afinal conhecemos vários casos de hijacking system auto-update. Este também pode-se tornar um "grande vetor de ataque" para ameaças direcionadas, para proteger contra a maioria das ameaças ela é uma técnica interessante.

[]s

Creative Commons License
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of my employee.