280 likes | 413 Views
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
E N D
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 • A célula infectada passa a ser uma fábrica replicadora de vírus
Vírus Computacionais computacional/biológico • 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
Vírus Computacionais computacional/biológico • 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
Vírus Computacionais Evolução histórica • 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…?
Vírus Computacionais Estrutura e operação • 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)
Vírus Computacionais Estrutura e operação • 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…
Vírus Computacionais Estrutura e operação • 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
Vírus Computacionais Estrutura e operação • Vírus intrusivo: • Reescrevem parte, ou todo, do código do hospedeiro original • Poucos vírus são deste tipo
Vírus Computacionais as cinco gerações • 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
Vírus Computacionais as cinco gerações • 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
Vírus Computacionais as cinco gerações • 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
Vírus Computacionais as cinco gerações • 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
Vírus Computacionais as cinco gerações • 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
Vírus Computacionais recapitulação • 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?
Vida Artificial O que é vida? • 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
Vida Artificial Propriedade espaço temporal • 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
Vida Artificial Capacidade de Reprodução • 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
Vida Artificial Capacidade derepresentação • 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
Vida Artificial Posse de metabolismo • 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
Vida Artificial Capacidade deinteracção • 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
Vida Artificial Capacidade de interdependência • 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
Vida Artificial Capacidade de estabilidade • 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
Vida Artificial Capacidade de evolução • 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
Vida Artificial Capacidade de expansão • 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
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
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