IBM y los virus Por Fernando Bonsembiante Entrevistamos a uno de los investigadores del Watson Research Center de IBM, David Chess, en el High Integrity Computing Lab, en el estado de Nueva York. VR: ¿Que tipo de trabajo están haciendo en el laboratorio antivirus de IBM? DC: El grupo de aquí es el High Integrity Computing Lab. Trabajamos con virus y cosas similares, fenómenos similares en sistemas distribuidos complejos, no solamente con los virus de DOS de hoy, sino con cosas similares que pueden suceder en el futuro, cuando las máquinas estén en redes más densas y sean más potentes. Como los proyectos de IBM 'In touch', servicios de comunicaciones personales, y el proyecto 'Magic Cap', y cosas como Compuserve y Prodigy, todas esas cosas que involucran darle a la gente acceso a sistemas y le dan la posibilidad de enviar mensajes y programas. Pensamos en las cosas que pueden pasar en estos sistemas. Nuestro producto es para PC DOS, que es donde están los virus, por eso hicimos el IBM antivirus, IBM antivirus/2 (para OS/2), IBM anti virus para Netware (para redes Novell), es un conjunto de programas que le sirven a la gente para protegerse contra los virus existentes. En el laboratorio estamos trabajando en la tecnología para proteger a la gente ahora, y estamos preparando la tecnología para proteger a las redes del futuro contra cosas similares que puedan aparecer. Eso es básicamente el tipo de trabajo que hacemos acá. VR: Entonces, el producto de ustedes es el IBM antivirus. DC: Si. Tenemos el IBM antivirus para DOS, para OS/2, para Novell, es un NLM, y ofrecemos servicios relacionados con el IBM antivirus, le ofrecemos a las compañías licencias y soporte telefónico. IBM antivirus es el nombre global de todo eso. VR: ¿El IBM antivirus es un producto que está a la venta? DC: Es un producto que está a la venta en muchos países, no se si en Argentina, se vende en Estados Unidos, en Canadá, en Inglaterra, en Francia, 20 o 25 países. VR: ¿Están planeando incorporar capacidades antivirus en un sistema operativo, quizá una nueva versión de OS/2 con capacidades antivirus o algo así? DC: En general, la gente habla de integrar antivirus con sistemas operativos, nunca se preocuparon en pensar en lo que significa realmente. Hay buenas pruebas matemáticas sobre que se pueden hacer virus para cualquier sistema operativo de propósito general, mientras sea una máquina de Von Newmann, siempre que hayan programas a los que se les permita escribir otros programas pueden haber virus. No es tan simple como cambiar el sistema operativo para librarse de los virus, es un problema difícil, y no hay un 'poder mágico' por ser parte del sistema operativo. En realidad es posible hacer programas que se carguen en el config.sys en OS/2, y que se ejecuten con privilegios de sistema operativo, o sea que si es posible hacer algo modificando el sistema operativo, también se puede hacer de esa forma. Pero formar parte del sistema operativo no te da poderes extra para luchar contra los virus, así que no se puede hacer nada. VR: ¿Cuál piensa que es la mejor táctica contra los virus? Scanning, chequeo de integridad, monitoreo de actividad... DC: La mejor es una combinación. No hay una táctica que sea mejor por si sola. La gran mayoría de los incidentes con virus son con virus viejos y conocidos. Entonces, los scaneadores tienen una gran ventaja, porque permiten detectar al virus antes de ejecutar el programa. Por otro lado, hay virus nuevos. Si uno quiere tener la habilidad de detectar si hay algo raro aunque no sea un virus conocido, el IBM antivirus incluye un detector heurístico de cambios. Si nota un patrón de cambios a los archivos que parece sospechoso, le avisa al usuario. Y opcionalmente tiene un monitor de comportamiento, que controla el sistema buscando actividad que parezca de virus y le avisa al usuario si encuentra algo. Y tiene un analizador heurístico del boot sector, que intenta detectar virus de boot sector nuevos. Pienso que el scanner tiene que ser la primera línea de defensa, porque la gran mayoría de las infecciones son con virus viejos, y el scanner es ideal porque uno puede encontrar al virus antes de ejecutar o hacer cualquier cosa con el archivo. Pero hay que tener todas las defensas lo posible, no solo eso, especialmente en entornos de alto riesgo. La infecciones con virus nuevos son muy raras, comparadas con los virus viejos. Para los usuarios, si hay mil usuarios en tu compañía, pienso que menos del diez por ciento necesitan utilizar el software mas paranoico. VR: En Argentina tuvimos muchas infecciones con virus nuevos, como Predator, PHX, etcétera, y a veces los scanners no los detectaban. DC: La desventaja de los scanners es que necesitan ser actualizados muy frecuentemente. Cuando el mundo esté más metido en las redes, eso va a mejorar, porque uno va a poder conseguir con mucha más facilidad las actualizaciones, si querés podés tener el archivo de signatures de virus que salió esta mañana. VR: ¿Qué piensa de los autores de virus? ¿Conoce alguno? DC: No conozco personalmente a nadie que haya escrito un virus. Por cierto, he visto en la red mensajes de gente que dice haber escrito un virus. Nunca vi pruebas de que una persona dada haya escrito un virus. Es fácil decir 'si, yo escribí tal virus', pero es difícil de probar. El virus Brain fue uno de los primeros virus que todo el mundo pensó que sabía quien lo había escrito, porque había un nombre y una dirección en el virus. Pero Alan Solomon dice que hay bastante evidencia de que esa gente no escribió el virus, hay otro virus llamado Ashar, y ellos simplemente lo modificaron y le pusieron su nombre y dirección para hacerse publicidad. Es difícil decir quien escribió un virus. No me preocupa mucho, no me importa quien los haya escrito. No me importa quién fue el autor de virus Stoned. Si esa persona fuera atomizada hoy, el virus seguiría allí, haciendo cosas. Para mi no es importante saber exactamente quién escribió un virus. VR: Aunque no le preocupe, los autores de virus están causando problemas... DC: Ciertamente desearía que pararan. Pienso que deberían parar. Es claramente un comportamiento antisocial. No es algo que haría gente racional. No es algo bueno, es como ir por ahí rompiendo vidrios de autos. Pero yo no soy un policía. VR: ¿Alguna vez escribió un virus? DC: En cierta forma si. Nosotros diseñamos virus. Nos sentamos en una sala y decimos 'bueno, ¿que es lo próximo que van a hacer?'. '¿Qué es lo próximo que harán los autores de virus para meternos en problemas?' Entonces nos ponemos a ver en el pizarrón y a diseñar lo que puede hacer un virus, y a asegurarnos de que vamos a saber que hacer si aparece un virus que hace eso. Nunca escribimos el código, porque no hay razón para hacerlo. Escribimos algunos virus en lenguajes falsos analizando un lenguaje, un environment, o un modelo de computadora, un lenguaje falso para el cual no hay ningún intérprete o compilador. Lo hacemos para ver si es en efecto posible hacer un virus para ese lenguaje. Por cierto, nunca escribimos un virus para PC DOS. En el laboratorio a veces modifico algún virus, por ejemplo si quiero ver cómo es el efecto de un virus, así que lo modifico para que se dispara más frecuentemente. No hace falta escribir virus para trabajar con ellos. VR: ¿Cuál piensa que será el próximo paso en virus? DC: Es difícil de predecir. Vimos un par de virus para OS/2, el método de contagio que usan no es lo suficientemente rápido como para que se conviertan en un problema real, pero ciertamente cuando los nuevos sistemas operativos se hagan más populares, van a ir apareciendo virus escritos para ellos. Es difícil de decir porque hay pocas cosas nuevas en el campo. Han habido virus polimórficos desde hace mucho tiempo, han habido virus stealth desde que hay virus. No ha habido mucho realmente nuevo en la tecnología de los virus desde que empezó todo. Pienso que tenemos que preocuparnos por fenómenos que exploten en sistemas complejos distribuidos. No espero que hayan desarrollos interesantes en virus para PC DOS. Pero, mientras otros sistemas se van haciendo más poderosos, más complejos, y más usados, pienso que vamos a empezar a ver cosas que son como virus. Puede ser que ni siquiera hechas a propósito. Como cosas que estamos estudiando, otras formas de problemas que se distribuyen, como tormentas de mensajes. Es cuando uno manda un mensaje a una lista y se distribuye a otras listas, y la red empieza a llenarse de mensajes. Es como un virus porque se multiplica, pero no es como un virus porque no es maligno. Tenemos que empezar a preocuparnos por ese tipo de cosas. Tenemos que preocuparnos si alguien empieza a hacer malignamente ese tipo de cosas. Incluso en el mundo del DOS la gente no ha estudiado cómo se distribuyen los virus. Porque si alguien descubre un virus lo limpia, raramente se fijan de dónde salió, porque es difícil hacerlo. Sería muy interesante saber cuan a menudo los virus se contagian en las máquinas de distinto tipo de gente, que tipo de actividades favorecen a los virus, si son terminales públicas en los colegios, si es cuando se copian programas... Conocemos muy poco sobre la topología del intercambio del software, la manera en que la gente comparte software, comparte diskettes... Y eso es muy importante para entender cómo se esparcen los virus. Es algo sobre lo que no sabemos mucho. VR: No se si sabe que en Cuba hay una agencia oficial a la que hay que reportar cada caso de virus que haya. Sería interesante estudiar sus datos para ver si se llega a algún resultado. DC: Es una buena idea. Conseguir datos nunca es fácil. Hubieron propuestas en Inglaterra para crear un formulario oficial policíaco de reporte de virus. Nunca vi resultados de eso, pero no es una mala idea. VR: Hay productos anti virus que dicen que nunca necesitan actualizaciones, y que dejan al sistema libre de virus para siempre. ¿Qué piensa de ellos? DC: Cualquier producto que diga que puede detener todos los virus y dejar al sistema usable es una mentira. Si la computadora puede ser usada para trabajar, entonces puede ser infectada por virus. Ciertamente se pueden evitar todos los virus en una computadora, simplemente hay que desenchufarla. No puede tener más virus. Tampoco se puede usar para trabajar. Los productos que dicen que pueden detener todos los virus mienten. Pienso que algunos creen honestamente que pueden, pero están equivocados. Por otro lado, es cierto que distintos tipos de productos requieren distintas frecuencias de actualizaciones. Una de las desventajas de los scanners es que requieren muchas actualizaciones. Por otro lado, los productos que no detectan virus y detectan sólo actividad extraña, tienen el problema de que necesitan que el programa se ejecute antes de detectarlo, y eso significa que uno está ejecutando un posible código maligno. VR: Además del de IBM, ¿cuál piensa que es el mejor producto anti virus? DC: No sabría decirlo. Nosotros generalmente no recomendamos o desaconsejamos productos de otra gente. Todos los grandes productores de anti virus tienen copias de los productos de los demás, aunque sea para asegurarse de llamar a los virus comunes con el mismo nombre. VR: Usted es miembro de CARO. Cuénteme algo sobre lo que hacen en CARO. DC: CARO es básicamente un conjunto de listas de mensajes. Cuatro o cinco listas. Es un conjunto de gente en el mundo anti virus. Algunos hacen productos, otros están en universidades, básicamente lo usamos para mantenernos en contacto, intercambiar ideas, virus nuevos. No es exactamente una organización, no tiene presidente, no tiene nada, es un conjunto de listas de mensajes privadas. Es para que los 'buenos' intercambien información, o más bien, un conjunto de los 'buenos' intercambien información. VR: ¿Cómo analiza un virus? ¿Lo desensambla? DC: Cuando tengo un virus nuevo, depende, si es un buen ejemplar, o sea, está en un archivo pequeño y bien definido, o si es uno malo y está en un archivo enorme, trato de que se reproduzca a un archivo pequeño y compacto. Cuando tengo un ejemplar bueno, usualmente lo paso por debug y saco un desensamble de esa forma y lo analizo. Tenemos algunas otras herramientas. La mayor parte del desensamblado y análisis es automático. Lo ponemos en una máquina e intentamos que se reproduzca, y tratamos de ver si es stealth, si infecta cuando se copian archivos, y ese tipo de cosas. Intentamos sacarle el string de identificación más o menos automáticamente. Tenemos un modelo estadístico del código que usamos para tratar de extraer strings automáticamente que no tengan falsos positivos. Si para algunos virus el método automático falla porque el virus no puede reproducirse en ese entorno, o porque el virus es demasiado polimórfico como para ser analizado automáticamente, lo analizamos. Si le virus se encuentra disperso en realidad, lo que generalmente no ocurre, lo analizamos para saber qué es exactamente lo que hace. Generalmente lo pasamos por debug y simplemente leemos el código. VR: ¿Solamente por debug? DC: De vez en cuando usamos algún producto más poderoso, pero generalmente alcanza con debug. VR: ¿Qué hacen con los virus polimórficos? DC: La mayoría de los virus polimórficos no son polimórficos en realidad. Tienen un string constante, quizá con variables. la mayoría de los virus polimórficos no son difíciles de detectar. Para algunos virus tenemos scanners algorítimicos. Lo que hacen normalmente es desensamblar el encabezado del virus y decidir si es o no el virus que intentan identificar. Hacemos eso para los engines polimórficos MTE, TPE, y algunos otros. Para la gran mayoría buscamos strings, y para unos pocos tuvimos que escribir código especial. Es un código que conoce el conjunto de instrucciones de la CPU y puede descubrir, hasta cierto punto, lo que el código que está analizando está haciendo, y ver si es una de las categorías conocidas de virus. VR: Mucha gente me pregunta qué es lo que hay que estudiar para ser un investigador anti virus. DC: Para los virus de DOS yo sugeriría definitivamente los manuales de los procesadores 80XXX, los manuales técnicos del DOS, porque los virus usan llamadas al DOS, los manuales técnicos del BIOS porque los virus usan llamadas al BIOS, libros sobre DOS indocumentado, y la lista de interrupciones de Ralf Brown. Analizar algunos virus es una buena idea también. Pienso que poca gente realmente quiere estudiar a los virus. Todos necesitan saber un poco sobre ellos, pero para el usuario genérico no hay razón real para mirar al código de los virus. Sólo tenés que tener una idea se cómo funcionan y tener algún software anti virus. VR: Ahora la mayoría de los virus son para DOS. Cuando cambiemos de sistema operativo, y se use OS/2 o Windows, o lo que sea, ¿Tendremos más o menos problemas con virus? DC: Es difícil de predecir. Pienso que mucho de lo que causa que existan virus para un sistema en particular es cultural. Hay comparativamente muy pocos virus para Macintosh, comparado a la cantidad de virus distintos para DOS. Por otro lado, cualquier virus en particular para Macintosh está más difundido que cualquier virus en particular de DOS. No parecen haber razones técnicas, es igualmente fácil escribir un virus para cada una de ellas. Pienso que tiene que ver con la cultura, con cuanto software se comparte, cuanta gente antisocial usa esa máquina. Hay una especie de cultura alrededor de ser un 'macho' que escribe virus. Pienso que depende de qué pase culturalmente. Por ahora los usuarios de OS/2 parecen ser más responsables que los de DOS, no hemos visto muchos virus para OS/2. No es tan simple como que es más difícil escribir un virus para ciertos sistemas operativos, pienso que deben haber factores culturales que determinan si vemos virus para determinados sistemas operativos. Espero que no, espero que el mensaje de que es una cosa estúpida llegue a todos. VR: ¿Tiene algún virus favorito? DC: No me gusta ninguno. No me preocuparía si todos desaparecen para mañana, eso estaría bien para mí. No es software de calidad, en general. VR: Si no hubieran virus, ¿en que trabajaría? DC: Estaría trabajando en comunicaciones, en proyectos como clientes de sistemas de World Wide Web, y servers, y servers de Gopher... Si no hubieran virus estaría en el campo de comunicaciones por Internet. VR: ¿Están haciendo investigación en seguridad en general, o sólo en virus? DC: No estamos trabajando en seguridad general, como en criptografía, o en passwords, o en software de control de acceso. Estamos pensando en problemas de seguridad que pueden aparecer en sistemas complejos distribuidos, que no involucran directamente a los virus. Cosas como tormentas de mensajes, cosas como si un programa se puede ejecutar o no a través de una red, y con qué tipo de privilegios. Son problemas nuevos de seguridad, en grandes redes de cientos de miles de usuarios, pero no problemas de seguridad tradicional. VR: Mucha gente relaciona a la seguridad tradicional con los virus. DC: Ciertamente se superponen, la seguridad tradicional se preocupa de los caballos de troya, y los virus tienen mucho que ver. Pero hay un nuevo conjunto de preocupaciones que están apareciendo cuando se habla de este tipo de cosas. Porque con la seguridad tradicional podemos decir quien está logeado en el sistema, pero los problemas nuevos son que sabemos quien está logeado, y sabemos que un programa se está ejecutando, pero no sabemos quien escribió ese programa. El programa hace cosas que el usuario está autorizado a hacer, pero no sabemos si son cosas que el usuario intenta hacer. Entonces, tenemos un distinto conjunto de preocupaciones. Ciertamente, hay gente que trabaja en la seguridad tradicional que también se preocupa por estas cosas nuevas. Pero esto va más allá de saber quién está logeado en la máquina, y de asegurarse de que no puedan hacer nada más que lo que están autorizados a hacer. Es saber si se puede confiar en los programas que están ejecutando, y de saber si se comportan como intentamos que lo hagan. VR: ¿Cuál es su definición de 'virus'? DC: La definición de Fred Cohen, la definición matemática, es muy amplia. Cualquier objeto en la computadora cuya presencia hace más probable que otro objeto similar esté presente en la computadora más tarde. Cualquier cosa que haga eso es un virus. Cuando gente como nosotros habla de virus generalmente se refiere a un programa diseñado para reproducirse en otros sistemas sin el consentimiento del dueño del sistema. Ciertamente es posible escribir cosas que se repliquen sólo dentro de un sistema cerrado. Eso es lo que Fred Cohen llama 'virus benéficos', y los otros, según su definición, no lo son. Hay gente que gasta enormes cantidades de energía discutiendo en el significado de la palabra 'virus', a mi no me importa, la gente generalmente sabe de lo que está hablando. Cuando hablamos de virus hablamos de cosas diseñadas para reproducirse de sistema en sistema sin permiso. La definición de Fred Cohen abarca cualquier cosa que se auto reproduzca, en cualquier sentido.