vírus computacionais e vida artificial

28
Vírus computacionais e Vida Artificial Pedro Eugenio, 30358

Upload: ferris-cooke

Post on 04-Jan-2016

29 views

Category:

Documents


1 download

DESCRIPTION

Vírus computacionais e Vida Artificial. Pedro Eugenio, 30358. Vírus Computacionais. computacional/biológico. O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico Infecções virais biológicas são propagadas através do vírus que injecta o seu conteúdo numa célula - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Vírus computacionais  e  Vida Artificial

Vírus computacionais e

Vida Artificial

Pedro Eugenio, 30358

Page 2: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• O termo vírus computacional deriva e é de alguma forma análogo ao vírus biológico

• Infecções virais biológicas são propagadas através do vírus que injecta o seu conteúdo numa célula

• A célula infectada passa a ser uma fábrica replicadora de vírus

computacional/biológico

Page 3: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• Um vírus computacional não é mais que um segmento de código

• O vírus tem capacidade de se copiar para um ou mais hospedeiros quando activado

• Quando o hospedeiro infectado é executado o vírus é activado e o hospedeiro passa a ser uma fábrica replicadora de vírus

computacional/biológico

Page 4: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• Vírus computacionais são do mais aproximado ao conceito de vida artificial do que qualquer outra coisa criada pelo homem :

– São capazes de se reproduzirem

– São capazes de se esconderem dos seus predadores

– Têm capacidade de sobrevivência fora de cativeiro

computacional/biológico

Page 5: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

– 1949: J.V. Neumann – “Theory and Organization of Complicated Automata”

– 1950: Bell Labs – “Core Wars”– 1970: Brunner’s “Shockwave Rider” and Ryan’s Adolescence of P-

1”– 1981: O Primeiro Vírus – Apple Computers, Texas A&M– 1983: Tese de Cohen’s – Mathematical Virus– 1986: Basit e Amjad – “Pakistan Brain”– 1988: Jerusalem– 1990: Primeiro Anti-Virus: Norton, Symantec– 1991: Vírus polimórficos– 1992: Aumento de 420% desde 1990!!!– 1995: Windows 95 e o vírus “Macro”– 1996: Vírus em código Java– Hoje: Mais de 50,000– Futuro…?

Evolução histórica

Page 6: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• O verdadeiro vírus tem duas componentes:• Propagação• Manipulação

• De modo a funcionar; o vírus tem de se adicionar a algum pedaço de código

• Uma forma de classificar estes vírus é a aproximação que o mesmo toma quando se adiciona a outro pedaço de código (cápsula, add-on ou intrusivo)

Estrutura e operação

Page 7: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• Vírus cápsula:– Forma uma cápsula em volta do código original, torna-se

o programa e o programa original torna-se uma sub-rotina do código viral

• boot virus• …etc…

Estrutura e operação

Page 8: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• Vírus add-on:– Adicionam o seu código ao código do hospedeiro. A sua

única indicação de presença é a de que o tamanho do hospedeiro original aumenta

• Quase todos os vírus são add-on

Estrutura e operação

Page 9: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• Vírus intrusivo:– Reescrevem parte, ou todo, do código do hospedeiro

original• Poucos vírus são deste tipo

Estrutura e operação

Page 10: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• A primeira geração (simples) :

– Estes vírus não faziam nada de extraordinário para além da replicação, alguns vírus de hoje ainda pertencem a esta geração

– Os estragos não vão para além de bugs ou incompatibilidades no software que antes não existiam

– Não são difíceis de descobrir, visto que nada fazem para se esconderem, de modo que um simples aumento num ficheiro, por exemplo, denuncia-o imediatamente

as cinco gerações

Page 11: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• A segunda geração (auto-reconhecimento) :

– Implementam uma espécie de assinatura que assinala o ficheiro ou sistema como infectado, ou seja, não acontecem infecções duplicadas de hosts, permitindo que o virus seja mais dificil de detectar

– A assinatura pode ser uma sequência de bytes em disco ou memória

– Ao mesmo tempo que a assinatura pode impedir a detecção instantânea do vírus, no reverso da medalha a assinatura por si só é uma indicação da presença do vírus, embora não tão aparentemente fácil de descobrir

as cinco gerações

Page 12: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• A terceira geração (furtivo) :

– A maior parte dos vírus pode ser identificada analisando padrões de dados próprios dos mesmos nos sistema de armazenamento secundários

– De modo a impedir a detecção alguns vírus usam técnicas furtivas de modo a não serem descobertos

– Como exemplo se numa análise a um disco o vírus detecta que existe uma chamada do sistema para ler uma porção do vírus, este retornaria não o vírus mas os dados que estariam presentes se o sistema estivesse livre de infecção

as cinco gerações

Page 13: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• A quarta geração (armadura) :

– À medida que antivírus saem para o mercado, autores de vírus voltaram-se para métodos de ofuscarem o seu código

– Estas técnicas de ‘armadura’ incluem:• Adicionar confusão e código desnecessário de modo a dificultar a

análise do código do vírus• Defesas que podem tomar a forma de ataques directos a software

de antivírus

– Estes vírus começam a aparecer por volta de 1990• Em 1990 sai para o mercado o primeiro antivírus da Norton

