UCAN forum

Primeiro Forum criado por Informáticos Angolanos, destinado à informáticos de todos os níveis, tendo como principal foco o ramo da PROGRAMAÇÃO.Tutoriais, Exposição de dúvidas, Notícias e muito mais...
 
InícioInício  CalendárioCalendário  FAQFAQ  BuscarBuscar  Registrar-seRegistrar-se  Conectar-seConectar-se  

Compartilhe | 
 

 Detecao de Virus

Ver o tópico anterior Ver o tópico seguinte Ir em baixo 
AutorMensagem
JomarB

avatar

Masculino Número de Mensagens : 49
Idade : 27
Localização : Luanda, Angola
Emprego/lazer : Programar
Data de inscrição : 12/05/2008

MensagemAssunto: Detecao de Virus   Dom Ago 17, 2008 7:21 pm

Técnicas para detecção de vírus

Nos últimos anos, as empresas de antivírus precisaram se esforçar ao máximo para criar novas tecnologias de detecção de vírus. Os antivírus dos anos 80/90 utilizavam técnicas muito diferentes dos atuais. Um exemplo é o modo como são pesquisados os arquivos. Antes, o espaço em disco era limitado a 32 MB, e isso forçava o usuário a possuir poucos dados. Com isto, os antivírus não tinham tanta preocupação em otimizar suas pesquisas, pois rapidamente faziam uma pesquisa completa no HD. Outra peculiaridade era que a contaminação de arquivos estava limitada a poucos tipos de arquivos, tais como .COM e .EXE, e outros poucos métodos de infecção, como o boot e o MBR.

A evolução foi inevitável. Os discos passaram a suportar dezenas de gigabytes, e diversos outros formatos de arquivos puderam ser vítimas de infecções como, por exemplo, .DOC, .XLS, .VBS, etc. Isto fez com que os antivírus mudassem radicalmente os métodos de pesquisa, já que precisariam melhorar a performance e dar suporte a identificação e remoção de vírus em diversos formatos de arquivos. Um exemplo simples de otimização foi a necessidade de separar os tipos de vírus e os tipos de infecções, pois não existe necessidade, por exemplo, de um vírus que infecta arquivos .EXE ser procurado em arquivos do Word ou Excel, e vice-versa.

Atualmente, a maioria dos vírus ainda é detectada através de assinaturas binárias - pequenos blocos de dados utilizados para identificar um determinado vírus. Entretanto, com a maior abrangência dos vírus, foi necessário o desenvolvimento de novas técnicas para identificação, nos casos em que uma pesquisa por assinaturas não era possível. A pesquisa por assinatura é variável conforme o antivírus mas, em geral, são usados de 2 a 255 bytes para identificar um determinado vírus. Como exemplo de detecção de vírus por assinatura, vamos usar um arquivo de teste, chamado EICAR, que é um arquivo padrão da indústria para verificação do funcionamento das pesquisas de um antivírus, e seu conteúdo não possui nada que possa danificar dados. O EICAR possui apenas 68 bytes e seu conteúdo total é:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

E o mesmo conteúdo em formato hexadecimal:

58 35 4F 21 50 25 40 41 50 5B 34 5C 50 5A 58 35 34
28 50 5E 29 37 43 43 29 37 7D 24 45 49 43 41 52 2D
53 54 41 4E 44 41 52 44 2D 41 4E 54 59 56 49 52 55
53 2D 54 45 53 54 2D 46 49 4C 45 21 24 48 2B 48 2A

Existem antivírus que pesquisam por todos os 68 bytes para identificar corretamente o EICAR, e isto significa que se algum caracter for modificado, o EICAR não será identificado. Esta situação ocorre também com vírus, de modo que muitas variantes são criadas, modificando-se apenas alguns bytes. Para saber se seu antivírus usa a assinatura completa ou não, altere o conteúdo do EICAR, e faça uma pesquisa com o antivírus. Um exemplo de EICAR modificado:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-ALTERADO !$H+H*

Alguns antivírus usam métodos de pesquisa que podem evitar este tipo de problema, e conseguem identificar um arquivo usando caracteres curingas (? e *) em suas assinaturas:

X5O!P%@AP[4\PZX54(P^)7CC)7}$!$H+H*

Isto significa poder modificar um bloco por qualquer conjunto de caracteres. Com uma assinatura assim, diversos tipos de identificação seriam possíveis:

X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-ALTERADO !$H+H*
X5O!P%@AP[4\PZX54(P^)7CC)7}$ALTERADO!$H+H*
X5O!P%@AP[4\PZX54(P^)7CC)7}$QUALQUER QUANTIDADE DE BYTES!$H+H*

Uma assinatura deve ser bem escolhida, para que sejam evitados falsos-positivos. Os falsos-positivos nada mais são que arquivos "sadios" e que são erroneamente identificados como vírus por um programa antivirus. Usuários comuns não possuem conhecimento necessário para verificar se um arquivo realmente contém vírus ou não. Se um antivírus emite um alerta de infecção em algum arquivo que esteja "sadio", isto poderá causar sérios problemas, pois um arquivo importante poderá ser removido, e o sistema poderá ficar inoperável.

Uma outra maneira de melhorar a performance em pesquisas seria identificar pequenas partes de um arquivo antes de verificar toda a assinatura. Por exemplo, se um arquivo não começa com "X5O!", significa que não é um EICAR e portanto não existe a necessidade de verificar o restante do arquivo por esta assinatura. Deve-se lembrar que, para gerar uma assinatura, é necessário possuir um exemplar do vírus, de modo que ele possa ter seu comportamento estudado através de experimentos de infecção controlada.

