VR21: 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.