as cinco gerações

Page 14: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• A quinta geração (polimórficos) :

– A mais recente classe de vírus a aparecer são os polimórficos, capazes de se mutarem

– Infectam os seus hospedeiros com uma versão modificada ou cifrada deles próprios

– De modo a se poder detectar estes vírus é necessário um algoritmo mais complexo que seja capaz de reverter o processo de mutação de modo a poder detectar se o vírus está presente ou não

as cinco gerações

Page 15: Vírus computacionais  e  Vida Artificial

Vírus Computacionais

• Existem métodos semelhantes de propagação entre vírus computacionais e biológicos

• Existiu uma evolução significativa e adaptativa de vírus computacionais

• São o mais aproximado de vida artificial

• Mas serão de facto uma forma de vida artificial?

recapitulação

Page 16: Vírus computacionais  e  Vida Artificial

Vida Artificial• Espaço temporal:

– A vida é um padrão espaço temporal em vez de um objecto material especifico• Reprodução

– Ou a capacidade de auto-reprodução em si mesmo ou em outro organismo• Representação

– Armazenamento de informação de uma auto-representação• Metabolismo

– Um metabolismo que converte matéria/energia• Interacção

– Interacções funcionais com o ambiente• Interdependência

– Interdependência das partes• Estabilidade

– Estabilidade durante alterações de ambiente• Evolução

– A capacidade para evoluir• Expansão

– Ou crescimento

O que é vida?

Page 17: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Existe, nos vírus computacionais, alguma semelhança neste ponto.

• Vírus são representados por via de padrões de instruções computacionais que existem através do tempo em diversos sistemas computacionais

• É no entanto questionável se existirão no espaço, a não ser que estendêssemos a noção de espaço para ciberespaço

Propriedade espaço temporal

Page 18: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Uma das características chave dos vírus é a capacidade de auto-reprodução

• Contudo o agente da reprodução não é o código do vírus mas sim o sistema em que se envolve

• É questionável se isto pode ser considerado suficiente para propósitos de classificação de vida artificial

Capacidade de Reprodução

Page 19: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Esta característica é obviamente igualada pelos vírus computacionais

• O código que define o vírus é um template usado pelo vírus para se replicar a si mesmo

Capacidade de representação

Page 20: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Esta propriedade envolve tomar energia ou matéria do ambiente e usá-la para seu próprio beneficio

• Vírus computacionais usam a energia de computação do sistema de modo a executar

• Não convertem matéria, mas fazem uso de energia eléctrica presente no computador de modo a infectar outros programas, neste sentido poderão ter um metabolismo

Posse de metabolismo

Page 21: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Os vírus computacionais obviamente alteram o ambiente de modo a este suportar a sua existência

• Efectuam verificações de memória, alteram interrupções, endereços, …

• A maior parte dos estragos em computadores resulta destas alterações do ambiente por parte dos vírus

Capacidade de interacção

Page 22: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Organismos vivos não podem ser divididos arbitrariamente sem serem destruídos

• O mesmo acontece com vírus computacionais, se a um vírus se tirar parte do código provavelmente o mesmo iria deixar de funcionar correctamente

• Contudo é interessante de verificar que um vírus pode ser ‘reagrupado’ posteriormente e voltar a ganhar a sua funcionalidade, organismos vivos já não partilham desta funcionalidade, como tal vírus são mais como máquinas em vez de instâncias de coisas vivas

Capacidade de interdependência

Page 23: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Curiosamente vírus computacionais detêm uma estabilidade e robustez que a maior parte de aplicações comerciais inveja

– São capazes de correr numa variedade de máquinas e sistemas operativos

– Muitos deles são capazes de comprometer (até destruir) mecanismos de antivírus

– Podem ajustar-se imediatamente a condições de pouco espaço em disco, erros, e outras excepções

– Alguns são capazes de correr nos mais diversos computadores pessoais, em qualquer sistema operativo, sobre qualquer configuração

Capacidade de estabilidade

Page 24: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Aqui vírus computacionais diferem de organismos vivos, outra vez

• Vírus não são capazes de evolução, embora seja concebível, teoricamente, que um vírus extremamente complexo possa ser programado de modo a poder evoluir, contudo provavelmente seria maior do que o sistema operativo onde iria penetrar

Capacidade de evolução

Page 25: Vírus computacionais  e  Vida Artificial

Vida Artificial

• Vírus computacionais claramente exibem uma forma de crescimento no sentido de que existem mais num dado ambiente a através do tempo

• Alguns vírus afectarão todos os ficheiro num sistema apenas após algumas activações

Capacidade de expansão

Page 26: Vírus computacionais  e  Vida Artificial

Conclusão

Page 27: Vírus computacionais  e  Vida Artificial

Conclusão

• Primeiramente pode parecer que um vírus computacional é uma forma de vida artificial

• Contudo são encontradas deficiências quando confrontados com características que definem o que é vida

• Não é possível afirmar que estão “vivos” sem alterarmos a noção do que é a vida

Page 28: Vírus computacionais  e  Vida Artificial

Bibliografia

• Computer Viruses as Artificial Life– Eugene H. Spafford

• Computer Viruses, Artificial Life and The Origin Of Life– Robert C. Newman

• The Code of Life– Laura Janet