ESET Smart Security 5

Mas o que vem mesmo a ser “heurística”?
“Heurística” é uma palavra meio safada. Tenho para mim que a maioria das pessoas que a usa o faz sem ter uma ideia exata de seu real significado. Talvez eu esteja exagerando e só tenha esta impressão porque, confesso, eu mesmo agi assim durante muito tempo, Quando me deparava com ela, consultava o dicionário, não entendia direito o que lá encontrava e, sem tempo para destrinchar a coisa, tocava adiante. E assim continuei até tomar vergonha na cara e decidir descobrir o realmente o quer dizer “heurística”. Conhecimento que agora me disponho a compartilhar com vocês.
“Heurística” é um termo que deriva do grego “heurísko” (cujo significado é “acho”, “descubro”) que, entre outras, originou uma palavra que, garanto, você conhece: “eureca”. Aquela mesma que, dizem, Arquimedes gritou durante um banho de imersão ao descobrir a solução de um problema intrincado. O que dá uma pista do significado de “heurística”: deve ter alguma coisa a ver com a solução de problemas.
E tem.
Antes da definição, porém, vamos a algumas situações práticas.
Por exemplo: você está “enrolado” com um problema abstrato, daqueles bem cabeludos, que não dispõe de um método conhecido para resolver. Então, para organizar as ideias, decide criar um desenho para ajudar a compreensão. Isto feito, observando o esquema (ou gráfico, ou fluxograma ou seja lá qual tenha sido o tipo de desenho a que recorreu), consegue reduzir o grau de abstração, o que torna mais simples encontrar a solução. Este é um método heurístico.
Outro exemplo: você está diante de uma situação complicada e não faz a menor ideia de como as coisas vão se desdobrar e aonde aquilo vai levá-lo. Então, presume que sabe onde vai chegar e vem retornando de lá passo a passo, buscando voltar à situação na qual se encontra. Se conseguir, provavelmente bastará refazer o caminho, agora no sentido inverso, para resolver o problema. Mais um método heurístico.
Uma variante: em vez de supor que tem “a” solução, você imagina um elenco de diferentes soluções e tenta descobrir qual delas faz mais sentido baseado nos dados que dispõe. Outro método heurístico.
[singlepic id=3295 w=320 h=240 float=]
Mais dois exemplos bem conhecidos da busca de soluções recorrendo à heurística: o método da tentativa e erro e o das aproximações sucessivas. O ratinho da figura está tentando um método heurístico para atingir seu alvo.
Eu poderia gastar páginas e páginas descrevendo diferentes métodos heurísticos mas acho que já temos material para entender do que se trata: heurística é a aplicação de diferentes métodos, regras, receitas ou tentativas que podem conduzir à descoberta da solução de problemas quando nos faltam dados ou metodologia para aplicar uma solução já testada e comprovada. Em suma: usa-se a heurística para tentar resolver um problema que não tem forma estabelecida para se chegar a uma solução.
E como aplicar isto na identificação de vírus?
Ora, é fácil (quer dizer, fácil não é a detecção do vírus; fácil é entender como o método heurístico funciona): todo vírus, cavalo de Troia, verme ou similares contém trechos de código que os identificam. Estes trechos são chamados de “assinatura” do vírus e estão armazenados em um banco de dados usado pelo pacote de segurança para identificar o vírus. Se a varredura de um arquivo indicar que ele contém aquele trecho de código, o arquivo está contaminado e ou é eliminado ou vai para quarentena, dependendo do desejo do usuário.
Mas isto não é método heurístico, é aplicação pura e simples da tecnologia de detecção de vírus, ou seja, uma forma estabelecida para chegar à solução.
Agora vamos à heurística. Imagine que sua máquina recebeu um arquivo que acabou de ser examinado pelo módulo de segurança e nele não foi encontrada qualquer assinatura de vírus conhecido. Teoricamente é um arquivo seguro e pode ser liberado. Mas nós sabemos que os desenvolvedores de vírus estão continuamente trabalhando no desenvolvimento de novas cepas, tentando mutações, mexendo aqui e ali para alterar as assinaturas e evitar que o arquivo seja flagrado. O resultado é um arquivo mal intencionado que, por não conter qualquer trecho de código que coincida exatamente com uma das assinaturas catalogadas, engana o módulo antivírus.
A técnica heurística empregada na detecção de vírus consiste então em procurar no interior destes arquivos por trechos de código “parecidos” com assinaturas de vírus conhecidos. É claro que o conceito de “parecido” não é o comumente usado pelos humanos, mas estabelecido por algoritmos (procedimentos encadeados que buscam um determinado fim) específicos executados pela máquina. Se encontrar, há uma boa chance daquele arquivo ser prejudicial e ele deve ser bloqueado e marcado para submetê-lo a um escrutínio mais meticuloso.
Considerando a rapidez com que novas variantes de vírus são criadas, por mais frequentes que sejam feitas as atualizações de assinaturas, a probabilidade de que nossa máquina receba um arquivo contaminado cuja assinatura ainda não foi incluída no banco de dados é razoável. A única forma eficaz de se proteger contra isto é o uso de técnicas heurísticas.
O ESET não é o único software que recorre a este tipo de técnica. Na verdade, todo bom pacote de segurança deve fazê-lo. Mas o ESET é um dos que o fazem há mais tempo e cujo algoritmo vem se aperfeiçoando ao longo dos anos. Eu, usuário antigo do ESET, volta e meia me deparo com uma janela de aviso informando que um arquivo suspeito foi identificado e bloqueado e solicitando permissão para encaminhá-lo para análise (porque eu ajustei o programa assim; se você preferir pode ajustá-lo para encaminhar automaticamente). É a técnica heurística em ação…
E como até hoje nenhuma das máquinas que uso foi contaminada com qualquer programa mal intencionado, tudo leva a crer que o algoritmo heurístico do ESET funciona.
