Los virus informáticos son uno de los grandes desastres tecnológicos del siglo XX, sin ninguna duda. Pero, a la vez, no hay manera de resaltar un desastre en concreto como ejemplo ni escarmiento. El desastre está distribuido democráticamente entre todos y cada uno de los millones de usuarios de los ordenadores de todo el mundo que alguna vez han sufrido inconvenientes, retrasos o pérdidas de datos por su culpa, con la extensión a las empresas que, a partir de cierto tamaño, tienen que dedicar recursos concretos (personas, máquinas, sistemas de protección, etc.) a luchar contra los virus y, a la postre, esos gastos terminan siendo repercutidos en el precio de lo que sea que venden y lo terminan pagando los clientes de a pie, que somos las víctimas finales de todo lo que funciona mal.
Ya que no podemos estudiar casos ejemplares, vamos a desarrollar este capítulo como una visión general de qué son y cómo «trabajan» esos elementos malditos conocidos con el nombre genérico de virus.
EL PROBLEMA MÁS RUINOSO DEL MERCADO
Hay que empezar por decir que no se puede realizar una foto —estática— de la situación, sino más bien una película —dinámica: en constante movimiento, con un «argumento» que cambia a cada minuto— de lo que sucede día a día. En esta película aparecen pocos buenos y muchos malos, aparecen gusanos monstruosos, epidemias, espías con armas altamente sofisticadas, ejércitos invasores y hasta románticas cargas de la caballería ligera. Pero no se debe olvidar, en ningún momento, que se trata de la «película» de mayor presupuesto de la historia, pues la práctica totalidad de las empresas se gastan en su supervivencia grandes sumas de dinero para protegerse de esos ataques y, quien no invierte en esas protecciones, en algún momento se gasta sumas aún mayores en recomponer los destrozos del ataque de un virus o de un auténtico y más tradicional ladrón.
Un dato: ya en el año 1984, todavía antes de la invasión de los ordenadores personales y de internet, el «producto» de los robos y fraudes informáticos en Europa Occidental era diez veces superior al de los atracos a mano armada en sucursales bancaria. Y según los incidentes comunicados al CERT (organismo relacionado con el CNI español), desde 1997 se está entre duplicando y triplicando cada año el número de problemas de seguridad de los que se informa, lo que no incluye los incidentes caseros ni en pequeñas empresas.
Podemos intentar establecer una clasificación, primaria, de las amenazas que sufre el software en función de si se trata de ataques dirigidos por personas —¿James Bond? o quizá ¿Robin Hood?—, o de ataques automáticamente realizados por programas que, por supuesto, en su día tuvieron una persona detrás, pero que les dejó que realizaran su daño de forma autónoma y desatendida —¿Terminator?—. En otras palabras, estamos hablando de intrusiones de alguien o de programas autorreplicables.
INTRUSIONES
La intrusión típica es un acceso a sistemas protegidos, ya sea para exhibir habilidad (lo que hacen los hackers, el equivalente a un Robin Hood muy presumido) o para conseguir o manipular la información (el objetivo de los crackers, James Bond, simples rateros o alguien peor). En el segundo caso, en muchas ocasiones, el agresor busca un beneficio personal e inmediato, ya sea dinero, ya hacer daño a entidades concretas por venganza o por cualquier otro motivo.
Los métodos de una intrusión son muy variados y, como ya hemos apuntado más arriba, no se ajustan a patrones estables sino que van evolucionando en el tiempo. Y los que nos defendemos debemos buscar y tapar todos los agujeros de nuestras defensas, pero el atacante tiene una labor relativamente más sencilla, pues a él le basta con encontrar un solo agujero en la muralla para entrar y hacer efectivo todo su ataque.
De todas formas sí que hay ciertos patrones y métodos genéricos, como los que se detallan a continuación.
SUPLANTACIÓN DE USUARIOS
En este caso el atacante, de alguna manera, se hace pasar por una persona con acceso «lícito» a los sistemas. Esto puede conseguirlo robando sus claves de acceso de alguna forma, engañando —en persona— al administrador de los sistemas para que le dé su propia clave o, en ocasiones, utilizando la coacción física sobre cualquier usuario cualificado (es el caso de quien atraca a alguien delante de un cajero automático para que teclee la clave). Evidentemente, una vez obtenida una clave, se dispone de acceso a los sistemas durante un tiempo y se puede realizar con cierta calma el daño, robo o lo que toque.
INTERCEPTACIÓN DE LÍNEAS
Las líneas por las que viajan nuestros datos —e incluso todo el trasiego de las consultas desde terminales remotos, incluyendo a veces las propias claves de acceso a los sistemas— salen de nuestro edificio y recorren la ciudad por caminos muy solitarios —sótanos, galerías de servicios, centrales telefónicas completamente automatizadas— y, por lo tanto, allí son susceptibles de manipulación por parte de los atacantes. En las comunicaciones más clásicas basadas en los circuitos de voz, es bastante sencillo instalar sistemas de «escucha» que graban o transmiten a terceros nuestras conversaciones, por ejemplo —¿qué película clásica de policías y ladrones no incluye algo así?—. Pero por esos mismos circuitos viajan hoy nuestros faxes y muchas conexiones remotas a sistemas que pueden ser interceptadas en varios puntos del (desenfilado) camino que siguen entre nuestro terminal y el extremo contrario.
Los equipos de interceptación más sofisticados no necesitan ni siquiera acercarse a los cables para «escuchar» lo que por ellos circula, sino que lo consiguen por medio de antenas a cierta distancia; incluso, en algunos casos, desde satélites. El caso más espectacular puede ser el de la Red Echelon. Se trata de una supuesta red anglo-norteamericana de espionaje que está «escuchando» todas las comunicaciones posibles en todo el mundo, por medio de electrónica incluida en las centrales telefónicas de fabricación norteamericana, antenas próximas a otras centrales e incluso satélites de órbita baja. Puede parecerle fantasioso a alguno, pero es una acusación que ha sido hecha públicamente por los gobiernos europeos —con la obvia excepción del británico— y no ha sido convincentemente desmentida.
Incluso, tras los sucesos del 11 de septiembre de 2001, el Gobierno norteamericano ofreció los datos obtenidos —presumiblemente por la Red Echelon— a los otros gobiernos que luchan contra el terrorismo internacional, como es el caso del español frente a ETA, dando lugar no solamente a avances en la lucha antiterrorista, sino a la paradójica situación de que un Estado agradece a otro Estado la recepción de información obtenida con el espionaje de su propio territorio soberano.
Insistamos de nuevo en que toda la información de Echelon no está contrastada con una confesión oficial de los involucrados y se basa en acusaciones e indicios, si bien amplios y más o menos públicos[6]. La defensa ante estos ataques, sin embargo, es tan simple como «cifrar los datos»: hay que hacerlo siempre que se pueda, y la mayor parte de las veces es gratis.
INTRODUCCIÓN DE CÓDIGO MALICIOS (DAÑINO O NO) EN LOS PROGRAMAS
Se trata de hacer que un programa —posiblemente un software preexistente adecuadamente modificado para ello— haga «el trabajo» de comunicación, modificación o destrucción de datos. No deja de ser una variante de los puntos anteriores, respecto a los que, «simplemente», se ha automatizado el proceso.
Tiene las mismas dificultades —más o menos— introducirse en un sistema «en persona» que introducir un programa que haga lo que haríamos interactivamente, pero hacerlo con un programa exige una información más precisa y mejor preparación. Por contra, el programa malicioso puede (potencialmente) operar durante más tiempo sin ser detectado, por ejemplo esperando que suceda un acontecimiento clave, y es más difícil rastrear después al responsable, que puede estar aprovechando los resultados desde una considerable distancia.
Todo esto puede hacerse —o, al menos, intentarse— introduciendo el programa malicioso directamente en el sistema que se intenta atacar o, por el contrario, intentarlo a través de que el programa malicioso sea autopropagable; es decir, que se introduce en otro sistema —en la misma red, pero en un sistema (un ordenador) menos crítico, menos protegido, más débil— y que, con métodos descritos en los siguientes puntos, se propaga hasta entrar en el sistema que era el objetivo principal del atacante.
ATAQUES DE DENEGACIÓN DE SERVICIO
Un caso especial de los ataques de software es el ataque de «denegación de servicio». Se trata de provocar la ejecución de un enorme número de transacciones en el sistema atacado —por ejemplo pidiendo una información libre y lícita, pero pidiéndola millones de veces por segundo— con la intención de colapsar el sistema e impedirle dar el servicio para el que está previsto. Es un tipo de ataque de muy difícil defensa, muy especializado, «y muy frecuente».
Por ilustrarlo con algunos ejemplos, la empresa SCO, licenciataria del sistema operativo Linux y con sede en Salt Lake City, publicó en determinado momento su intención de demandar a la mayoría de los grandes usuarios del Linux —pero que no lo habían adquirido a través de ella— porque el código incluía partes del sistema operativo Unix —del que también ostentan la licencia—. La comunidad de usuarios de Linux a lo largo y ancho del planeta se dedicó durante un tiempo a bombardear con protestas el correo electrónico de SCO con la declarada intención de inutilizarlo, cosa que, como la carga que anunciábamos de la romántica caballería ligera, consiguieron plenamente.
Otro ejemplo puede ser el de un anuncio que circuló hace un tiempo por la red en el que se daba, con todo detalle, la oportunidad de ganar un teléfono celular de última generación enviando un mensaje a una determinada persona de Ericsson en Estocolmo. Esa persona, una directiva que realmente trabajaba en la compañía, tuvo que cambiar de correo electrónico ante los miles de mensajes que le llegaban y que, evidentemente, no se correspondían con una oferta real de Ericsson. Se descubrió que el origen de todo estaba en un empleado recientemente despedido por esa directiva y que urdió aquella novedosa venganza.
Lo más normal, sin embargo, es que los ataques de denegación de servicio tengan objetivos económicos y empresariales. Por ejemplo, la empresa de la que uno de nosotros era directivo en un determinado momento de su carrera, compitió por un importante contrato con varias otras (de las que, obviamente, no podemos dar datos, porque nunca se demostró cuál era la responsable) y uno de los parámetros decisorios para el cliente era la calidad de las comunicaciones y velocidad de respuesta ante determinadas peticiones a través de la red.
Casualmente, en los días en los que el aspirante a cliente estaba haciendo sus medidas, una masiva llegada de peticiones de datos, mensajes erróneos (que hay que filtrar, archivar, quizá contestar, y todo eso es trabajo para los ordenadores) y simples escrituras y lecturas en los directorios públicos de la compañía dejaron los ordenadores de servicio por completo saturados con hasta cien veces más tráfico del habitual. El aspirante a cliente se llevó muy mala impresión de la velocidad de respuesta y, por supuesto, firmó el contrato con otro de los aspirantes a suministrador, uno que en esos días no había sufrido ningún ataque de denegación de servicio y había dado un tiempo de respuesta muy normal.
Y si se buscaba el origen de tanto desaguisado, por supuesto, no se encontraba a ninguna empresa conocida por los alrededores: esos ataques se pueden contratar, lo mismo que el envío de correos basura o tantas otras cosas; se trata de «servicios» que tienen su lista de precios y son ofrecidos por empresas que cotizan en bolsa, en las bolsas de países que, típicamente, tienen nombres difíciles de pronunciar y cuyas capitales nos cuesta aprender, porque en su mayoría son estados que se separaron de la extinta Unión Soviética, que tenían una infraestructura industrial más o menos aceptable y cuyo acceso al capitalismo ha sucedido de forma desordenada y fuera de todo tipo de tratados internacionales.
Un caso muy actual es el de la «organización» que reivindica sus ideas bajo el nombre de Anonymous, la cual utiliza una y otra vez este tipo de ataque con cierto éxito aprovechándose de la sorpresa y de la falta de preparación de tantas organizaciones que basan sus defensas en una buena batería, de abogados.
La máscara que utilizan los miembros de Anonymous.
PROGRAMAS MALICIOSOS AUTOPROPAGABLES
En los últimos párrafos hemos estado dando por supuesto que un atacante, una persona, estaba dirigiendo el ataque para obtener un resultado concreto. Pero otras veces, muchas veces, el objetivo no es más que hacer daño de una forma genérica, como quien coloca minas en el campo para «atacar» a cualquiera que pase, sin importar demasiado a quién perjudique.
Si a esa imagen de la mina explosiva le añadimos la posibilidad de que al estallar siembre de otras nuevas minas los alrededores, tenemos un programa dañino autopropagable o, en una referencia más cinematográfica, un programa autorreplicante, lo cual, demos gracias al cielo, no tiene parangón entre las armas «clásicas» salvo el desgraciado caso de algunas armas bacteriológicas.
Los programas maliciosos autorreplicantes suelen seguir una pauta de comportamiento en tres fases claramente diferenciadas:
1. Infección. Es la fase en la que se introducen en un sistema por el mecanismo que sea, se instalan, se integran en programas preexistentes, toman información del sistema residente, etc. Veremos más adelante algunos de los mecanismos de infección actuales.
2. Contagio. Es la fase en la que se copian, se autorreplican en sistemas vecinos por el mecanismo que sea —últimamente suele ser por varios mecanismos a la vez—. Entre estos mecanismos se pueden encontrar hoy en día —mañana quién sabe— los siguientes:
La fase de replicación suele ser un período relativamente largo de tiempo y a veces se menciona como fase «durmiente» del programa malicioso, durante el cual no suele dar ninguna otra señal de vida. Para el programa malicioso es fundamental que nadie le «moleste» durante su «reproducción», pues es su garantía de supervivencia.
3. Daño. Es la fase destructiva —en mayor o menor grado— en la que hacen la labor para la que están programados. Es de destacar que nunca un malware hace daño antes de haber tenido una oportunidad de reproducirse pues, si no fuera así, si atacara antes de reproducirse, moriría a la vez que su víctima sin provocar ulteriores contagios.
Otras veces, cada vez más, el daño consiste en dejar el ordenador abierto para que quien hizo el programa pueda entrar y hacer lo que quiera con él, por ejemplo sacarnos a relucir las claves de acceso a nuestro banco (hablaremos de ello en el capítulo de fraudes bancarios) o de nuestras tarjetas de crédito. Otras veces el mal uso que hace el delincuente del acceso a nuestro ordenador consiste enviar desde este los correos electrónicos de propagación de su malware o, cada vez más, utilizarlos como ordenadores zombis desde los que se envían los correos basura o los ataques de denegación de servicio.
Quien tiene el control del ordenador de otro puede hacer algunas cosas, pero este es un negocio de «volumen» y de lo que se trata es de controlar muchos ordenadores para que quien lo consiga no sólo pueda ofrecer «servicios» de envío de correos o ataques de denegación de servicio, sino que también pueda «comerciar» con esa red de zombis y venderla o alquilarla a otras organizaciones que medran en el lado oscuro de la tecnología.
También hay que decir aquí que muchos programas maliciosos no hacen ninguna labor destructiva explícita: no borran ficheros, no bloquean el sistema, no borran datos, ni lo dejan abierto a ser controlado por una red delictiva; pero, de todas formas, hacen daño en forma de desprestigio, de ralentización del ordenador —por estar haciendo otra cosa, aparte de lo que debe hacer— y, sobre todo, por la enorme cantidad de horas de trabajo de gente experta que se deben dedicar a «sanear» sistemas y redes infectadas, un gasto no productivo y que llega a tener una presencia significativa en la cuenta de resultados de alguna empresa frecuentemente atacada.
MECANISMOS DE PROPAGACIÓN
Los mecanismos de propagación automática de este malware son también muy diversos y están en constante evolución, aunque se puede establecer una cierta clasificación siempre contagiada de referencias biológicas difíciles de evitar, por lo descriptivas y por lo extremadamente bien que se adaptan a la explicación:
Virus. Es el nombre que popularmente denomina todo tipo de programa malicioso aunque, en rigor, un virus es un programa malicioso que se integra —infecta, contagia— en otro programa portador —infectado— y que bajo su apariencia inocente y sana se ejecuta en los sistemas, desde los que se replica, reproduce e infecta otros programas y otros sistemas.
Un poco más en detalle, un virus es una pieza de código que se añade al código de un programa, a veces sustituyendo una parte del código original. Es evidente que para hacer eso sobre un programa preexistente hay que conocerlo muy bien. Un virus concreto infecta, por lo tanto, ficheros muy determinados: su programación está desarrollada para modificar programas conocidos y, si modificara cualquier otro, el engendro resultante no sería viable ni tendría ninguna posibilidad de funcionar de forma coherente. Y es que el programa infectado debe funcionar básicamente bien para que el usuario del sistema lo siga ejecutando confiadamente: sólo un programa que está en ejecución puede hacer algo, sea bueno o malo.
Los programas infectados, por lo tanto, suelen ser los más normales y omnipresentes: los del sistema operativo o los de tratamiento de textos, diseño, etc. También es muy normal infectar documentos añadiendo a un documento cualquiera una función —macro— que hace que durante su edición o lectura se comporte como un programa dañino —virus de macro—. Cuando el programa infectado forma parte del núcleo del sistema operativo —infección en el sector de arranque del disco, por ejemplo—, los daños son especialmente difíciles de recuperar, siendo muy normal terminar el día resignados y reinstalando todo el contenido del ordenador desde cero.
Gusano. Un gusano, al contrario que un virus, no se integra en ningún programa preexistente para convertirlo en maligno, sino que es en sí mismo un programa completo y autónomo. Su desarrollo, por lo tanto, es técnicamente mucho más sencillo, pero tiene por el contrario la dificultad intrínseca de conseguir parecer suficientemente atractivo como para que lo dejemos entrar en nuestro sistema y lo ejecutemos, aunque en realidad no hace nada positivo y sí mucho daño. Otra consecuencia de ello es que un gusano debe estar preparado para hacer todo su trabajo a la primera, pues no es probable que el receptor de este malware lo ejecute más de una vez.
La mayoría de los gusanos hacen uso de la llamada «ingeniería social» como parte de su técnica de infección. Generalmente se propagan como correos electrónicos que prometen con su «lectura» algo realmente atractivo, lo cual hace que la gente los abra, se sienta más o menos desilusionada con el resultado —en la mayoría de los casos ningún resultado, lo cual se achaca a que algo «ha funcionado mal»— y se suele olvidar el asunto. La fase de contagio ya ha terminado. El gusano suele, en ese momento, pasar a la fase de replicación, reenviándose por correo, copiándose en sistemas vecinos, etcétera.
La ingeniería social utilizada suele mejorar en cada ataque, pero empezó siendo simplemente un «Asunto» del mensaje del tipo «I love you», para pasar en los últimos tiempos a utilizar como asunto y texto del mensaje trozos de documentos sacados del último sistema atacado con éxito, con lo que multiplican su «realismo», falsean el remitente, cambian de forma cada pocos envíos, no contagian más de unos pocos sistemas cada día para no llamar la atención, etcétera.
Un caso extremo —y mucho más común de lo que se puede suponer— de utilización de la ingeniería social son los mensajes conocidos como «Hoax», que no contienen ningún código malicioso, pero describen un nuevo «virus que no detectan los antivirus y no hay vacuna y es muy peligroso», con detalles de que reside en un programa de nombre muy concreto de un directorio del sistema. Recomiendan borrarlo y, por supuesto «avisar a todos los compañeros, amigos y familia». El tal fichero a borrar no sólo no es ningún virus, sino que suele ser un programa del sistema operativo necesario para la buena marcha del ordenador, y que el usuario, tras avisar a toda persona conocida, ha borrado incautamente de su PC, creándose un problema, además de unos cuantos enemigos entre sus conocidos, y ahorrando al creador de programas maliciosos bastante trabajo de programación.
Bomba lógica. Es un mecanismo que activa una función no autorizada al cumplirse ciertas condiciones. En la forma de «programa que deja de funcionar si no se cumplen a tiempo determinadas condiciones» es un recurso frecuentemente utilizado de forma «comercial» por algunas empresas de desarrollo de aplicaciones que dejan por ejemplo treinta días a prueba el programa, pero si en ese período no se introduce un código —proporcionado por el fabricante del programa cuando ha cobrado su precio— el programa, simplemente, se bloquea, deja de funcionar.
El mecanismo es el mismo, pero no se contempla con el mismo beneplácito cuando no se trata de cobrar un precio lícitamente acordado, sino de hacer daño cuando ya se está suficientemente lejos. Es normal, en los casos en que algo así sale a la luz, que esté involucrado un empleado —típicamente un programador: de nuevo hablamos de la explosiva combinación de personas con un salario relativamente bajo, conocimientos de alto nivel y acceso sin cortapisas a los sistemas de la entidad— que, seguramente presintiendo un despido, deja sus programas «cargados» con una función maliciosa dispuesta a estallar, por ejemplo, con el cierre de cuentas de fin de año. Raras veces se trata de algún tipo de chantaje sino, en la mayoría de los casos, de venganzas personales a largo plazo.
Caballo de Troya. Son programas que incorporan subrepticiamente funciones no autorizadas, en general para tomar control de un sistema tras el ofrecimiento de un programa o aplicación que se supone que hace otras cosas y, en general, ciertamente las hace. Hay múltiples ejemplos conocidos, algunos de ellos llevados a la pantalla en entretenidas producciones de Hollywood —como La Red—. La parte fundamental de la idea es, en este caso, un programa atractivo que, además, incluye alguna función maligna. Así sucedió en el caso del disco con el programa de la declaración de la renta en España, en la versión de hace algunos años que, en el caso de los que se distribuyeron junto con una determinada revista, incluían un virus que algún empleado había introducido.
En esta categoría se podría incluir una de las formas de contagio más comunes: las páginas web que, al visualizarlas, ejecutan el código malicioso (o, al menos lo intentan: un buen antivirus suele parar estos ataques sin problemas). El consejo, por supuesto, es no navegar por páginas que no sean de confianza.
Puerta falsa. Es un mecanismo no documentado y desconocido por el usuario legítimo, que permite a un tercero obtener acceso no autorizado a un recurso del sistema. De nuevo se han encontrado casos relacionados con utilizaciones no muy malintencionadas, con mecanismos de acceso dejados allí por programadores que los usan para dar un servicio más rápido a sus usuarios, entrando en el sistema a corregir errores de utilización de las aplicaciones y saltándose engorrosos y lentos filtros de seguridad. Ni que decir tiene que esta nunca se considera una buena práctica.
El caso más normal, y muy peligroso en determinadas circunstancias, es el de programas maliciosos introducidos en sistemas para que los dejen indefensos ante un ataque más específico. Dado el carácter masivo de las infecciones por parte de algunos programas maliciosos, no podemos estar seguros de contra quién en concreto estaban dirigidos, pero nadie puede quedarse tranquilo sabiendo que algunas de las cosas que hacen los «virus» de última generación es desbloquear puertos de comunicaciones para que cualquiera pueda entrar en nuestro sistema sin restricciones, enviar nuestras claves de acceso por la red a «alguien» y anular la capacidad de cortafuegos y antivirus para detener ulteriores ataques.
Todo eso, y cada vez más lindezas, es lo que hacen los «virus» en nuestros sistemas al entrar, incluso antes de hacer realmente daño. Como panorama es todo un desastre, ¿no?
¡VIRUS DE ESTADO!
Por último, un «verso suelto»: en junio de 2012 el Gobierno norteamericano reconoció que el virus Stuxnet, que en 2010 infectó varias decenas de miles de sistemas cambiándoles la velocidad y cantando una cita bíblica (no tiene desperdicio el detalle), era en realidad parte de un ciberataque que el Gobierno de Bush Jr. lanzó contra el centro iraní de procesamiento de uranio en Natanz y que, ya en tiempos de Obama, se salió del recinto por un descuido de uno de los ingenieros nucleares iraníes que se llevó un portátil a casa y lo conectó a donde no debía.