1 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Virus de Computador y ALife Mario Hernández
2 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Índice Introducción a losVirus Estructura y Operación de los Virus Evolución de los virus Defensa frente a Virus Virus como ALife Conclusión
3 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Virus de Computador Bug de Software–Ejecución Accidental de instrucciones que causan daños a un sistema Vandalware – cuando el autor del código crea un bug con intención maliciosa –Virus de Computador –Gusano (worms)de Computador –Caballo de Troya (troyano)
4 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Vandalware –Virus de Computador: segmento de código ejecutable, autorreplicable, colocado en el interior de un programa huésped. El virus modifica el programa huesped con la intención de hacerse con el control durante la ejecución de este en el ordenador. Durante su ejecución el virus busca nuevo(s) huesped(es) sobre los que replicarse. –Gusano (worm)de Computador: programa independiente que, durante su ejecución, intenta infectar otros ordenadores interconectados al ordenador huesped. De manera similar a los virus, en este caso el programa huesped es el sistema operativo y el código infecta alguno de sus procesos. El concepto fué desarrollado originalmente en Xerox como un método de balanxcear las cargas en un sistema distribuido. –Caballo de Troya (troyano). nPrograma contenido en un código que realiza funciones que no son las esperadas por el usuario o no especificadas en el modo de empleo de un programa.
5 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Virus de Computador Pensemos en un virus como un segmento de código contenido en una concha protectora El virus (attaches) se asocia a un programa (segmento de código) Cuando se ejecuta el programa, se ejecuta el virus –La ejecución posibilita que el virus cause daños o se reproduzca a si mismo
6 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Tipos de Virus Beningno: los programas infectados son no patógenos y no son contagiosos. Caballo de Troya: un programa infectado no es contagioso pero si es un patógeno. Propagador: un programa infectado es contagioso aunque no patógeno Malicioso: un programa infectado es patógeno y contagioso
7 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Estructura y Operación de los Virus Dos componentes principales: –Infección – controla la dispersión del virus –Payload – segmento de código que, cuando se ejecuta afecta al host También puede verse como: –Infectadores de Ficheros (File infectors) –Infectadores del Boot No hay un método de clasificación claro
8 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Estructura y Operación de los Virus Programa huéspedVirus
9 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Estructura y Operación de los Virus
10 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Historia de los Virus de Ordenador Primeros programas autorreplicantes: “rabbits” en los años 60. 1972: When Harlie was one por David Gerrold describió un tipo de worm, implementado por dos investigadores, Bolt Beranek and Newman para mostrar las capacidades de un nuevo SO 1975: se emplea por primera vez el nombre worm en el libro The shockwave rider de John Brunner Mediados de los 70: Shoch y Hupp realizan worms en Xerox para balancear la distribución de cargas en una red local. 1980: surgen los primeros virus para Apple II
11 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería 1983: Ken Thompson révela, en su discurso del premio Turing la existencia un Caballo de Troya en el compilador de C de AT&T 1984: Neuromancer de William Gibson 1986: primer virus para IBM PC: Brain, escrito por los hermanos pakistanies Basit y Amjad Farooq Alvi. En 1990 representan el 7% de los casos de infeccion 1986: primera reunión del Chaos Computer Club de Hamburgo 1987: nVIR para Macintosh 1987: virus para Amiga, escrito por la Swiss Cracker’s Association (SCA) Historia de los Virus de Ordenador
12 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería 1987: saturación de BITNET por una carta de Papa Noel. 1988: Peter Norton: “los virus son un ejemplo de mito urbano” 1988: un virus en la version oficial de FreeHand 1988: un “Atari virus construction set” se muestra en la CeBIT (prohibido a menores de 18 años...) 1988: worm sobre Internet. Pérdidas estimadas de $96 M 1989: número de Communications of the ACM dedicado a los worm d’Internet Historia de los Virus de Ordenador
13 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Métodos of Clasificación Shell Virus –Forma una concha alrededor del código –El código host interno resulta entonces contenido dentro del código del virus Add-on Virus –Añaden su código al código host –Puede relocalizar el código host e insertar el código del virus en el anterior inicio del código host –Host code is untouched –La aparición del virus puede detectarse por la apariencia del fichero huesped, que será mayor en tamaño
14 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Virus Intrusivo –Invade selectivamente el código huesped original Ejemplo: sobreescritura de rutinas, inserción de nuevo vector de interrupciones –Invade extensivamente el código huesped original Porciones grandes del código huesped son reemplazadas con código viral, dando lugar a código huesped no funcional Métodos of Clasificación (cont.)
15 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Evolución de los Virus Cinco generaciones de virus de computador, con dificultad creciente para su detección y eliminación Primera generación – simple Segunda generación – autoreconocimiento Tercera generación – sigilosos (stealth) Cuarta generación –blindados (armored) Quinta generación - polimórficos
16 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Simple Solo son capaces de replicarse Los daños causados por bugs en el software no fueron reconocidos por el autor del virus No ocultan su presencia en un sistema –Fácil de detectar (por incremento del tamaño del fichero o por el patrón de infección)
17 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Autoreconocimiento Problema: infección repetida del mismo host –Causa detección prematura y eliminación subsiguiente Inyecta el código host con una “firma” que indica una infección viral Firma –+indicador de presencia viral –-permite un método de detección
18 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Sigilosos Se identifican los virus por rastreo (scan) del sistema buscando un patrón de datos asociados con un virus Los virus sigilosos interceptan la petición de I/O cuando el monitor rastrea el disco El virus devolverá todas las peticiones
19 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Blindados Proteje el código viral construyendo una concha defensiva –Puede atacar software antivirus Los virus blindados son grandes y fácilmente detectables –Difícil de parar los ataques antivirales
20 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Polimórficos Virus automutantes –Infecta el host con una versión modificada o encriptada de ellos mismos La detección por rastreo, comparación de bytes o reconocimiento de patrones es mucho más difícil
21 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Defensa frente a Virus Monitores de Actividad Rastreadores (Scanners) Comprobadores/monitores de integridad
22 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Monitores de Actividad Monitorizan el sistema y avisan de actividad ssospechosa Buscan: –Cambios en el vector de interrupciones –Reescritura en el sector de boot Pueden ser superados por virus elaborados –Si el virus se ejecutas antes de que el monitor se ejecuta en el sector de boot
23 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Rastreadores (Scanners) Método más popular de defensa antivirus Lee datos de un disco y aplica un algoritmo de reconocimiento de patrones con una lista de patrones de virus conocidos + rápidos y fáciles - la lista de patrones debe mantenerse actualizada - informes de falsos positivos - no pueden detectar virus polimórficos
24 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Monitores/Comprobadores de Integridad Los programas que generan chequeos de paridad/ códigos de chequeo –Checksums –Códigos de redundancia cíclica –Tablas (hashes) seguras Los Checksums descubren alteraciones a un fichero Los Checksums se comparan con valores conocidos y salvados - Los ejecutables cambian si se ejecutan - Los informes de falsos positivos repetidos pueden resultar ignorados
25 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Viruses como ALife ¿Qué es la vida? ¿Qué es estar vivo? Criterios establecidos por J.D. Farmer 1.Existe en el espacio y el tiempo 2.Autoreproducción 3.Almacenamiento de una autorepresentación 4.Metabolismo 5.Interacción con el entorno 6.Interdependencia de partes 7.Estabilidad/resiliencia (resilience ) 8.Abilidad de evolucionar 9.Crecimiento y expansión
26 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Criterios para la Evaluación Viruses como patrones en tiempo y espacio Existe como un patrón de instrucciones Virus asociado con la ejecución de instrucciones Por tanto, existen como cambios eléctricos en hardware/almacenamiento físico SI
27 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Autoreproducción de Viruses Característica clave de los viruses Los viruses no tienen influencia causal en su reproducción –Es la ejecución de su código Yes/No?
28 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería El código que define un Virus está almacenado Se mantiene una copia del virus Similar a una plantilla/DNA o una cookie cutter Yes
29 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Metabolismo de los Virus Un virus toma materia y la transforma en energía Los Viruses usan la energía eléctrica de un computador Sin embargo, aunque los virus no convierten energía, el sistema lo hace (accesos a memoria, paginado de tablas, acceso a registros) No
30 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Interacción Funcional con el entorno Un virus altera el entorno como mecanismo de soporte de sus existencia –Cambia el código –Altera direcciones –Lee memoria Si
31 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Interdependencia de Partes Una vez que un virus resulta aislado, no funciona adecuadamente Depende (relies) de sus componentes para funcionar No
32 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Estabilidad de los Virus ante Cambios Un virus puede ejecutarse en una cierta variedad de máquinas y bajo una cierta variedad de condiciones de operación Yes
33 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Evolución de los Virus Un virus debe modificarse a si mismo en relación con su entorno Un virus puede cambier –Un virus puede alterarse ligeramente a si mismo sisegún las condiciones del host –Sin embargo, esto no es evolución 1. No
34 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Crecimiento Una vez infectado un host, el virus puede gwenerar otros virus que pueden reinfectar el host. Si
35 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería A resaltar y ¿Debate? ¿Resultan estos nueve criterios satisfactorios para definir la vida artificial? ¿Son necesarios y suficientes? ¿Se ha omitido algo? ¿Algo no se ha incluido?
36 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Criterios más simples ALife es autoreplicante ALife se autosostiene ALife es capaz de evolucionar
37 Bioinformática:Virus y ALife Bioinformática:Virus y ALife Instituto Universitario de Sistemas Inteligentes y Aplicaciones Numéricas en Ingeniería Conclusión Revisión de Virus Estructura y operación de Virus Evolución de los virus Defensa frente a Virus Virus como ALife