Virus benignos o no tanto
por Vesselin Bontchev
El investigador Vesselin Bontchev vuelve a las páginas de
Virus Report para explicarnos por qué un virus benigno no
le parece una buena idea.
Hace dos años le pedí a la red que me envíen argumentos
de por qué piensan que un virus benigno es una mala idea.
Recolecté doce razones. No digo que los virus no puedan
ser beneficiosos, pero cualquier virus que pretenda tener
esta propiedad no debe violar ninguna de estas doce
condiciones.
Puntos técnicos
1) Una vez liberado, no hay forma de controlar cómo se va
a diseminar. Puede llegar a un sistema desconocido, o uno
que no existía en el momento en que el virus fue creado,
en el cual puede causar daño no intencional. Cualquier
virus que quiera ser beneficioso debe tener medidas para
prevenir esto. Por ejemplo, si infecta a un objeto en
particular, debe tener un checksum criptográficamente
fuerte del objeto para asegurarse de no infectar otra
cosa por error. Y este es un ejemplo simplificado, en
realidad las precauciones deben ser mucho más elaboradas.
Un virus que pretenda ser beneficioso debe proveer medios
para ser controlado. Debería ser posible prevenir
fácilmente la infección aún en un sistema que no sepa
nada del virus, debe ser posible eliminar la infección
facilmente del sistema infectado, sin causar ningun daño,
y debería ser posible enviar un mensaje a todas las
copias del virus para que se desinfecte a si mismo,
restaurando el sistema infectado a su estado sin
infectar, o actualizarse a si mismos. Tal mensaje debería
propagarse más rápido que el virus mismo. En algún
sentido, esos mensajes serían 'virus' para el 'entorno
computacional' formado por todas las copias del virus,
del mismo modo que un virus es un virus en el entorno
computacional normal, el que usa el usuario. Si esa
solución se implementa, es todavía peligroso, aunque el
peligro es de otra clase. Supongamos que un sistema usa
un virus benéfico y confía en él. Entonces, un atacante
malicioso podría enviar un mensaje al virus para que se
destruya, por lo tanto causando daño (un ataque de
'negación de servicios'). Por lo tanto, el mensaje
debería ser autentificado criptográficamente. En
definitiva, el virus debería ser capaz de identificarse a
si mismo frente al sistema y el sistema debería ser capaz
de identificarse a si mismo ante el virus.
El usuario del virus debería invitarlo activamente (o
sea, instalarlo) al sistema. No es suficiente que el
virus pida permiso, porque esto fuerza al usuario a tomar
algunas medidas para mantener a su sistema libre de
virus. Por default el virus no debe infectar un sistema.
Solamente si el virus encuentra algún tipo de invitación
debería tratar de infectar. Tiene que haber alguna manera
de apagar la pregunta del virus, el usuario debe tener
alguna manera de definir la acción default como 'no, no
infecte', sacando la invitación o simplemente no
instalándolo, o como 'si, siga infectando sin preguntar'.
Y, de nuevo, métodos criptográficos deben ser usados para
asegurarse de que lo que el virus ve como una invitación
es realmente una y no algún error.
No deberían ocurrir mutaciones incontrolables del virus,
sean por azar (errores), o determinísticas (cambios
intencionales).
2) Los anti virus van a tener que poder distinguir entre
virus 'buenos' y 'malos', lo que es esencialmente
imposible. También, la existencia de programas útiles que
modifican otros programas van a convertir a los
chequeadores de integridad en inútiles, porque van a
detectar la modificación y no van a saber si fue causada
por un virus bueno. Por lo tanto, un virus que pertenda
ser beneficioso no debe modificar otros programas.
3) Un virus va a ocupar espacio en disco y tiempo
innecesariamente mientras se multiplica. El virus es un
comedor de recursos auto reproductor. Por lo tanto, un
virus que pretende ser beneficioso debe mantener sólo una
copia de si mismo por máquina infectada, y los costos de
tiempo y otros recursos usados debe ser pequeño,
comparado a los beneficios que le da al usuario.
4) Un virus puede contener bugs que pueden dañar algo.
Cualquier programa puede tener bugs, pero un virus con
bugs es un programa auto-replicante con bugs fuera de
control.
5) Un virus va a deshabilitar a los pocos programas en el
mercado que se chequean a si mismos y no se ejecutan si
han sido modificados. Es importante repetir que un virus
que pretende ser beneficial no modifique otros programas.
Sumario de los puntos técnicos contra los virus benignos:
Imposibilidad de controlarlo o posibilidad de perder
control sobre él.
No hay certeza para discernir entre virus 'buenos' y
'malos'.
Desperdicio de recursos.
Bugs más difíciles de detectar y mas fácil de espacir.
Modificación de programas.
Los puntos anteriores se aplican a cualquier sistema
práctico en uso hoy, o sea, los basados en la
arquitectura de Von Neumman.
Puntos éticos y legales
6) No es ético modificar los datos de nadie sin su
autorización activa. En algunos países es ilegal. El
usuario de un virus benéfico debe invitar activamente a
un virus a su máquina. El virus debe esperar una
invitación, no molestar al usuario pidiéndole permiso, o
meterse sin invitación.
7) Modificar un programa puede significar que el dueño
del programa pierde sus derechos a soporte técnico,
propiead o copyright. Un ejemplo de esto puede ser el
caso que recientemente se reportó al Virus Test Center en
Hamburgo. La compañía rehusó soporte técnico a alguien
que tenía su sistema infectado.
8) Un atacante puede usar un virus 'benigno' como método
de transporte para penetrar un sistema. Esta es la razón
por que un virus debe ser capaz de identificarse ante el
sistema, y el sistema debe ser capaz de verificar que es
exactamente lo que dice ser. Una persona con intenciones
malignas puede conseguir una copia del virus benigno, y
modificarlo para que incluya algo maligno. En realidad,
un atacante podría convertir en troyano a cualquier
programa, pero un virus benigno va a proveer al atacante
con un medio de transportar su código maligno a una
población virtualmente ilimitada de usuarios. La
posibilidad de transportar código maligno es una de las
cosas que haca a un virus 'malo'.
9) Declarar a algunos virus 'buenos', va a darla a la
multitud de autores de virus la excusa de decir que están
haciendo 'investigación'. Trabajar con cosas
potencialmente peligrosas, sean substancias venenosas o
programas auto-replicantes, debería ser dejado a gente
que tenga la estabilidad moral y ética y la capacidad
técnica para hacerlo.
10) Cualquier cosa útil que se pueda hacer con un virus
se puede hacer con un programa normal, que no se
reproduzca. Cualquier virus que pretenda ser beneficioso
debe hacer algo que o no se pueda hacer con un programa
normal, o que no se haga tan efectivamente con un
programa normal como con uno viral.
Sumario de puntos éticos y legales en contra de los virus
'buenos'.
Modificación de datos o programas sin autorización del
usuario.
Posibilidad de perder derechos de propiedad sobre el
programa infectado.
Posibilidad de modificar un virus benigno con código
maligno para transportar tal código.
La cuestión de la responsabilidad de las personas que
escriben virus.
La cuestión de la efectividad de virus 'benignos' para
hacer una determinada tarea.
Puntos psicológicos
11) Un virus arruina la confianza que el usuario tiene en
su máquina. La impresión de que un virus le roba al
usuario el control de la máquina puede causar al usuario
perder su confianza en que puede controlarla. Puede ser
una fuente de fustraciones permanentes.
12) Para la mayoría de la gente, el término 'virus' está
cargado de significado negativo. No van a aceptar un
programa llamado así, aún si pretende hacer algo útil.
Vesselin Bontchev es miembro de CARO, la organización
mundial de investigadores anti virus. Trabaja en el Virus
Test Center, centro de investigación de virus en la
universidad de Hamburgo, Alemania. Ha publicado
muchísimos trabajos de investigación y teóricos sobre los
virus informáticos.