Vírus & Malware
Por Ivo Correia

            Um vírus de computador é um programa que automaticamente cria cópias de si mesmo e infecta computadores e sistemas sem permissão ou conhecimento do utilizador, podendo o vírus original modificar estas cópias ou as próprias cópias modificarem-se.
            Um vírus só se pode espalhar de um computador para outro quando o seu hóspede (um ficheiro) é levado para um computador não infectado, através de, por exemplo, uma rede de trabalho, a Internet ou um disco amovível ou CD.            Os vírus são muitas vezes confundidos com worms ou os "Cavalos de Tróia". Um worm pode espalhar-se para outros computadores sem que o ficheiro hóspede seja transferido, enquanto um "Cavalo de Tróia" é um ficheiro que parece inofensivo até ser executado. No entanto, algumas fontes usam uma terminologia alternativa e denomina por vírus toda a espécie de código maligno que se auto-replica.
            Hoje em dia, os vírus também podem tomar vantagens dos serviços de rede existentes, tal como a World Wide Web, e-mails e sistemas de partilha de ficheiros para se propagarem, atenuando a linha que distingue vírus de worms.
         Alguns vírus são programados para prejudicar, danificar computadores atacando alguns programas, apagando ficheiros ou formatando o disco rígido. Outros, são programados não para danificar o computador, mas sim difundir texto, vídeos, hiperligações ou mensagens áudio. Mesmo estes vírus benignos podem criar problemas ao utilizador, pois ocupam ilegitimamente parte da memória disponível, causando comportamentos estranhos ou mesmo falhas no sistema.

História

            O vírus Creeper (Rastejador, numa tradução livre) foi detectado pela primeira vez na ARPANET, nos inícios dos anos 1970’s. Propagava-se através do SO TENEX e podia usar ligações via modems para se conectar a outros computadores e infectá-los, exibindo em cada sistema a seguinte mensagem: "I’M CREEPER: CATCH ME IF YOU CAN." ( "Eu sou o Creeper: apanha-me se conseguires"). Diz-se que o programa Reaper, que a apareceu pouco tempo depois e o qual procurava e eliminava cópias deste vírus, foi lançado pelo próprio criador do Creeper, depois de se arrepender da sua criação.
             

Por sua vez, o Elk Cloner foi dos primeiros vírus a infectar computadores sem recorrer a redes entre sistemas. Criado em 1982 por Richard Skrenta, ligava-se ao Apple DOS 3.3 e transmitia-se através de disquetes. Este vírus era, de início, uma mera ‘brincadeira", criado por um estudante secundário e transformado num jogo. O disco rígido apenas poderia ser acedido (e consequentemente iniciado o jogo) 49 vezes. Há 50º vez, em vez do habitual jogo, o ecrã ficava completamente preto, mostrando apenas um poema, redigido em letras brancas e intitulado de Elk Cloner, infectando o computador. O primeiro vírus de PC chamou-se Brain, criado em 1986 por dois irmãos paquistaneses, com a intenção de danificar sistemas nos quais houvesse cópias piratas do software por si criado.             

        Antes do desenvolvimento das redes de trabalho, a maior parte dos vírus espalhavam-se recorrendo a discos amovíveis, em especial as disquetes, o meio mais utilizado entre os primeiros computadores pessoais. Os vírus multiplicavam-se infectando os programas armazenados nestes discos enquanto outros instalavam-se no Boot Sector, assegurando que seriam executados sempre que o utilizador recorresse a estes discos.
            A popularização da troca de software contribuiu directamente para a propagação dos "Cavalos de Tróia", sendo este malware escrito para afectar o software mais popular e mais trocado entre utilizadores. Deste modo, aqueles que procuravam obter cópias ilegais das novas aplicações e jogos, tornaram-se presas fáceis para os piratas informáticos.
            Desde os anos 90, os macro virus tornaram-se bastante comuns para as linguagens de codificação de programas da Microsoft, como o Word e Excel. Como ambos os programas estão disponíveis para os sistemas operativos da Macintosh, muitos destes vírus podem também afectar os computadores destas companhias. Apesar de a maior parte não ter a capacidade de enviar e-mails infectados, muitos recorrem a outros programas para o fazer.

 Os vírus das macros apresentam grandes problemas para o software de detecção. Por exemplo, algumas versões do Microsoft Word permitem às macros multiplicarem-se, adicionando novas linhas de código em branco. Estes vírus comportam-se de maneira idêntica, sendo assim possível que não sejam reconhecidos como tal.
            Noutro exemplo, se dois vírus de macros infectarem simultaneamente um documento, a combinação dos dois, apareceria como um novo vírus, diferente daqueles que lhe deram origem.
            Os vírus também podem enviar endereços electrónicos em forma de mensagens instantâneas para todos os contactos do computador infectado. Se o receptor, pensando tratar-se de uma mensagem de uma fonte segura, aceitar e usar este link, o vírus hospedado no site poderá infectar este computador e continuar a espalhar-se para novos contactos.
            Outros, por seu lado, usam sites já existentes, muitas vezes famosos e utilizados por milhões de pessoas, para se propagarem, recorrendo a técnica de cross-site scripting.

 

