Muito se tem falado sobre testes, analises, validações de ficheiros entre outros factores em que a industria de AV’s se tem aproveitado, e para isso relembramos um artigo interessante que Larry Seltzer colocou no passado dia 1 de Fevereiro. O artigo intitula-se “Testes SW Mostram Problemas Com Detecções AV” e descreve uma acção que a Kaspersky conduziu, aparentemente interessante, embora um pouco suspeita.
A empresa russa criou 20 ficheiros perfeitamente inocentes e detecções para apenas 10 deles. Afirmaram então que passados 10 dias até 14 outros fabricantes passaram a incluir detecção para estes 10 ficheiros, alegadamente com base nas faltas detecções da Kaspersky.
(Não, a ESET não foi uma destas 14 empresas. Não há uma desculpa de marketing nestes comentários).
De facto, vários fabricantes apenas detectaram um ou dois e não todo o conjunto de ficheiros. Mais, em pelo menos um caso todos os ficheiros foram detectados como “suspeitos” e apenas pelo scanner online dessa empresa.
Então, há realmente um problema? Quando a Virus Total envia uma amostra do que aparenta ser uma detecção falhada pelo motor de verificação de uma empresa, provavelmente não esperam que a empresa simplesmente adicione a detecção sem antes validar a amostra: caso contrário, um falso positivo poderia propagar-se por toda a indústria antivírus num curto espaço de tempo.
[ Há um blog interessante relacionado, da Hispasec, quem fornece o serviço Virus Total]
Mas, como Larry sugere, existem ainda outros factores em jogo, em vez do simples pensamento de que “se a Kaspersky os detecta, devem ser maliciosos”. Com todo o respeito pela empresa, ninguém neste negócio tem escapado sem problemas com falsos positivos, conforme John Leyden também refere no seu artigo do Register.
No blog da Kaspersky, Magnus sugere que isto é mesmo um problema com os testes. Bem, ele tem um ponto. Onde os testes são levados a cabo com conjuntos enormes de amostras e recursos financeiros e de tempo mínimos, é inevitável que alguns testes se baseiam na “reputação da fonte e multi-verificação” em vez da validação manual. Efectivamente, Ján Vrabec referiu problemas com um teste onde um conjunto muito mais pequeno de amostras foi “validado” com base nos resultados de quatro ou mais scanners que detectaram como sendo malicioso.
Contudo, as empresas de AV (e as maiores organizações de testes) de forma geral não se baseiam nestas abordagens. Obviamente, uma proporção significativa de análise num laboratório de vírus tem de ser manual, onde dezenas de milhares de amostras são recebidas diariamente, mas também tem de haver tanta automação quanto possível. Então pode ser que existam muitos factores em conta aqui, como:
- Questões de tempo – uma amostra pode ser incorrectamente detectada num ponto específico por causa da “reputação da fonte” e a detecção removida após uma análise manual. Um relatório de análise da Virus Total é uma imagem num determinado momento do tempo: não deveria ser considerado como uma mancha permanente no registo de uma empresa.
- Os mesmos problemas apontados frequentemente noutros contextos com o uso inapropriado da Virus Total também aqui se aplicam. A VT usa uma bateria de scanners de linha de comando e produtos diferentes geram comportamentos diferentes nos vários contextos. Tendo em conta as questões de tempo acima mencionadas, os números citados neste artigo não parecem ter significar muito.
- Como o Larry sugere, não é desconhecido que uma heurística agressiva possa gerar um falso positivo. E como um porta-voz de outro produto sugeriu, os produtos com uma larga gama de funcionalidades podem reagir de forma diferente consoante as definições de backend, gateway ou desktop estejam activadas.
De facto, o problema que a Kaspersky alertou pode ter efeitos mais prolongados que os que a empresa reconheceu. O artigo de Larry Seltzer parece dizer que, posteriormente, um programa “hello world” gerado pelo mesmo compilador e respectivas definições mas sem detecção pela Kaspersky, também acabou por ser classificado por pelo menos dois programas. Poderá ter sido o resultado de uma implementação de heurística específica para um compilador a causa destes falsos positivos artificiais da Kaspersky? Se sim, a Kaspersky também suporta alguma da culpa.
Lamentável é que, problemas genuínos podem assumir aqui um segundo lugar numa história de “quem copia de quem”. Ao dirigir-se directamente à imprensa e apresentar aos jornalistas executáveis inocentes, encorajando-os para usar o Virus Total (inapropriadamente na nossa perspectiva) para retirarem as suas conclusões, a Kaspersky tornou inevitável o que classificaram como risco. Experimentação reprodutível é uma meta compensadora, desde que a metodologia experimental seja boa, mas será que tal se aplica realmente neste caso?
O problema real aqui é que Magnus está a perpetuar uma falácia já preocupa muitas pessoas na indústria. Ele sugere que o problema reside em testes estáticos, e que a mudança para testes dinâmicos é que vai resolver as coisas. Contudo, tal não é nem o problema nem a cura nestes casos. O problema é não-validação, e a cura é precisamente a validação. Neste momento, muitos testes anunciam ser dinâmicos, porque isso é o que a AMTSO defende. E muito bem, em principio: bons testes dinâmicos têm o potencial para ser mais precisos na eficácia dos produtos que os testes estáticos. Mas bons testes estáticos continuam a ser a melhor abordagem para maus testes dinâmicos, que poucas organizações de testes estão a realizar bem neste momento. Uma parte significante do problema é, infelizmente, ainda a validação.
Este artigo foi escrito por David Harley, Research Fellow & Director of Malware Intelligence na ESET, que publicou vários artigos e livros na área da investigação de malware e escreve em vários blogs de segurança.