|
|---|
Virus
Se suele considerar como virus un programa alojado en el ordenador (por costumbre utilizo el término
español en lugar del de computadora) con fines malignos, ya sea destrucción de información,
ocupación de espacio, obtención de datos, creación de vulnerabilidades, etc.
Y esto es lo primero en lo que discrepo. Un virus no tiene por qué ser en esencia dañino, puede ser
neutro e incluso beneficioso, entendiendo que tan sólo son una serie de instrucciones con unas características
concretas, como puede ser la mutación de él mismo o la de otros mandatos distintos, la reaparición
en posiciones de memoria o su ubicación en zonas del ordenador no esperadas, que tenga características
que permitan su transmisión, etc. En esencia ¿es esto perjudicial? Lo dudo, lo será en la
medida en que el creador pretenda que lo sea. Si un programador, previniendo el impago de su trabajo, introduce
unas líneas de manera que llegada determinada fecha modifique los archivos de configuración produciendo
un formateo del disco duro, probablemente será más dañino que un virus, pero nadie le dará
ese nombre. Bajo demanda judicial podrán conseguir como mucho que se considere una violación de la
propiedad privada, pero nada más. Entonces ¿por qué tanto revuelo? Pienso que un creador de
virus debe de ser un informático avezado, como pueda serlo un hacker, pero ni uno ni otro tiene por qué
ser un "gamberro computacional", pero evidentemente no resultan interesantes para multinacionales ni
creadores de software masivo cuyos intereses son usuarios resignados o ignorantes, como ocurre con el S.P. 1 para
W.2000 con ¡80 megas de parches!.
Recientemente se inició una campaña similar a las de la Inquisición española de Torquemada,
pero en lugar de "cazar brujas" en este caso se habla de "la caza del hacker". Resulta irrisorio,
un virus, por sus propias características e idiosincrasia tiene la capacidad de realizar lo que cualquier
otro programa, pero a nivel más bajo si así se pretende, y tanto puede ser utilizado para destruir
como para construir, para crear una vulnerabilidad en un sistema como para corregirla, y ambos tendrían
exactamente las mismas características, y además, ambos serían igualmente delictivos.
¿Qué es un virus benévolo?.
Existe un libro, no sé si traducido al castellano, llamado "It's alive" y cuyo autor se llama
Cohen, que se dedica a este tema, lo que él denomina "programas con vida", y es que lo cierto
es lo que su autor afirma, "cualquier cosa que haga un programa no viral, puede hacerla un virus de computadora"
y yo añadiría, que por sus características, muchos de los programas que se realizan podrían
solucionarse de manera más idónea, por ejemplo un proceso recursivo, utilización de árboles
binarios, etc. Su funcionamiento a bajo nivel, pueden hacer que un programa de este tipo sea de utilidad, e incluso
sus posibilidades de difusión, que no se aprovechan, serían útiles, por ejemplo, para corregir
la cantidad de vulnerabilidades que aparecen en cualquier programa o Sistema Operativo. Tan sólo hay que
seguir las noticias:
CyberOffice Shopping Cart v2 bajo Microsoft Windows NT 4, programa muy utilizado en cestas de la compra, muestra
los datos casi a quien le interese verlos, incluidas cuentas corrientes o tarjetas de crédito. La Agencia
Hispasec publicaba recientemente una vulnerabilidad de Netscape e Internet Explorer si recibían una secuencia
de este tipo:
<FORM action=sorpresa method=post>
<INPUT type=password value=cadena_de_16_Kbytes_de_longitud>
</FORM>
Panda Software, comenta que se pueden leer las palabras de paso creadas en los Palm Pilot, que cada día
parecen estar más en actualidad.
Se pueden escribir montones de ejemplos, porque prácticamente son diarios. Pues cualquiera de esas vulnerabilidades
puede ser corregida por programas elaborados con tecnología vírica, incluso de hecho existen los
virus eliminadores de virus (no confundir con antivirus). ¿Qué habría problemas? Claro. Los
antivirus que hay en el mercado, si ya se hacen un lío y consideran infecciones cuando no existen, pues
creo que terminarían en el caos completo. Otros detractores aluden a que una deficiencia en la construcción
del programa vírico puede dar lugar a males mayores, y es cierto que ocurre con algunos de los destructivos,
que inicialmente su cometido debería ser muy inferior a su resultado final porque tienen fallos de construcción.
No obstante, ese riesgo se minimizaría en los benignos si no fuesen el resultado de actuaciones individuales
(forzosamente por su condición de ilegales), en lo que tengo serias dudas es si los daños causados
(tratándose de programadores avezados, y no de pseuhackers cuya única forma de operación es
el utilizar programas "troyanos" tipo SubSeven, o similares) en el caso de utilización legal y
reglada pueden ser superiores a los que aparecen en los programas comerciales, de pago, con sus derechos de copia
en regla y sus peligros.
Un poco de historia
Hace ya más de 50 años que Von Neumann escribía sobre la hipotética (entonces) posibilidad
de confeccionar programas que fuesen capaces de reproducirse por sí mismos. Estaba sentando las bases teóricas,
sin saberlo, de los virus actuales.
Bastante más tarde, en el 1983, el Dr. Cohen, demostraba como un programa era capaz de insertarse dentro
de otros. E incluso de mucho antes, ya se conocía la forma práctica de invadir zonas de memoria (se
desarrolló en un programa denominado Core Wars).
Vemos que el inicio de los principios de creación de virus ya estaban desarrollados, y el auge de los ordenadores
personales fue su campo de operaciones. En el 1986, y de la universidad de Pakistán, surge el primer especimen,
el Ashar, que después fue el Brain o Pakistán, que inició una de las propiedades clásicas,
la Stealth, es decir, que todo aparece normal, sin indicios de presencia de la infección.
El siguiente en importancia fue el conocido como Viena, que distinguía perfectamente los ficheros donde
ubicarse, en su caso los de extensión .com (por ejemplo, el intérprete de comandos).
Entre todos ellos ya sí se inició la verdadera carrera de la sofisticación, empezando por
los que surgieron de la Universidad del Tel Aviv, tipo Viernes 13 (Jerusalem) y toda la saga posterior.
Hay que tener en cuenta, tanto en aquellos momentos como en muchos aspectos de la actualidad, que un virus puede
tener muchísimas versiones, o "mejoras" que el autor va desarrollando. Así nos encontramos
casos como el Stoned aparecido por esas épocas, que siempre tiene en común la infección de
la tabla de particiones, pero en unos casos pasa prácticamente desapercibido y en otros causa verdaderos
problemas, o el Ping Pong o vírus de "la pelotita", etc.
Los Hoax.
Ante la neurosis colectiva que causan los virus en los usuarios informáticos, ¡cómo no! se
crea la picaresca, y es la de los falsos virus, que no deben de ser confundidos con aquellos que lo único
que hacen es "bromear" con el pobre que está despistado (se denominan Jokes en inglés).
Como anécdota de estos últimos, de los cuales aparecieron muchos y otros nos los inventamos, he de
reconocer la debilidad que en mis tiempos de profesor tenía por gastar esas malas pasadas en algunos alumnos.
Simplemente era un programa residente en MS-DOS que en un momento se activaba y simulaba que el ordenador en cuestión
estaba perdiendo agua por todas partes, con un efecto sonoro muy conseguido, y la expresión del ingenuo
de turno era para ser vista.
Pero bromas aparte, la proliferación de mensajes en las redes avisando de falsos virus es preocupante. No
sólo porque genera una cantidad de tráfico indeseable para las ya torpes líneas de comunicaciones,
sino porque aumenta el grado de desconfianza e inseguridad ante los medios informáticos, cuando la realidad
es que con las medidas correspondientes y el cuidado necesario, no tienen por qué ser peligrosos los virus.
Lo único que se consigue, merced a la buena voluntad de los comunicantes de esos supuestamente terribles
procesos víricos que son capaces hasta de fundir el teclado, es propagar el miedo creando inseguridad.
Excelente bibliografía hablando sobre la defensa ante posibles ataques y sus soluciones se encuentran en
los escritos de uno de los grandes especialistas, en mi opinión, el Dr. Cohen.
Virus de código malévolo en acción.
Hay conceptos que no pueden pasarnos desapercibidos:
Stealth: Es la propiedad de permanecer invisibles. Un módulo del virus permanece atento, residente
en memoria, de manera que si localiza en acción algún software tipo antivirus, lo intercepta.
Encriptación: Ocultación del código por otro aparentemente benigno, de manera que precisa
desencriptarse para llevar a cabo su cometido. La ejecución de este proceso la lleva a cabo normalmente
la cabecera del virus.
Polimorfismo: Ocultan en cada infección su código, de la misma forma que lo hacen los de encriptación,
pero más sofisticado. En los anteriores el módulo de desencriptación es siempre el mismo,
en cambio en este caso varía en cada infección, bien parcialmente, o bien por completo. Con lo que
es de suponer la dificultad que resulta localizar un virus con un polimorfirsmo avanzado.
Caparazones o Armouring: Son técnicas empleadas por algunos virus de manera que una vez detectados
se desactivan o utilizan sistemas para hacer casi imposible su estudio.
Y hay zonas vulnerables típicas de infección:
Sobre el sector de arranque. En general, cuando la BIOS termina sus cometidos busca en el primer sector
del disco, el arranque del Sistema Operativo, y por lo tanto uno de los puntos "apetitosos" de un virus.
Normalmente actúan de dos formas, bien sobreescribiendo el sector, o bien transformándolo y guardando
una copia del mismo en algún lugar del disco duro.
Una solución a este tipo de virus: Pues claramente reponer el sector de arranque. Es decir, encender el
ordenador con un disco de Sistema (si no lee la disquetera o el CD antes que el disco duro, como debería
ser normal, habría que indicárselo en la BIOS) y pasar el sistema. Si es de Microsoft con el comando
"sys".
Una variante normal de estos son los que atacan a la FAT (Tabla de asignación de ficheros), aquí
se producen las infecciones más graves. La perdida de la tabla es similar a perder el contenido del disco,
pues no sabe leerlo.
La solución nuevamente pasa por arrancar con un disco de sistema limpio de virus y protegido y utilizar
utilidades que recompongan las tablas, lo que no siempre es fácil.
Sobre ficheros. Aunque en teoría son menos preocupantes, en la realidad no es tan sencillo. Digo que
deben preocupar menos porque, los más antiguos son fácilmente detectados, aumentan el tamaño
del fichero, salvo que utilicen sistemas de ocultación, que es lo normal en los virus modernos de este tipo,
pero además, la infección se produce generalmente al ejecutar un programa cuando hay en memoria un
virus residente, entonces se produce el contagio. No obstante, esto sería una infección lenta, pero
no siempre ocurre así. Uno de los virus más peligrosos, y aún muy activo, es el CIH y está
dedicado a ficheros, porque es de los conocidos como de infección rápida, es decir, no solo infecta
aquellos programas que son ejecutados con el virus residente, sino todos los ficheros abiertos por estos. En el
desarrollo de una aplicación de cualquier tipo la cantidad de estos suele ser muy alta, con lo que la propagación
es rapidísima.
Este tipo de virus es detectable con mayor facilidad por los programas antivirus. Ellos deberían hacer el
trabajo una vez que se sospeche la infección.
Un apartado para los Troyanos.
Los Troyanos, o Caballos de Troya, son un caso especial. En su origen no están destinados concretamente
a la destrucción de ninguna cosa del ordenador, sino a abrir una entrada a una posible asaltante. El caso
más claro y primero que se produjo fue el del SIDA, un troyano distribuido por una empresa a una lista de
distribución sobre esta enfermedad y a través de una revista. Este encriptaba programas del disco
y llegado un momento se pedía un "rescate" que consistía en un pago a cambio de la clave
de desencriptación.
Si bien se trataba de una estafa, hoy sería muy poco útil (tampoco lo fue en aquel momento pues se
pusieron remedios rápidos), pero existen troyanos muchísimo más peligrosos, el SubSeven especialmente,
o el BackOriffice invaden sin ningún problema el ordenador al que han conseguido entrar (y no es muy difícil
si es usuario es confiado). Pero lo más peligroso de ellos es que tienen posibilidades de ser manejados
por cualquiera, el SubSeven posee un menú de opciones, que puede ir desde cambiar la dirección de
un puerto hasta manejar por completo el ordenador de la víctima, y si esto ya es grave, lo es mucho más
por quien, o no sabe, o sus intenciones son malignas.
Y muy especial para los virus de macro.
Desde los inicios de la creación de los virus, y olvidando por un momento la posible acción destructiva
que alguno de ellos llevan a cabo, buena parte de los programadores hemos considerado como "gurús"
de la informática a los que eran capaces de llevar a cabo acciones que se nos antojaban muy complejas. Todo
un mito rodea aquellos años y a quienes los protagonizaron.
Hoy, la perfección abstracta de un programa, dejando aparte, como he dicho, las posibles consecuencias del
mismo y ateniéndonos exclusivamente a sus algoritmos, ha sido olvidada. Los virus de macro no solamente
son los que producen las infecciones masivas, en tantos casos ingenuas como en otros maliciosas, sino que han ocupado
un lugar tan predominante que sobre el 65% de las transmisiones pertenecen a esta clase. ¿Por qué
es así? Teniendo en cuanto que los padres de estos, es decir, los conocidos como virus de boot, que infectaban
sectores de arranque para su puesta en marcha y propagación, eran obras de ingeniería informática
al lado de estos novedosos y vulgares especímenes, parece carecer de sentido la difusión masiva.
Bueno, creo que si los comparamos con los biológicos, los que afectan al cuerpo humano, sería relativamente
fácil comprenderlo. Enfermedades erradicadas en determinadas civilizaciones hacen estragos en otras, menos
preparadas, más indefensas. ¿Cuál es la base de la indefensión? La ignorancia. Las
grandes empresas quieren imitar a El Tenorio "yo a las cabañas bajé, yo a los palacios subí",
y estar en todas partes, para ello necesitan que el desconocimiento informático no sea una barrera, cuanto
menos haga el usuario y con más sencillez pueda ejecutar cualquier tarea que se proponga, más lejos
llegarán, y de los tediosos y complicados Sistemas Operativos, se pasa a la automatización de cualquier
proceso, es la base del éxito en las ventas informáticas, la facilidad de uso, que la ignorancia
no sea una traba, y ahí es donde tienen su abono los virus de macro ¿cuál es su complejidad?
La de ejecutar cualquier proceso como cientos de los que se realizan cada vez que encendemos un ordenador doméstico,
hacer funcionar una macro, así de simple. Así de destructivo si se quiere pues no tiene límite,
basta cualquier documento o aplicación que las acepte, y eso lo hace desde el propio Sistema a cualquier
aplicación de las más utilizadas, que se pueda difundir, e Internet es un campo abierto, y nada más,
casi no se necesita ni un usuario con las macros automáticas.
Accesos a registros de Windows:
wscr.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows Scripting Host\Settings\Timeout",0,"REG_DWORD"
o
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run\MSKernel32",dirsystem&"\MSKernel32.vbs"
regcreate "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices\Win32DLL",dirwin&"\Win32DLL.vbs"
Copiar o mover ficheros y directorios:
Set dirwin = fso.GetSpecialFolder(0)
Set dirsystem = fso.GetSpecialFolder(1)
Set dirtemp = fso.GetSpecialFolder(2)
Set c = fso.GetFile(WScript.ScriptFullName)
c.Copy(dirsystem&"\MSKernel32.vbs")
c.Copy(dirwin&"\Win32DLL.vbs")
Manipulación directa de ficheros:
set ap=fso.OpenTextFile(f1.path,2,true)
ap.write vbscopy
ap.close
bname=fso.GetBaseName(f1.path)
set cop=fso.GetFile(f1.path)
cop.copy(folderspec&"\"&bname&".vbs")
fso.DeleteFile(f1.path)
elseif(ext="jpg") or (ext="jpeg") then
set ap=fso.OpenTextFile(f1.path,2,true)
y así podíamos seguir con ejemplos, en este caso de una de las versiones del I Love You. No hace
falta explicarlo y según se están encaminando las nuevas normativas, no se debe, pero hay que echar
poca imaginación para ver lo que hace.
Dada mi organización no localizo otros virus fuente, así que no puedo poner ejemplos de algunos que
han recorrido el mundo, como Melissa, y si su creador, David Smith, no sobresalía por otros temas, a excepción
de conocer el Outlook y las aficiones del grupo de noticias "alt.sex", no creo que se le pueda considerar
como un genio de la informática, porque en definitiva la infección de los documentos es relativamente
similar al anterior, pero copiándose a sí mismo, y los accesos al correo electrónico los hace
mediante unas llamadas de Visual Basic. El cuerpo del programa en sí, (que es lo que se llama Melissa),
son unas decenas de líneas. En cualquier caso no es importante que no encuentre el código, se ve
en el ejemplo anterior que los límites es la imaginación del autor, del Registro de Windows se puede
obtener la información que se quiera, las macros automáticas como ocurre en el Office como AutoOpen,
AutoExec, etc. están a disposición de quien las quiera utilizar. Con Java y ActiveX las difusiones
vía Internet están aseguradas ¿qué mas se necesita?. Se pensará ¡Claro,
pero si se funcionase de otra manera se crearían otros virus! Pues sí, pero si yo automatizo la casa
donde vivo no le indico a la puerta de la calle que se abra por sí sola cuando suene el timbre, al contrario,
que echen la puerta abajo para introducirse. Pues no necesitan echar abajo nada, tienen todo abierto.
¿Medidas de seguridad? ¿Antivirus? Pues sí, claro está, y actualizados a diario, aunque
es insuficiente, una mutación cualquiera deja al programa detector sin respuesta, podría servirnos
para hacernos una idea:
if (fileexist(dirsystem&"\WinFAT32.exe")=1) then
Randomize
num = Int((4 * Rnd) + 1)
if num = 1 then
regcreate ...
que no es una mutación como tal, pero servirá para hacernos una idea.
Resumiendo.
He oído o leído múltiples veces, "nunca ejecutar un fichero cuya procedencia se desconozca",
pues NO. Si yo me hago socio del club de fans de Sandra Bullock (existirá ese sitio, supongo) y recibo un
correo con su firma electrónica en el que me adjunta un fichero I Love You, tengo casi la completa seguridad
de que lo abro a la carrera. En cambio, si se lo envío yo a 100 personas que no me conocen, lo más
probable es que la mitad lo tire sin leerlo, 25 lo leerán y otras tantas quizás lo abran contagiándose
(siempre cabe la opción de que al ver mi firma sea la totalidad de los receptores quien lo envíe
a la papelera, pero eso es otro tema), por lo tanto, la primera medida es tener cuidado con cualquier fichero adjunto
y, sobre todo, si es de conocidos y en e1 cuerpo del correo no se hace referencia a él.
José Luis Freire
El Rinconcito Informático: 25/06/2000 - (c) 2000 - 2008 | Creación y mantenimiento : José Luis Freire | Se pretende poder utilizar cualquier navegador. Recomendado 1024x768 |