Estratégias de multiplicação

            Para se reproduzir, um vírus tem de ter a possibilidade de executar códigos e escrever na memória do sistema. Assim, muitos vírus anexam-se a ficheiros executáveis que podem fazer parte de software legal e se o utilizador tentar iniciar este software, o código do vírus pode ser executado primeiro. Os vírus podem ser divididos em duas categorias, tendo em conta o seu comportamento quando executados. Os vírus não-residentes procuram de imediato outros servidores ou hospedeiros como alvos potenciais, infectando o mais rapidamente possível e tomando controlo sobre os programas infectados. Por seu lado, os vírus residentes apenas se focam no sistema que foram instalados, procurando afectar e controlar o maior número de aplicações.

Vírus não-residentes

            São constituídos normalmente por dois módulos que trabalham em conjunto. Um dos módulos varre o sistema em busca de novos hóspedes e quando encontra um alvo, transmite-lhe a informação ao segundo modulo para que este possa efectuar a replica e infectar o novo ficheiro.

Vírus residentes

            Por seu lado, os vírus residentes contêm módulos de réplicas parecidos com os módulos presentes nos vírus não-residentes. No entanto, estes vírus não procuram novos ficheiros executáveis para infectar, carregando em vez o módulo de réplica para a memória principal e infectando unicamente os programas que são executados pelo sistema. Desta forma, é o utilizador que muitas vezes escolhe inconscientemente os programas que serão danificados.
            Por outro lado, estes vírus ainda podem ser divididos em duas subcategorias, de rápida ou lenta propagação. Os infectantes rápidos procuram espalhar-se o mais rapidamente possível por todas as partes do sistema. Por exemplo, um vírus de infecção rápida pode danificar todos os potenciais hospedeiros a que acedem, criando sérios problemas aos anti-vírus. Este perigo prende-se ao facto de que para se efectuar o scan ao computador, o anti-vírus tem de obrigatoriamente executar o ficheiro em questão. Consequentemente e uma vez que analisa todos os programas potencialmente hospedeiros de vírus, se falharem na detecção de um vírus, permitem que este se propague aos ficheiros posteriormente analisado. Apesar de se propagarem mais rapidamente, poderão, pelo mesmo motivo, ser melhor detectados, pois irão abrandar o sistema e executar demasiadas acções suspeitas.
            Os infectantes lentos, por seu lado, limitam o seu campo de acção, infectando ficheiros em períodos mais irregulares. Como exemplo, apenas se multiplicam em ficheiros que são copiados e não em todos que são executados. Apesar de serem menos facilmente detectados pelos anti-vírus, já que não efectuam tantas acções suspeitas, este tipo de vírus é apontado como um meio com menos sucesso do que os vírus de rápido propagação.

 

Hospedeiros

 

Os potenciais alvos dos vírus são inúmeros, numa escala deveras assustadora. Entre estes, contam-se os ficheiros executáveis, pastas presentes em disquetes ou discos amovíveis, as memórias principais e secundárias do computador, os ficheiros de encriptação, aplicações, macros de alguns programas ou sites vulneráveis.

Apesar disso, há tipos de ficheiros que são inóspitos para um vírus. Refira-se os ficheiros áudio (MP3, OGG), imagens (JPG, GIF, PNG), vídeo (MPG) ou os famosos PDF’s. Isto acontece porque mesmo que um vírus infecte estes ficheiros, ficaria inoperacional, uma vez que seria impossível executar o código do vírus. Uma excepção deve ser feita aos PDF’s, que, tal como os sites escritos em código de HTLM, não afectam directamente o sistema, mas podem endereçar os utilizadores para fontes código malicioso que por sua vez, irão utilizar um outro programa do sistema para se executar e desta forma, multiplicar-se.

 

 

Muitas vezes, os piratas disfarçam os vírus para criar armadilhas aos utilizadores mais incautos. Por exemplo, no nome do próprio vírus, inserem a designação de PNG (exemplo: VÍRUSPNG.EXE), esperando que os utilizadores mais distraídos possam não reparar que não estão a lidar com um ficheiro de imagem, e logo, seguro, mas sim com um executável.

 

Métodos para evitar a detecção

 

De modo a escaparem ao controlo dos utilizadores e dos anti-vírus, os vírus utilizam vários métodos para evitar a sua identificação e posterior remoção.

Alguns vírus mais antigos asseguravam que a data da última modificação registada do ficheiro não fosse alterada aquando da infecção. No entanto, esta técnica é apenas uma distracção para o utilizador, já que os anti-vírus não se deixam “enganar” tão facilmente.

