|
No mercado mundial,
e também no Brasil, existem à disposição dos usuários mais
conscienciosos com a segurança de seus dados e programas,
uma infinidade de pacotes para garantir a tranqüilidade
de todos. Alguns desses pacotes tem pouca penetração no
mercado mundial, ficando restritos a algum país ou região
geográfica. Outros entretanto se encontram em qualquer lugar
do mundo.
Os programas anti-vírus
agem, principalmente, lançando mão de 4 formas diferentes,
para conseguir detectar o máximo de vírus possível. Abaixo
resumimos - de forma bem resumida - esses métodos.
Escaneamento
de vírus conhecidos
Este é o método mais
antigo, e ainda hoje um dos principais métodos utilizados
por todos os programas anti-vírus do mercado. Envolve o
escaneamento em busca de vírus já conhecidos, isto é aqueles
vírus que já são conhecidos das empresas de anti-vírus.
Uma vez que as empresas recebem uma amostra de um vírus
eles o desassemblam para que seja separada uma string (um
grupo de caracteres seqüenciais) dentro do código viral
que só seja encontrada nesse vírus, e em nenhum programa
normal à venda no mundo. Essa string, uma espécie de impressão
digital do vírus, passa a ser distribuída semanalmente pelos
fabricantes, dentro de suas vacinas.
O "engine" do anti-vírus usa esse verdadeiro banco-de-dados
de strings para ler cada arquivo do disco, um a um, do mesmo
modo que o sistema operacional lê cada arquivo para carregá-lo
na memória e/ou executá-lo. Se ele encontrar alguma das
strings, identificadoras de vírus, o anti-vírus envia um
alerta para o usuário, informando da existência do vírus.
Esse método não pode, entretanto,
ser o único que o anti-vírus deva utilizar. Confiar apenas
no conhecimento de vírus passados, pode ser pouco, deixando
o usuário totalmente à descoberto quanto a novos vírus.
Assim os fabricantes de anti-vírus passaram a utilizar de
métodos adicionais, que permitissem detectar vírus novos,
onde o escaneamento citado neste tópico não está ainda disponível.
Sensoreamento
Heurístico
Os programas anti-vírus
agora lançam mão do sensoreamento heurístico, isto é, a
análise do código de cada programa que esteja sendo executado
em memória (lembrete: todos os programas são executados
em memória RAM!), ou quando um escaneamento sob demanda
for solicitado pelo usuário. O "engine" varre
os programas em busca de códigos assembler que indicam uma
instrução que não deva ser executada por programas normais,
mas que um vírus pode executar.
Um exemplo seria a descoberta de uma instrução dentro de
um arquivo que faça uma chamada para a gravação dentro de
um arquivo executável.
Este é um processo muito complexo, e sujeito a erros, pois
algumas vezes um executável precisa gravar sobre ele mesmo,
ou sobre outro arquivo, dentro de um processo de reconfiguração,
por exemplo. O próprio programa anti-vírus deve pesar muito
bem o risco/autenticidade desse tipo de instrução, antes
de soar o alarme. Além disso, ou por culpa disso, o usuário
deve compreender que em algumas situações poderá receber
falsos alarmes - o que no jargão do mercado é chamado de
FALSO POSITIVO (um aviso de vírus é dado, mas ele na verdade
é falso - isto é: não é verdadeiro).
Os anti-vírus devem
monitorar constantemente as operações que são executadas
a cada instante no computador, visualizando acessos a arquivos
e sinais de atividades suspeitas, tal como um arquivo tentando
se auto-copiar em outros arquivos.
Embora sujeitas a erros, como aliás nós ficamos quando vemos
uma pessoa desconhecida se aproximar de uma criança. Como
avaliar com certeza se essa pessoa tem ou não boas intenções
nesse acesso à criança?
Busca Algorítmica
Alguns programas anti-vírus
usam uma tática diferente das anteriores, através da aplicação
de algoritmos descritos em suas vacinas.
Vamos dar um exemplo. A busca à string 0A071A20 para detectar
um vírus fictício:
SE este é arquivo de extensão COM
E SE ele tem mais de 900 bytes
E SE há uma instrução de salto para 597 bytes antes do final
do arquivo
E SE a string 0A071A20 aparece nesta localização
ENTÃO abra uma janela de alerta "Vírus XXYYZZ.597 foi
encontrado"
Esse método é mais
eficaz que o primeiro método, porém leva a um código muito
maior para as vacinas e engines, além de consumir maior
tempo para escanear todo o computador.
Checagem de
Integridade
Além dos métodos de
escaneamento existem outras técnicas possíveis, tal como
a técnica de checagem de integridade. Essa técnica cria
um banco-de-dados, com o registro dos dígitos verificadores
para cada arquivo existente no disco, que é salvo no disco
para comparações posteriores.
Mais tarde, quando executada novamente esta checagem, o
banco-de-dados é utilizado para conferir que nenhuma alteração,
nem mesmo de um único byte, seja encontrada. Em se encontrando
algum arquivo que o novo digito verificador não bata com
o gravado anteriormente, é dado o alarme da possível existência
de um arquivo contaminado.
Obviamente o usuário deverá aquilatar
se o real motivo dessa alteração seja devido a uma atividade
suspeita, ou se foi causada simplesmente por uma nova configuração,
efetuada recentemente, e portanto legítima.
Todos esses métodos
têm bom e maus pontos de vista. Para bloquear qualquer possibilidade
de atividade de vírus, os programas de anti-vírus têm de
fazer seu computador até mesmo inconveniente de utilizar.
Mesmo assim você ainda não terá NUNCA a certeza absoluta
da garantia da segurança 100%.
Além disso os vírus, e seus companheiros trojans e worms,
não são a única explicação das causas de perdas de dados
e/ou programas em seu micro. Assim é ESSENCIAL que você
utilize freqüentemente - se possível diariamente - um bom
programa de backup. A única maneira de você poder ter seus
arquivos de volta, com certeza mesmo.
|