Total Pageviews

Blog Archive

Procura neste Blog

ITO-NeTthings. Com tecnologia do Blogger.

Blogs de Portugal

Como um antivírus detecta um ficheiro infectado?

Como um antivírus detecta um ficheiro infectado?
Share it:
Isto pode variar de antivírus para antivírus mas essencialmente existem duas estratégias para detectar ficheiros infectados.

Como um antivírus detecta um ficheiro infectado?

Que fique claro que os antivírus não precisam e não se preocupam com o código fonte das aplicações ou pelo menos aparentam.

Existem então principalmente duas estratégias para detectar um vírus:

Assinatura no código executável

Procurar por uma assinatura no código executável. O antivírus verifica se tem uma certa sequência de bytes que é sabido anteriormente que aquilo é um vírus.

Padrões de Código

Outra forma que os antivírus analisam é verificar se há determinadas APIs ou padrões de código que de uma certa forma que podem ser usadas para causar problemas. Por isso é que há falsos positivos em certas aplicações.

Certamente que há outras estratégias, verificar algo durante uma execução é possível ou poder interceptar certas chamadas de APIs.

Todas instruções que um processador executa e tudo o que a aplicação invoca na aplicação está codificado num binário. Todos aqueles bytes tem um significado que pode ser entendido por quem sabe (o processador por exemplo), não é algo aleatório ou encriptado.

Se o código é compilado, não dá para saber como foi escrito, como os antivírus sabem que ele pode ser perigoso?

Dá para saber como ele está escrito (em forma binária), não dá para saber o exacto código fonte que originou este binário.

Descompilar

Tu não consegues saber o código fonte de um programa que tens no computador, mas é possível obter algo próximo ao código fonte que gerou aquele binário.

Não obterás algo igual, faltaram comentários, nomes de símbolos locais, e talvez até símbolos públicos modificados, e o fluxo exacto não será o mesmo, apenas criará o mesmo resultado.

Descompilar é especialmente possível em linguagens que usam bytecodes e metadados. Mas quando o código é ofuscado torna-se bem mais difícil conseguir resultados usáveis.

Mas não é exactamente um processo fácil e está longe de gerar bons resultados na maioria dos casos.

O objectivo do antivírus não é obter o código fonte, é apenas entender o que o binário faz.

Protecção de fonte

É possível roubar código de qualquer aplicação mas é preciso entender esse mesmo código e hoje em dia já existe sistemas de patentes e protecção de código.

Um código bom é demasiado complexo para se entender e os especialistas não se interessam muito em roubar aquilo ou simplesmente não vale a pena o trabalho.

Por isso os antivírus utilizam essencialmente aquelas duas estratégias.

Apenas uma curiosidade.
Share it:

info

Post A Comment:

0 comments: