Dawkins 2

Os Vírus da Mente (Extrato)

(Richard Dawkins)

[...]

2 - Vírus de computador: um Modelo para uma Epidemiologia Informacional

Vírus de computador são pedaços de código que se enxertam em programas existentes e legítimos e subvertem as ações normais desses programas. Eles podem viajar em disquetes trocados, ou através de redes. Eles são tecnicamente distintos de "worms" [vermes] que são programas inteiros em seu próprio direito, normalmente viajando através de redes. Bastante diferentes são os "cavalos de Tróia", uma terceira categoria de programas destrutivos que não são auto-reprodutores, mas dependem de humanos para reproduzi-los por causa de seu conteúdo pornográfico ou atraente de outras formas. Vírus e worms são programas que de fato dizem, em linguagem de computador, "Duplique-me". Ambos podem fazer outras coisas que fazem sua presença percebida e talvez possam satisfazer a vaidade dos autores deles. Estes efeitos colaterais podem ser "humorísticos" (como o vírus que faz o alto-falante embutido do Macintosh enunciar as palavras "Não entre em pânico", com o previsível efeito oposto); maliciosos (como os numerosos vírus IBM que apagam o disco rígido depois de um anúncio na tela do desastre iminente); políticos (como os vírus Spanish Telecom e Beijing que protestam sobre custos de telefone e estudantes massacrados respectivamente); ou simplesmente inadvertidos (o programador é incompetente para controlar as chamadas de sistema de baixo nível exigidas para escrever um vírus ou worm efetivo). O famoso Internet Worm que paralisou muito do poder de computação dos Estados Unidos no dia 2 de novembro de 1988 não era projetado (muito) maliciosamente mas ficou fora de controle e, dentro de 24 horas, tinha congestionado 6.000 memórias de computador multiplicando exponencialmente cópias de si mesmo.

"Memes agora se espalham ao redor do mundo à velocidade da luz, e se reproduzem a taxas que fazem até mesmo a mosca de frutas e células de fermento parecerem glaciais em comparação. Eles saltam promiscuamente de veículo para veículo, e de meio para meio, e estão provando ser virtualmente impossíveis de colocar em quarentena" (Dennett 1990, p.131). Vírus não estão limitados a mídias eletrônicas como discos e linhas de dados. Em seu caminho de um computador para outro, um vírus pode atravessar a tinta de impressão, raios de luz em uma lente humana, impulsos de nervo óticos e contrações de músculos do dedo. Uma revista de aficcionados por computador que imprimiu o texto de um programa de vírus para o interesse de seus leitores foi extensamente condenada. De fato, tal é a atração da idéia de vírus a um certo tipo de mentalidade pueril (o gênero masculino é usado a conselho), que a publicação de qualquer tipo de informação sobre como projetar programas de vírus é vista imediatamente como um ato irresponsável.

Eu não vou publicar nenhum código de vírus. Mas há certos truques de design de vírus efetivos que são conhecidos suficientemente bem, até mesmo óbvios, que não fará nenhum mal mencioná-los, enquanto eu preciso fazer para desenvolver meu tema. Todos eles se originam da necessidade do vírus para escapar de descoberta enquanto estiver se espalhando.

Um vírus que clona a si mesmo de forma excessiva dentro de um computador será descoberto rapidamente porque os sintomas de congestionamento ficarão muito óbvios para ignorar. Por isto muitos programas de vírus checam, antes de infectar um sistema, para ter certeza se eles já não estão naquele sistema. Incidentalmente, isto abre um modo para defesa contra vírus que é análogo à imunização. Nos dias antes que um programa específico de antivírus estivesse disponível, eu mesmo respondi a uma infecção em meu próprio disco rígido por meio de uma primitiva "vacinação". Em vez de apagar o vírus que tinha descoberto, eu simplesmente incapacitei suas instruções codificadas, deixando a "casca" do vírus com sua "assinatura" externa característica intacta. Teoricamente, os membros subseqüentes das mesmas espécies de vírus que chegaram em meu sistema deveriam ter reconhecido a assinatura do seu próprio tipo e se abstido de tentar infectá-lo novamente. Eu não sei se esta imunização realmente funcionou, mas naqueles dias provavelmente valia a pena "destripar" um vírus e deixar sua casca em lugar de simplesmente isolá-lo. Hoje em dia é melhor entregar o problema para um dos programas de antivírus profissionalmente escritos.

Um vírus que é muito virulento será descoberto rapidamente e será eliminado. Um vírus que imediatamente e catastroficamente sabota todo computador no qual se encontra não se achará em muitos computadores. Pode ter um efeito muito agradável em um computador --- apagar uma tese de doutorado inteira ou algo igualmente frustrante --- mas não se espalhará como uma epidemia.

Então, alguns vírus são projetados para ter um efeito que é pequeno o bastante para ser difícil de detectar, mas que pode mesmo assim ser extremamente danoso. Há um tipo que, em vez de apagar todos os setores de disco, ataca só planilhas eletrônicas, fazendo algumas mudanças aleatórias dentro de quantidades (normalmente financeiras) inseridas em filas e colunas. Outros vírus evadem descoberta sendo ativados probabilisticamente, apagando por exemplo só um em 16 dos discos rígidos infectados. Já outros vírus empregam o princípio de bombas-relógio. A maioria dos computadores modernos está "ciente" da data, e vírus foram ativados para se manifestar ao redor do mundo em uma data particular como uma sexta-feira 13 ou o Dia da Mentira em 1 de abril. Do ponto de vista parasitário, não importa quão catastrófico o ataque eventual é, contanto que o vírus tenha tido bastante oportunidade para se espalhar primeiro (uma analogia perturbadora com a teoria de Medawar/Williams do envelhecimento: nós somos as vítimas de genes letais e sub-letais que só amadurecem depois que nós tenhamos tido bastante tempo para nos reproduzirmos (Williams, 1957)). Como defesa, algumas companhias grandes vão tão longe a ponto de utilizar um "canário de minerador" entre sua frota de computadores, e avançar o calendário interno deste computador uma semana de forma que qualquer vírus bomba-relógio revele-se prematuramente antes do dia fatídico.

Novamente de maneira previsível, a epidemia de vírus de computador desencadeou uma corrida de esforços. Software antivirótico está movimentando um comércio volumoso. Estes programas antídoto -- "Interferon", "Vaccine", "Gatekeeper" e outros --- empregam um arsenal diverso de truques. Alguns são escritos com vírus específicos em mente, conhecidos e nomeados. Outros interceptam qualquer tentativa de intrometimento em áreas de memória de sistema sensíveis e avisam o usuário.

O princípio do vírus pode, teoricamente, ser usado para propósitos não-maliciosos e até mesmo benéficos. Thimbleby (1991) cunhou o termo "liveware" [live = vivo] para seu uso já implementado do princípio de infecção para manter cópias múltiplas de bancos de dados atualizadas. Toda vez que um disco contendo um banco de dados é conectado a um computador, ele confere se já há outra cópia presente no disco rígido local. Se houver, cada cópia é atualizada à luz da outra. Assim, com um pouco de sorte, não importa que membro de um círculo de colegas insira, digamos, uma citação bibliográfica nova em seu disco pessoal. As informações recentemente inseridas dele infectarão os discos de seus colegas prontamente (porque seus colegas inserem promiscuamente os discos deles nos computadores uns dos outros) e se espalharão como uma epidemia pelo círculo. O liveware de Thimbleby não é inteiramente como um vírus: ele não pode se espalhar para o computador de qualquer pessoa e causar dano. Ele espalha dados apenas a cópias já existentes de seu próprio banco de dados; e você não será infectado pelo liveware a menos que você opte positivamente pela infecção.

Incidentalmente, Thimbleby, que está muito preocupado com a ameaça dos vírus, aponta que você pode ganhar um pouco de proteção usando sistemas de computador que outras pessoas não usam. A justificativa habitual para comprar o computador numericamente dominante de hoje é simples e unicamente a de que ele é numericamente dominante. Quase toda pessoa entendida concorda que, em termos de qualidade e especialmente facilidade de uso, o sistema rival, minoritário, é superior. Não obstante, a onipresença é celebrada como benéfica por si mesma, suficiente para superar em valor a mera qualidade. Compre o mesmo (embora inferior) computador que seus colegas, como dita o argumento, e você poderá se beneficiar de software compartilhado e de uma circulação geralmente grande de software disponível. A ironia é que, com o advento da praga de vírus, "benefício" não é tudo aquilo que você pode adquirir. Nós não só deveríamos ser muito hesitantes antes de aceitar um disco de um colega. Nós também deveríamos estar atentos que, se nós nos unimos a uma comunidade grande de usuários de uma particular marca computador, nós também estamos nos unindo a uma comunidade grande de vírus --- até mesmo, podemos descobrir, desproporcionalmente maior.

Voltando a possíveis usos de vírus para propósitos positivos, há propostas para explorar o princípio "trapaceador vira regulador", e "usar um ladrão para pegar um ladrão". Um modo simples seria tomar quaisquer dos programas antiviróticos existentes e carregá-lo como uma "ogiva" em um vírus auto-reprodutor inofensivo. De um ponto de vista de "saúde pública", uma epidemia de propagação de software antivirótico poderia ser especialmente benéfica porque os computadores mais vulneráveis a vírus malignos --- aqueles cujos donos são promíscuos na troca de programas pirateados --- também serão mais vulneráveis à infecção pelo antivírus curativo. Um antivírus mais penetrante pod e--- como no sistema imunológico --- "aprender" ou "evoluir" uma capacidade melhorada para atacar qualquer vírus que encontrar.

Eu posso imaginar outros usos do princípio de vírus de computador que, se não precisamente altruísticos, sejam pelo menos construtivos o bastante para escapar a acusação de puro vandalismo. Uma companhia de computador poderia desejar fazer pesquisa de mercado nos hábitos de seus clientes, com uma visão para melhorar o projeto de produtos futuros. Os usuários gostam de escolher arquivos através de ícone pictóricos, ou eles optam por exibi-los apenas através de seus nomes textuais? Como as pessoas encadeiam suas pastas (diretórios) uns dentro dos outros? As pessoas se contentam com uma sessão longa com só um programa, digamos um processador de textos, ou eles estão constantemente trocando de um lado para outro, digamos entre programas de redigir e desenhar? As pessoas têm sucesso movendo o ponteiro do mouse diretamente ao objetivo, ou eles vagam ao redor em movimentos que desperdiçam tempo que poderiam ser retificados por uma mudança em design?

A companhia poderia enviar um questionário que faz todas estas perguntas, mas os clientes que responderiam seriam uma amostra parcial e, em todo caso, a própria avaliação deles do seu comportamento de uso do computador poderia ser inexata. Uma solução melhor seria um programa de computador de pesquisa de mercado. Seria requisitado que os clientes carregassem este programa no sistema deles, onde ele funcionaria sem obstrução monitorando silenciosamente e contando as teclas pressionadas e os movimentos de mouse. Ao término de um ano, o cliente seria requisitado a enviar o arquivo de disco contendo todos os dados do programa de pesquisa de mercado. Mas novamente, a maioria das pessoas não se aborreceria em cooperar e alguns poderiam ver isto como uma invasão de privacidade e do espaço de seu disco.

