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.