Outros, por seu lado, tentam não ocupar demasiado espaço, aproveitam-se das linhas de código em branco das aplicações para não alterarem as dimensões no ficheiro no disco nem danificarem ou modificarem algumas configurações dessa mesma aplicação. Alguns vírus tentam ainda anular precocemente as acções dos antivírus antes que estes os possam detectar.

            Enquanto os computadores e os SO crescem e se tornam mais complexos, alguns destes métodos tornam-se obsoletos e precisam de ser renovados, o que implica que a defesa de um sistema contra ataques de vírus se aproxime cada vez mais de uma lista de permissões explícita e detalhada acerca de todos os tipos de acesso a todos os tipos de ficheiros.

 

Hóspedes indesejáveis

 

            É indispensável a um vírus infectar novos hóspedes para se propagar num sistema. No entanto, existem ficheiros a evitar se não procuram uma rápida detecção da sua presença.

            A maior parte dos anti-vírus analisam regularmente a integridade do seu código, detectando imediatamente a presença de código maligno caso este tenha sido alterado. Deste modo, os vírus são programados para evitar a infecção deste software ou outro tipo de ficheiros–isco, criados por anti-vírus ou profissionais com o objectivo principal de apanhar em armadilhas programas indesejáveis.

            Estes iscos tornam-se bastante úteis para os profissionais, uma vez que podem permitir encontrar cópias dos vírus, estudar o seu comportamento e métodos para evitar a detecção ou então comprovar a eficiência do scanner ao sistema.

            Para responder a estas medidas, os vírus tomam estratégias de modo a evitar ficheiros perigosos para a sua existência, normalmente programas de pequenas dimensões ou que contenham padrões de código desnecessário.

            Por outro lado, ainda podem usar técnicas de limitação da sua previsibilidade, infectando ficheiros em determinados dias da semana, e não segundo o grau de benefício que a infecção desses programas traria para a sua subsequente multiplicação.

 

Auto-modificações

 

            A maior parte dos antivírus tentam fazer detecções de código maligno procurando as chamadas “assinaturas dos vírus”. Uma assinatura são padrões característicos de código pertencentes a um vírus ou uma família de vírus, redigidos num ficheiro quando infectam novos programas. Se um anti-vírus detectar este padrão, pode facilmente identificar o ficheiro como estando infectado.

            No entanto, muitos vírus passaram a modificar o seu próprio código e assinaturas aquando de uma nova infecção, de modo a evitar esta detecção e resultando na criação de inúmeras variantes do mesmo vírus.

 

Vulnerabilidades de um Sistema Operativo e como combatê-las

 

            O grau de destruição que um vírus pode causar depende muito sobre que tipo de programas ele pode actuar. Consequentemente, quanto maior for a diversidade dos sistemas, menor será o risco de um vírus os poder infectar a todos simultaneamente.

            Desta forma, a expansão e supremacia dos sistemas da Microsoft a partir dos anos 90 veio dar um grande impulso à criação de vírus. Assim, a maior parte dos vírus escritos hoje em dia têm como alvo os sistemas operativos Windows, em detrimento de outros, como os Macintosh. Por outro lado, os sistemas da Microsoft são ainda apontados como muito menos seguros, pois possuem demasiadas falhas que podem ser exploradas pelos piratas informáticos. Para além disso, ainda funcionam em código fechado (não disponível ao público em geral), dificultando a eliminação destes mesmos erros. Em consequência destas falhas, os utilizadores recorrerem a software auxiliar, mais concretamente os anti-vírus.

            De modo a salvaguardar os dados do disco rígido, também se recomenda a criação de backups (cópias de segurança), não só no próprio disco mas especialmente em formatos exteriores (como os CD’s ou DVD’s), preferencialmente naqueles que uma vez gravados, apenas possam ser lidos, impossibilitados que os vírus consigam infectar estas cópias.

            Por fim, ainda se pode recorrer a instalação de diferentes sistemas operativos num computador, pois é improvável que um vírus consiga afectar ambos.

 

Recuperação e remoção de vírus

 

            Quando um vírus infecta um computar, é possível apagá-lo do sistema. Se um anti-vírus detectar a presença de programas infectados, informa o utilizador e poderá tentar recuperar os ditos ficheiros, sendo possível ter de removê-lo caso a operação de limpeza se torne impossível.

            Alguns sistemas ainda permitem o restauro de sistema, isto é, reescrevem os ficheiros críticos do sistema de acordo com uma cópia de segurança feita anteriormente. Os restauros apenas funcionam se os vírus não estiverem programados para infectar as próprias cópias ou desactivarem estas opções e comandos.

            Em casos extremos, poderá ser necessário recorrer a uma formatação do disco duro. A formatação completa apagará todos os dados guardados na memória, sendo depois preciso proceder a reinstalação de todos os programas, incluindo o próprio sistema operativo.