A solução perfeita, do ponto de vista da companhia, seria um vírus. Como qualquer outro vírus, seria auto-reprodutor e sutil. Mas não seria destrutivo ou facetado como um vírus ordinário. Junto com seu propulsor auto-reprodutor conteria uma ogiva de pesquisa de mercado. O vírus seria liberado sorrateiramente na comunidade de usuários de computador. Como um vírus ordinário ele se espalharia, à medida que as pessoas trocassem disquetes e e-mails ao redor da comunidade. Enquanto o vírus se espalhasse de computador a computador, construiria estatísticas sobre o comportamento de usuários, monitorado secretamente dos bastidores dentro de uma sucessão de sistemas. De vez em quando, uma cópia dos vírus acharia seu caminho de volta a um dos computadores da própria companhia através de tráfico de epidemia normal. Lá seria examinado e seus dados colecionados com dados de outras cópias do vírus que tenham voltado à "casa".

Olhando para o futuro, não é fantástico imaginar um tempo em que vírus, tanto ruins quanto bons, tornem-se tão onipresentes que nós poderemos falar de uma comunidade ecológica de vírus e programas legítimos que coexistiriam na silicosfera. No momento, o software é anunciado como, digamos, "Compatível com o Sistema 7". No futuro, produtos podem ser anunciados como "Compatível com todos os vírus registrados no Censo Mundial de Vírus de 1998; imune a todos vírus virulentos listados; toma vantagem completa das instalações oferecidas pelos vírus benignos seguintes se presentes..." Softwares processadores de texto, digamos, podem entregar funções particulares, como contagem de palavras e cadeias, para vírus amigáveis que passem autonomamente pelo texto.

Olhando ainda mais adiante no futuro, sistemas de software integrados inteiros poderiam crescer, não através de design, mas por algo como o crescimento de uma comunidade ecológica como uma floresta tropical. Gangues de vírus mutuamente compatíveis poderiam crescer, da mesma maneira como genomas podem ser considerados como gangues de genes mutuamente compatíveis (Dawkins, 1982). De fato, eu sugeri até mesmo que nossos genomas deveriam ser considerados como colônias gigantescas de vírus (Dawkins, 1976). Genes cooperam uns com os outros em genomas porque a seleção natural favoreceu esses genes que prosperam na presença dos outros genes que eventualmente estão na mesma comunidade de genes. Comunidades de genes diferentes podem evoluir para combinações diferentes de genes mutuamente compatíveis. Eu vejo um tempo quando, da mesma forma, vírus de computador podem evoluir para compatibilidade com outros vírus, para formar comunidades ou gangues. Mas novamente, talvez não! De qualquer modo, eu acho a especulação mais alarmante que excitante.

No momento, vírus de computador não evoluem estritamente. Eles são inventados por programadores humanos, e se eles evoluem eles o fazem no mesmo senso fraco como carros ou aeroplanos evoluem. Projetistas derivam o carro deste ano como uma modificação leve do carro do último ano, e então pode, mais ou menos conscientemente, continuar uma tendência dos últimos anos --- achatar ainda mais a grade do radiador ou o que quer que seja. Projetistas de vírus de computador inventam truques cada vez mais intrincados para burlar os programadores de software de antivírus. Mas vírus de computador --- até agora --- não sofrem mutação e evoluem através de verdadeira seleção natural. Eles podem fazer isso no futuro. Quer eles evoluam através de seleção natural, ou quer a evolução deles seja guiada por projetistas humanos, pode não fazer muita diferença ao desempenho eventual deles. Por qualquer forma de evolução, nós esperamos que eles fiquem melhores em encobrimento e que eles fiquem sutilmente compatíveis com outros vírus que estão prosperando ao mesmo tempo na comunidade de computadores.

Vírus de DNA e vírus de computador se espalham pela mesma razão: um ambiente existe no qual há uma maquinaria bem montada para duplicar e espalhá-los por aí e para obedecer as instruções que os vírus embutem. Estes dois ambientes são, respectivamente, o ambiente da fisiologia celular e o ambiente provido por uma comunidade grande de computadores e maquinaria para lidar com dados. Há qualquer outro ambiente como estes, qualquer outro paraíso de replicação?