Detecção de vírus desconhecidos
Pode-se dizer que atualmente, o que mais preocupa as empresas de antivírus, é a identificação de vírus "desconhecidos", ou seja, vírus novos que ainda não são detectados e/ou que não possuem uma assinatura estudada para o mesmo. Diversos métodos surgiram para tentar conter a constante evolução dos vírus, e conceitos como emulação e heurística passaram a ser obrigatórios nos antivírus.

Heurística
"Heurística" vem da palavra grega "heuriskein", e significa "descobrir". A heurística é uma técnica utilizada para estudar o comportamento, a estrutura e as características de um arquivo, para defini-lo como suspeito ou não. Ela pode fazer com que o antivírus emita muitos falsos-positivos, mas é uma técnica que se mostrou bastante útil para evitar vírus desconhecidos. Em geral, um vírus que infecta arquivos .EXE age da seguinte forma:




Um arquivo .EXE possui um pequeno cabeçalho, um Entry Point - o ponto onde começa a execução de um programa, e o programa propriamente dito. Após uma infecção, o Entry Point é alterado, de forma que passe a apontar para o código do vírus. Após a execução do vírus, este pula para o Entry Point original do programa, fazendo-o funcionar normalmente. Como a grande maioria dos vírus que infectam .EXE trabalha desta forma, a pesquisa heurística poderia ajudar, bastaria verificar se o Entry Point está fora da seção do código do programa ou se o Entry Point é um JMP.

Mas em alguns casos, falsos-positivos são emitidos, pois existem programas comerciais, protetores e compactadores de executáveis que trabalham da mesma forma. Então a heurística, pode ser definida como um complemento da pesquisa, que ajuda na detecção de vírus desconhecidos, mas que não sabe, com certeza, se um arquivo está contaminado ou não, ou seja, heurística não é uma ciência exata. A heurística consegue identificar de 70% a 90% dos vírus conhecidos e desconhecidos. Podemos dizer que é uma técnica excelente, considerando a complexidade do problema.

Emulação
A emulação foi desenvolvida para tentar identificar os complicados vírus polimórficos. Os vírus polimórficos são conhecidos como vírus mutantes, que conseguem modificar a si próprios a cada infecção, dificultando sua identificação. Pesquisas por assinaturas em vírus polimórficos são praticamente inviáveis.

Basicamente, um emulador tenta identificar a rotina de decriptografia do vírus. Quando um vírus polimórfico é executado, primeiramente ele decriptografa seu próprio código executável, usando uma rotina anexada ao próprio vírus. Em alguns casos, uma pesquisa por assinatura poderá ser válida no código da rotina de decriptografia, mas isto não é uma regra. Em muitos casos, os vírus polimórficos ofuscam seu código, usando diversos artifícios para conseguir funcionar, mesmo com um conteúdo diferente em suas novas cópias.

Um exemplo simples: zerar um registrador de diferentes formas, com resultados idênticos.

Instrução Hexadecimal
XOR AX, AX 31 C0
SUB AX, AX 29 C0
MOV AX, 0 B8 00 00

Se o código não for muito modificado, poderemos utilizar a heurística para identificar o vírus. Um bom exemplo do uso de emuladores, serve para o vírus chamado "Simili", que foi descrito na revista "Virus Bulletin" em maio de 2002. Este vírus contém um decriptografador polimórfico que modifica o tamanho e a localização das infecções. Ele "disassembla" seu próprio código para uma forma intermediária, injeta novas instruções e sujeira ao código e "re-assembla", gerando uma nova cópia polimórfica. As novas cópias podem variar de 30 a 120 Kbytes.

Este tipo de vírus é localizado apenas com emuladores, e muitas técnicas são exigidas para identificá-lo. O emulador permite analisar o código disassemblado, adicionar código, criptografar/decriptografar e analisar a probabilidade de uma infecção. Outra maneira de fazer a emulação é interceptar funções da API do sistema operacional ou capturar interrupções do DOS que estejam ligadas diretamente à gravação, leitura ou execução. Se um determinado programa executar uma série de ações suspeitas, o antivírus emitirá aviso de um arquivo suspeito.

Conclusão
Como se pode notar, não existe um método único de detecção para todos os casos. Os antivírus necessitam estar sempre atualizando seus métodos de pesquisa, de modo que possam identificar os novos vírus. Atualmente os vírus se alastram rapidamente, devido à Internet. Muitos aproveitam falhas de softwares e vulnerabilidades do sistema para conseguirem se alastrar. Este tipo de ação forçará as empresas de antivírus a criar novos mecanismos para barrar esta forma de ataque. A escolha de um bom antivírus é essencial. Entretanto, não devemos confiar plenamente em um produto antivírus, pois novos vírus são lançados diariamente, muito mais complexos e usando novas técnicas antidetecção. A melhor maneira de evitar vírus, é usar o computador com bom-senso:

* Evitar abrir e-mails com attachments;
* Não deixar que o boot seja feito por disquetes;
* Evitar softwares piratas;
* Desconfiar de arquivos com duplas-extensões, como: .txt.exe ou .jpg.vbs;
* Manter atualizações de softwares e segurança em dia;
* Quanto mais pessoas tiverem acesso a um mesmo computador, mais chance de ser infectado. Evite troca de dados com computadores "públicos".
Voltar ao Topo Ir em baixo
Ver perfil do usuário
 
Detecao de Virus
Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo 
Página 1 de 1
 Tópicos similares
-
» Virus finalmente! [meu jogo]
» Antivirus dos usuarios, alegando virus ao abrir link do fórum
» Detecção de virus
» Virus no forum
» Virus no fórum

Permissão deste fórum:Você não pode responder aos tópicos neste fórum
UCAN forum :: Programação e Informática Geral :: Dicas e Diversos-
Ir para: