Olá pessoal!
No último post um colega levantou uma questão sobre os antivírus não detectarem vírus em alguns programas.
Ele tem razão.
Mas você sabe porque?
Não pretendemos aqui esgotar o assunto, mas vamos tratar o caso mais comum: um arquivo executável infectado com vírus.
Primeiro vamos estabelecer o seguinte:
1 - é
impossível ler um executável. Você não consegue abrir um executável no
word ou no notepad para ver o que tem dentro. Ele é codificado, e é
justamente esta codificação que permite que ele seja executado pelo
sistema. A codificação é feita em um processo chamado compilação, no
qual você pega o código fonte, este sim legível, e gera o executável.
Existem algumas técnicas de engenharia reversa para tentar "descompilar"
um executável, mas nenhum antivírus faz isso.
2 - nem tudo é
vírus. Quando você usa o Gmail ou o Latitude, informações suas são
capturadas e enviadas para a Google, mas não há nada de malicioso nisso,
pois estava tudo claramente descrito nos Termos de Uso que você leu e
aceitou (você leu né?).
Vírus, ou
Malware como eu prefiro, é um código, um programa, ou uma parte de um
programa, que usa de artifícios para fazer algo que você não autorizou,
como por exemplo, ser executado disfarçado dentro de um jogo, capturar
tudo o que você digita e enviar para hacker@deusmelivre.com, ou
criptografar todo o conteúdo da pasta Meus Documentos e depois mandar um
email pra você dizendo "paga milão que eu te falo a senha".
Ok?
Vamos em frente...
Os antivírus dispõem basicamente de duas maneiras para reconhecer um vírus: Assinatura e Heurística.
Como mais de 90% dos vírus são reconhecidos por assinatura, vamos deixar a heurística para outro post.
Essa tal assinatura é o seguinte.
Digamos que a cada letra do alfabeto corresponde um número: a=01, b=02, c=03, e assim por diante.
Imagine que
você tem um texto qualquer. Uma frase. Você pega uma por uma as letras
que formam esta frase e executa uma operação matemática com o valor a
que ela corresponde, por exemplo, somar os valores das letras.
No final dos cálculos você irá obter um número.
Este número seria a "assinatura" da frase, pois se mudarmos uma letra na frase o resultado final também mudará.
Tecnicamente, a operação matemática se chama ALGORÍTIMO, e o número resultante dela é o HASH.
No nosso mundo de TI, os algorítimos mais comuns são o MD5 e o SHA, que produzem hashes semelhantes a isso:
6559f1c832e7a6dda1ee7485073743d5 (MD5)
67827fb805c4ad04fd9f1c6f0f22cd731d6a21754438c9af7791f9f1c6ebf092 (SHA256)
Para que um
algorítimo seja bom é muito importante que origens diferentes não possam
gerar o mesmo hash, que é o que chamamos de colisão de hash.
Tá acompanhando?
Então vamos adiante.
Quando você
atualiza seu antivírus, o que você faz é download de um arquivo contendo
uma lista enorme de hashes de arquivos identificados como vírus, que é a
tal da "pattern". Um banco de dados de hashes de vírus.
E quando você
faz uma varredura, o que seu antivírus faz é aplicar o algorítimo a
cada arquivo do seu disco, e comparar o resultado com a pattern. Se o
resultado for encontrado é virus, senão... não é.
Simples não é?
Pois é... Mas vamos aos problemas...
Você sabe quantos arquivos existem no seu micro?
Num micro
típico, apenas com Windows e Office, são cerca de 100mil, e se você tem
mais uma dúzia de programas instalados e o computador está em uso a mais
de 1 ano, este número deve ter passado de 1milhão de arquivos.
E tem ainda os arquivos da rede... sabe quantos temos?
Só arquivos .exe no nosso servidor são cerca de 135mil.
A esta altura
você já deve ter percebido que o tal banco de dados de hashes de vírus,
deveria ter o hash de cada um destes arquivos. Não só os do meu micro,
do seu micro, e do servidor, mas de todos os arquivos existentes no mundo.
Você acha que ele tem isso?
Pois é... não tem.
E é por isso que em alguns casos os antivírus não detectam um vírus.
Na prática,
para que o hash de um vírus passe a integrar esta base de dados, é
necessário que alguém envie ao fabricante do antivírus o arquivo que
supostamente é o vírus. Sem isso o fabricante não pode fazer a análise,
confirmar que é vírus, gerar o hash para colocar na base de dados, e
trabalhar em uma vacina.
Mas o caos não termina ai...
Se eu alterar um único bit no arquivo, altera-se completamente o hash, e o que acontece...
ISSO MESMO!!!
O antivírus não vai detectar novamente.
Que encrenca não é?
É quase desanimador... Mas... se é ruim com ele, sem ele é muito pior!
Então por mais que o seu antivírus seja falho, mantenha ele instalado e sempre atualizado!
Até o próximo!
Nenhum comentário:
Postar um comentário