Criptovirología

Es el año 1989. Una empresa farmacéutica recibe un paquete por correo con un disquete que dice contener información importante sobre el SIDA. Un empleado se decide a introducirlo en un equipo, pero enseguida percibe que algo no va bien: no puede acceder a ningún dato en el disco duro. Se trata de algo bastante más grave de lo que pueden imaginar. El programa que llegó en aquel disquete ha cifrado el nombre de los archivos del ordenador y ahora muestra un texto reclamando el cobro de una importante suma de dinero a cambio de enviar la clave para recuperar los datos. Y no es la única empresa afectada.

Ya hoy, sabemos que todas estas compañías farmacéuticas sufrieron el que fue el primer ataque por criptovirología de la historia, mediante el troyano AIDS [inglés]. Y al contrario de lo que suele suceder con este tipo de ideas, esta modalidad permanecería en el olvido hasta unos siete años más tarde, cuando Moti Yung y Alan Young desarrollaron en el laboratorio una prueba de concepto que utilizaba criptografía asimétrica para cifrar todos los datos de la víctima.

Las ideas aportadas por estas investigaciones sirvieron de base al desarrollo del llamado Ransomware: virus que cifran el contenido del disco para luego reclamar un rescate a cambio de la clave, y cuya explosión comenzó en 2005 con Pgcode.

Un año más tarde, en 2006, aparecería el troyano CryZip, o Zippo, que comprimía algunos tipos de documentos en archivos Zip cifrados siguiendo un esquema simétrico. Sin embargo esta técnica no es demasiado sofisticada y los expertos no tuvieron problemas para romper la clave (de hecho, hay bastantes aplicaciones por Internet que permiten obtener la contraseña de archivos comprimidos).

A fecha de hoy todavía no han aparecido criptovirus suficientemente elaborados como para suponer un problema serio, y de hecho la mayoría pueden considerarse simples pruebas de concepto o experimentos. Sin embargo, es muy probable que todas estas técnicas se vayan perfeccionando con los años, por lo que es de suponer que la fiesta acaba de empezar… De todos modos, la forma más sencilla de estar protegido frente a este tipo de ataques es la de siempre: utilizar un sistema operativo seguro (ejem), y realizar copias de seguridad periódicas. Eso nunca falla.

Para saber más…

El artículo original, de Alan Young y Moti Yung, es Cryptovirology: extortion-based security threats andcountermeasures. Por si a alguien le interesa su trabajo, tienen un libro titulado Malicious Cryptography: Exposing Cryptovirology, que apuesto a que anda por la mula :-P. Estos dos autores también se ocupan de mantener la web Cryptovirology, donde hay ejemplos con código fuente y muchos artículos dirigidos al mundo académico. También hay un artículo muy interesante titulado Malicious cryptography, con su primera y segunda parte.

Si encontráis más información o alguna referencia interesante no dudéis en pasar por los comentarios… :-)

Publicado en Seguridad, Virus | 3 Comentarios

Último recurso

A la atención de: La Tierra
Asunto: Diagnóstico de reparación de los sistemas

Estimado cliente,

En relación a su petición de reparación del planeta, y tras haber realizado diferentes diagnósticos, pasamos a enumerar los problemas más significativos encontrados en sus sistemas:

  1. Exceso de software malicioso (W32.Politico, W16.Worm.Terrorista, y otras amenazas)
  2. Carencia de recursos suficientes del sistema (en parte producida por el malware descrito en el punto anterior).
  3. Falta de escalabilidad y sobreexplotación de los sistemas.
  4. Ausencia de coordinación entre subsistemas.

En base a los cuales le sugerimos la adopción de las siguientes medidas:

  1. Formatear el sistema Tierra.
  2. Restaurar la configuración de fábrica.
  3. Instalar Pangea versión 0.0.
  4. Instalar Fauna 0.0 y Flora 0.0.

Para implantaciones futuras, le sugerimos que considere migrar el planeta a un sistema tipo Unix o Linux.

Esperando que dichas medidas resulten de su satisfacción, le recordamos que nuestro servicio técnico está a su entera disposición. No dude en consultarnos para otras actuaciones si así lo requiere.

Atentamente,

J. C. Godman
Responsable del servicio técnico.

Publicado en Virus | 4 Comentarios

Consultorio NSL: Virtualización y antivirus

Hace un tiempo escribí sobre virtualización en MacOS utilizando Parallels Desktop. Y hace unos días, Juan formulaba la siguiente pregunta en los comentarios de la entrada en cuestión:

Hola, si tengo Windows en Parallels, ¿es necesario instalar un antivirus?.

Gracias.

Switcher

La respuesta, como casi siempre, es un poco a la gallega: depende. Depende de los matices exactos de la pregunta, así que vamos a concretar el ámbito de lo que queramos proteger con el antivirus. La respuesta está centrada en un Mac con Parallels, pero puede generalizarse para cualquier equipo con cualquier máquina virtual.

1. Quiero proteger mi Windows virtualizado

En este caso suponemos que queremos proteger la máquina virtual contra los virus que afecten a Windows XP. El software se ejecuta igual en una máquina virtual que en un ordenador físico normal y corriente, por lo que los virus siguen afectándonos de la misma forma. Una buena solución es, por tanto, instalar un antivirus en la máquina virtual para protegerla de este perro mundo.

Otra opción es hacer copias periódicas del archivo del Mac que contiene la máquina virtual con Windows para restaurarlo en caso de problemas, pero esto ocupa espacio adicional y puede que no sea del todo fiable.

2. Quiero proteger mi Mac

A veces se planta la duda de si un virus que ataque a Windows en la máquina virtual podría causar problemas en nuestro equipo. La respuesta es que no, aunque hay matices.

En principio, no hay ninguna manera por la que un virus pueda saltar de la máquina virtual al ordenador que la simula, el antifitrión. Y aunque pudiera violar la protección de memoria, lo cual no parece nada sencillo, el código ejecutable de Windows no funciona en MacOS, así que hasta en el caso más apocalíptico estaríamos a salvo.

Sin embargo, un virus diseñado a tal efecto podría acceder a los directorios de nuestro equipo compartidos por Parallels y modificar nuestros archivos de forma relativamente sencilla. Para estar seguros y evitar esta posibilidad caben dos opciones:

  1. Deshabilitar la compartición de archivos entre el Mac y la máquina virtual.
  2. Compartir los archivos en sólo lectura. Esto es recomendable como norma general para evitar errores de esos que tienen mal arreglo.

Todo esto podemos configurarlo desde las propiedades de la máquina virtual en cuestión. Creo que eso es todo, si algo no ha quedado bien explicado lo resolvemos en los comentarios.

Aprovecho la ocasión para recordaros que podéis plantear dudas sobre cualquier tema para ser resueltas en nuestro Consultorio Nosololinux. Al fin y al cabo, este blog se creó para eso (y vaya si ha degenerado… :-P).

Publicado en Consultorio NSL, Sistemas Operativos, Virus | 10 Comentarios

Eligiendo antivirus (III)

nod32.jpgUna vez realizada una introducción al apasionante mundo del software antivirus, sería una buena idea comentar algunos de estos programas. Por el momento, ésta será la última entrega de la serie, donde vamos a centrarnos en las soluciones comerciales más populares. Muchos lectores recomendaron software muy interesante que analizaré y someteré a alguna prueba, para contarles después qué resultados he obtenido. Pero eso será más adelante, porque hay otros temas en cola :-)

Antes de empezar, me permito el lujo de recordar que lo que aquí expongo son opiniones sin más autoridad que la que me da mi experiencia como usuario… el objetivo de esta entrada no es hacer un análisis exhaustivo sino aportar algunas referencias útiles a los recién iniciados. Aclarado este punto, vayamos al lío:

Panda Antivirus

No puedo empezar por otro que no sea el Panda, una de mis bestias negras (bueno, negra y blanca, como todo buen panda). El sistema en sí está bastante bien, pero tiene un problema grave: su rendimiento es pésimo (por decirlo suavemente). Siempre que me he empeñado en instalarlo he salido escaldado, y sinceramente, no creo que vuelva a hacerlo. Tiene demasiadas funciones inútiles y demasiados gráficos que consumen un montón de recursos… Además desinstalarlo puede ser misión imposible, y me consta que no soy el único caso. Parezco un maldito obseso psicópata cuando hablo del Panda, pero es que supera mis fuerzas… Como nota le pongo un 3. Aprobará cuando tenga evidencias de que no es un virus camuflado :-P [web]

Norton Antivirus

Es muy criticado, pero un servidor lo utilizó cuando era güindosero y no está tan mal. Vale que también es bastante lento por culpa de la misma e inútil sobrecarga gráfica que padece Panda… pero las versiones anteriores a la 2005 funcionan razonablemente bien. Tiene unos buenos porcentajes de detección, y se le dan bastante bien el spyware y demás bestias… aunque como digo no es lo mejor de lo mejor, en mi humilde opinión está bastante bien. Yo le doy un 5. Se puede comprar desde 45€ [web]

Nod32

Tengo que confersar que es mi favorito. Apenas se le nota cuando está en ejecución, y detecta y elimina toda clase de criaturas con bastante eficacia. En cuanto a los tiempos de reacción figura entre los primeros. Creo que es uno de los pocos productos antivirus que puede calificarse de bueno en base a los criterios que comentamos ayer. Quizá el problema es que resulta un tanto complicado para el usuario novato, pero vale la pena. Yo incluso me planteé adquirirlo antes de pasarme a Mac, y me consta que es bastante asequible (creo que se anda por los 50€ para uso personal). Yo le doy un 8. [web]

Kaspersky

También tiene unos excelentes tiempos de respuesta a nuevas amenazas, y una ejecución muy silenciosa, que casi pasa desapercibida. El diseño de la interfaz era bastante pobre en principio pero ha ido mejorando con los años, hasta ser un programa de gran calidad. Es potente a la vez que resulta relativamente sencillo de utilizar. En mi opinión es todo un referente, y vale la pena probarlo. Además es baratillo (40 € más o menos). Así que le doy un 9. [web]

Esto es todo por el momento. Como les he dicho, intentaré descolgarme con un análisis más detallado de las alternativas libres y gratuitas en unos días. No puedo prometer y no prometo, pero lo intentaré. O como dijo Bart, “No te prometo que lo intente, pero intentaré intentarlo” :-)

Publicado en Seguridad, Virus | 4 Comentarios

Eligiendo antivirus (II)

Ayer terminamos comentando (siempre según mi opinión) el retraso del software libre y gratuito en cuando a software antivirus se refiere. Es verdad que, como se han apresurado a comentar, existen soluciones para uso personal (AVG, Antivir o Avast) que forman parte de ese grupo de programas, que sin ser libres, por lo menos son gratuitos.

Existen empresas más o menos sólidas tras estas aplicaciones, de ahí que la comunidad de desarrollo libre esté obligada que hacer un enorme esfuerzo si quiere ponerse a la altura de las compañías en la protección contra los virus. Proyectos como OpenAntivirus o ClamWin son buenas ideas, aunque por desgracia no parecen interesar excesivamente a la comunidad :( De hecho, revisando algunos enlaces llegué hasta esta sección de la Wikipedia en lengua inglesa, donde queda claro que el panorama es un tanto desolador, sobre todo si lo comparamos con esta otra… es algo deprimente.

Personalmente, y en este tema, siempre me he ido al software comercial. Quizá el motivo más importante es que los tiempos de respuesta ante nuevas amenazas de empresas como Kaspersky Lab o Symantec son muy cortos si los comparamos con otras, por lo que uno pasa poco tiempo desprotegido cuando surge un nuevo bichito… He decidido, no obstante, y a raíz de los comentarios a la entrada anterior, ponerme al día en antivirus gratuitos, así que ya les comentaré los resultados dentro de unos días (o esa es al menos mi intención, que ya me conozco…)

Antes de pasar a comentar las diferentes soluciones antivirus, me parece interesante dar antes unos parámetros que nos permitan conocer qué debe tener, al menos idealmente, un buen antivirus… así, en función de estas características, podremos valorar mejor la calidad de las distintas aplicaciones.

¿Qué debemos buscar en un antivirus?

Este escribidor opina que seis cosillas nada más:

  1. Lo primero es el rendimiento. El remedio debería ser mejor que la enfermedad, lo cual parece no estar muy claro… No tiene sentido instalar un antivirus si por su culpa no vamos a poder usar nuestro ordenador. Tiene que ser ligero, que el equipo lo ejecute sin ver demasiado afectado su rendimiento normal.
  2. En segundo lugar tiene que tener un buen compromiso entre sencillez y funcionalidad: sin opciones extrañas poco explicadas cuya incorrecta configuración deteriore inútilmente el rendimiento o deje expuesto al equipo, aunque es preciso que la configuración sea completa para que los usuarios avanzados optimicen el funcionamiento del programa.
  3. En tercer lugar, tiene que tener un monitor permanente que estudie el comportamiento del sistema en todo momento: es la única manera de aplicar una protección contundente. Por decirlo de alguna manera, tiene que estar siempre vigilante por si un programa compromete la seguridad (orweliano total, como ven). En relación con esto, es esencial que tenga mecanismos de autoprotección, para evitar ser infectado por los virus, lo cual sería altamente catastrófico y divertido a un mismo tiempo.
  4. En cuarto lugar, y dados los tiempos que corren, donde la mayoría de las infecciones llegan a través de Internet, es conveniente que el antivirus analice el correo entrante y las acciones del navegador, impidiendo la ejecución de scripts si fuera preciso. También debería proteger contra amenazas que, sin ser estrictamente virus, sí sean software dañino, como los troyanos y otros bichitos igual de simpáticos. En relación con esto último, sería óptimo que detectara spyware o aplicaciones dudosas que entorpecerán el funcionamiento del equipo y que atentan contra nuestra privacidad.
  5. Un antivirus debe estar mantenido por un equipo que libere actualizaciones periódicas y especiales para las amenazas más graves. Debe permitir renovar sus definiciones automáticamente y estar en permanente desarrollo.
  6. Y por último, lo más importante: detectar todos virus existentes, incluir técnicas heurísticas para detectar la mayoría de los que aun no se han descubierto e incluir capacidades para restaurar, aislar o eliminar los componentes infectados. Parece obvio pero no debe de serlo…

Tal vez no están todas las que son, pero creo que son todas las que están. ¿Me he dejado algo? Basándonos en estos requisitos, daremos un vistazo rápido a algunos programas concretos. Y eso será en la siguiente entrega :-)

Publicado en Seguridad, Virus | 2 Comentarios

Eligiendo antivirus (I)

La verdad es que si los virus representan un verdadero problema, el elegir antivirus no es para menos, sobre todo cuando se quiere algo bueno y barato (y bonito, por qué no). Voy a adelantar que la solución más barata a medio o largo plazo es pasarse a Linux o a Mac ;-), que raramente se ven afectados por estas simpáticas criaturas. Pero si no nos queda más remedio que usar Windows o no nos atrevemos a romper las duras cadenas de la rutina, tal vez la única solución consista en instalar un antivirus.

El mundo antivirus es uno de los pocos campos donde probablemente el software gratuito no acudirá en nuestra ayuda, ya que, hoy por hoy, la situación es bastante precaria. Hay varias causas que explican esta situación. Aunque todas parten del hecho de la tecnología antivirus precisa de un mantenimiento intensivo que sólo puede afrontar un equipo con dedicación exclusiva y altamente profesionalizado.

Muchos se preguntarán por qué sigue siendo imprescindible pagar por un buen antivirus, sobre todo con el reciente desarrollo de los sistemas libres y gratuitos. Bueno, vamos a razonar juntos… :-) Veamos: los virus afectan principalmente a Windows, y para estar protegidos necesitamos un antivirus, si es posible gratuito y de calidad. La mayoría del software gratuito de calidad es software libre. La mayoría del software libre para Windows tiene su origen en Linux. Linux no es afectado de manera significativa por los virus. Luego Linux no necesita de antivirus.

La comunidad de desarrollo de software libre utiliza mayoritariamente Linux, por lo tanto la comunidad de desarrollo no precisa de un antivirus para Windows… luego la comunidad de desarrollo no producirá un antivirus para Windows, y si lo hace, habrá tan pocos usuarios interesados en colaborar que el producto resultante no tendrá suficiente calidad.

Más aún: hay características especiales que hacen pensar que no habrá nunca grandes antivirus libres: es necesario un duro esfuerzo investigador sostenido a lo largo del tiempo: las empresas grandes como Symantec mantienen enormes equipos altamente especializados dedicados a encontrar respuesta a las nuevas amenazas: la mayoría de las organizaciones que apoyan el software libre no pueden permitirse contratar personal tan específico y exigirles una dedicación tan importante.

Quizá alguien discrepe en esto: son opiniones puras y duras… pero creo estar ajustándome a la realidad: tendremos que pagar por nuestro antivirus. There aren’t more eggs. (¿Lo he escrito bien? el inglés jamás fue mi fuerte :-P). Así que en la próxima entrega veremos, a partir de este punto, qué soluciones existen y cuál es la mejor para cada necesidad.

De momento, diviértanse con este boletín de Panda Software que me acaba de llegar al correo (se lo juro):

Estimado cliente:

Llega la máxima protección frente a virus, spyware y hackers: PANDA ANTIVIRUS + FIREWALL 2007, el nuevo Titanium.

¿POR QUÉ NECESITAS TENERLO?
* Integra la última tecnología para hacer frente al fraude online, deteniendo y bloqueando keyloggers, puertas traseras…

Y el mejor motivo de todos (dados los antecedentes…):

* Diseñado para consumir el mínimo de recursos de tu ordenador, adaptándose a las características de tu PC.

Quisiera escribir con más regularidad, pero estoy de baja bloguera por enfermedad… no, no es una infección vírica :-P sino un resfriado algo complicado. Lo justo para que a un servidor no le apetezca pasar más horas de las imprescindibles frente al ordenador… Tengo que cuidarme.

Publicado en Seguridad, Virus | 8 Comentarios

Que no panda el cúnico (nunca mejor dicho…)

Todo empezó una noche de primavera. Estaba yo solo en casa, con un portátil encima de la mesa con el Norton Antivirus caducado y por tanto en peligro que reclamaba mis cuidados. Me decidí salir por un momento de mi universo Mac y ponerme a pensar cómo iba a manejar aquella situación: el ordenador necesitaba urgentemente un antivirus actualizado.

20040907panda.jpg

Tras buscar entre tarrinas, fundas y más fundas de cedeses, constaté lo inevitable: no tenía ni una sola copia actualizada de ningún antivirus. Vaya situación. En ese momento me acordé de un Panda Antivirus original que tenía guardado en algún lugar… para tranquilizarles, diré que me lo habían regalado en un curso sobre seguridad informática (gran paradoja…). Lo observé con desconfianza: había tenido problemas con el viejo Panda Platinum hacía unos años… Comencé a leer la información de la caja: “máxima protección”, “impide el acceso de hackers”, “lo instalas y te olvidas” (esto último resultó ser cierto, bellacos).

Con tanta frase, tanta característica interesante y tantos logotipos de “mejor producto del año”, pensé que tal vez no sería tan malo como las anteriores versiones… vamos, que lo mismo se habían reformado. Los requisitos mínimos me animaron: Pentium 150 Mhz. Pensé que el Centrino podría de sobra con él, así que decidí instalarlo…

Que el autoarranque se bloqueara no fue un buen augurio, pero decidí continuar… finalmente, y tras una espera eterna, logré instalarlo, validando más tarde mi flamante licencia mediante un proceso bastante poco intuitivo… Pero ya tenía mi ordenador protegido. O eso pensaba.

El primer reinicio fue inusualmente lento. Pero era el primero, así que no le di importancia. Cinco minutos clavados tardó en iniciarse el Windows XP, cuando antes arrancaba en un par de minutos. No pasa nada. Cuando por fin pude abrir el panel de control del antivirus me encontré con una interfaz de las que odio: un montón de dibujos y de parafernalia tan bonita como lenta. Acceder a cada menú era una nueva aventura. Intenté tranquilizarme y tomar aire. Configuré las opciones como más me gustó, y empecé a descargar las actualizaciones.

En todo ese tiempo no logré utilizar el ordenador (256 de RAM, 1 GHz) para nada que no fuera el #@$ Panda. Al fin, la actualización terminó de bajarse. En ese momento, el antivirus me informa de que ha ocurrido un error y que debo reiniciar mi máquina. Ese detalle me indignó hasta los topes… ¿cómo puede un antivirus exigirme el reinicio del equipo por un error interno? ¿y si no puedo reiniciarlo? ¿así me protege el nuevo Panta Antivirus + Antispyware Titanium 2006?

Me resistí, pero al final tuve que claudicar. Reseteé el ordenador con cara de pocos amigos. Esta vez tardé 7 minutos en poder usar el ratón. Me estaba poniendo de color verde. La barra de tareas de Windows aparecía a la mitad, nunca había visto nada parecido. Sin duda el programa más lento y pesado que he visto en la vida. Un virus habría perjudicado menos el rendimiento de la máquina.

Así que, chiscándome en los muertos del tal panda, me dispuse a desinstalarlo. Error. Lo intenté de nuevo. Nada… En esa situación, la información del disco comenzaba a estar en cierto peligro… Por fortuna, pronto sería fulminado por las tropas imperiales :-P. Reinicié en modo “a prueba de fallos” como administrador. Tampoco podía. Borré los archivos por las bravas, limpié el registro. Reinicié el portátil, que tardo poco más de un minuto en arrancar, libre de sus cadenas de bambú.

Y así terminó mi breve e intenso coqueteo primaveral con Panda. Estoy pensando, según voy escribiendo esto, en instalarlo en mi Pentium I a ver si de verdad funciona, tal y como promete la publicidad… es intrigante… igual es tan lento que acaba tirando más rápido… creo que voy a probarlo :-P

He aprendido muchas cosas de esta aventura. La más importante es que Panda Software no ha sido todavía capaz de desarrollar algo decente, y que posiblemente no lo hará. También me he planteado delicadas preguntas sobre los criterios que siguen las empresas para dar sus certificaciones. Por desgracia, todas mis conclusiones están llenas de palabras malsonantes e improperios diversos, así que me voy a morder la lengua antes de decir que me encantaría ver la cabeza de ese maldito panda separada del resto de su cuerpo.

Pero la publicidad no engañaba: “lo instalas y te olvidas”. De volver a usar tu ordenador, se entiende.

Publicado en Indignado me ando, Seguridad, Virus | 11 Comentarios

El virus Chernobyl (CIH)

storycomputervirus.jpgHace unos días veíamos algunas cosas sobre los virus y cómo funcionan, y dejábamos pendiente una explicación detallada del virus CIH, popularmente conocido como Chernobyl. Pues bien, les presento un análisis pormenorizado de esta simpática criatura: cómo funciona, cómo infecta a otros programas y cómo logra dejarnos el ordenador como salido de un accidente nuclear.

Y aclarado esto, empecemos diciendo que una parte importante de los programas es el control de errores: cuando un programa “la pifia”, el sistema retoma el control e intenta salvar los muebles. En el caso de los virus, si hay un error durante la ejecución no nos interesa para nada que el sistema se entere, por lo que vamos a modificar el manejador de las excepciones para que el SO no se entere de nada. Para los amantes del rigor, el virus modifica el SEH (Structure Exception Handle). Así, si hay un error, en principio el virus retendrá el control de la situación.

Lo siguiente es ver cómo modificar los permisos con los que el programa se ejecuta. En Windows la seguridad está configurada en forma de anillos, que delimitan determinadas zonas. El primer anillo corresponde a los procesos del SO, y las aplicaciones que se ejecutan en este anillo tienen acceso a todo el sistema. El siguiente anillo tiene menos permisos, y así sucesivamente.

Las aplicaciones de usuario se ejecutan en principio en el tercer anillo, el llamado (seguro que no lo imaginan) “Ring 3”. La idea es que nuestro virus se convierta discretamente en una aplicación “Ring 0” para poder acceder a todo el sistema.

Para hacer esto es necesario vulnerar el mecanismo de protección, pero estos mecanismos en Windows 9x no estaban demasiado pulidos, de modo que el virus se servía de determinadas vulnerabilidades para hacer este cambio de anillo. Para quienes veneran el rigor técnico sobre el bien y el mal, habrá que decir que semejante cosa se consigue modificando la IDT (Interrupt Descriptor Table, Tabla de descriptores de interrupciones) y generando después una excepción, lo que le permitirá ejecutar su código con los permisos más elevados del sistema.

Una vez “trapicheado” el sistema, el virus se coloca en la memoria como un programa cualquiera y, como ya sugerimos en la entrega anterior, espera a que se ejecute alguna aplicación. Previamente habrá devuelto el control al programa “portador” para que haga lo que tenga que hacer.

Bien, ya tenemos nuestro virus en memoria esperando para atacar. Cuándo se cargue en memoria una posible víctima intentará la infección: Lo primero será comprobar si es un ejecutable de Windows y que no haya sido infectado anteriormente ¿cómo sabe esto último? Cuando infecta un fichero escribe un valor distinto del original (cero) en el primer byte antes de la cabecera del ejecutable.

Lo siguiente es “inyectar” el código maligno en el ejecutable, sin aumentar el tamaño del mismo. Pero esto no parece sencillo… ¿cómo lo logra? Digamos que en las cabeceras de los ejecutables de Windows se almacenan diversos datos relativos a las funciones que importan o exportan, información que el programa necesita y demás. Todos estos datos se organizan en “objetos”, que tienen que estar organizados de una forma muy concreta dentro del fichero del programa. A su vez, hay que guardar dónde se encuentran estos objetos, qué tamaño ocupan… todo esto se hace con tablas, por lo que el principio del ejecutable consiste en un montón de descriptores y tablas.

Entre todas estas secciones queda un espacio que no se usa, que es el que aprovecha el virus para escribir su código sin incrementar el tamaño del programa portador. Previamente habrá comprobado que tiene el espacio suficiente para infectar el fichero, y en caso contrario no lo hará. Por desgracia, CIH es una pequeña maravilla en cuando a tamaño, ya que sólo ocupa aproximadamente un 1KB, con lo cual casi siempre encontrará huecos en los que instalarse.

Una vez insertado su código, modifica la cabecera para que la dirección de entrada al ejecutable quede apuntando a su propio código.

El payload (carga dañina)

El payload varía entre versiones, pero generalmente lo que hace es obtener el mes y el día y comprobar si es el día 26 de abril. En caso afirmativo, comienza a sobreescribir el chip de la BIOS (si es de tipo flash).

Seguro que algún lector se pregunta algo así como “¿pero la BIOS no es una memoria de sólo lectura? ¿cómo consigue escribir entonces?”. La respuesta es que la BIOS es de sólo lectura en principio, pero que generalmente se puede modificar aplicando cierto voltaje*. Normalmente las placas bases impiden que se suministre este voltaje al chip, pero cuando el virus CIH se extendió, tal protección solía venir inhabilitada para facilitar las actualizaciones de la BIOS, con lo que la información quedaba expuesta.

_327903_cih_300.jpg

Cuando termine con esto, localizará los discos duros del sistema y escribirá datos aleatorios sobre los primeros 2048 sectores, dejándolos inutilizables.

El CIH se encuentra prácticamente extinguido a fecha de hoy, gracias a que los sistemas Windows 9x van cayendo en desuso en favor de los basados en Windows NT (saber más). Se trata de un virus muy bien programado, toda una muestra de la belleza que puede encontrarse en la destrucción… Su creador, el taiwanés Chen Ing Hau, (nótese que sus iniciales son las letras C.I.H.) fue detenido en el año 2000.

* Si alguien tiene curiosidad sobre cómo puede ser esto, debe saber que amenazo con dedicarle una entrada al tema en breve.

Actualización: Menear el artículo (¡gracias, Taikochu!)

Publicado en Sistemas Operativos, Virus | 4 Comentarios

¿Qué es un virus?

virusinfluenza.jpgSeguro que se ha enfrentado ya a una de estas simpáticas y fascinantes criaturas que son los virus informáticos. O si no usted, probablemente algún conocido suyo los haya sufrido. O tal vez esté infectado y ni siquiera lo sospeche… (sienta cómo la paranoia se apodera de su mente)

El origen de los virus hay que buscarlo a mediados de los 80, cuando unos técnicos de los laboratorios Bell inventaron un juego denominado “Code Wars”, consistente en crear programas que combatían entre ellos por conseguir el control de la memoria del equipo. Hay mucho que decir sobre los virus, y mucho que discutir sobre el tema, pero de esta entrada me interesa que comprendan cómo funcionan y cómo son diseñados. Y es que conociendo bien a nuestro enemigo tendremos más probabilidades de saber defendernos.

Para empezar, hay que acotar un poco la terminología, ya que el término “virus” se utiliza a menudo para referir realidades muy diferentes. No todos los programas dañinos son virus estrictamente, y no todos los virus son dañinos directamente.

Hay que entender un par de ideas antes de entrar en consideraciones más complejas: la primera es que un virus no es más que un programa. Un tanto especial, sí, pero un programa a fin de cuentas. La segunda idea es que los virus informáticos no se parecen tanto a los biológicos: un virus biológico utiliza el material celular para autorreplicarse, mientras que un virus informático modifica los programas que “infecta” incluyendo una copia de sí mismo.

De modo que llegamos a algo que puede parecerse a una definición: un virus es un programa informático que es capaz de modificar a otros programas inyectándolos cierto código que altere su comportamiento.

¿Cómo nos infectan los virus?

Vamos a referirnos en este punto a los virus residentes tradicionales. Los últimos virus aprovechan generalmente fallos en el MS Outlook o en el MS Internet Explorer para infectar los computadores y extenderse por Internet, pero los más bonitos e interesantes son los antiguos.

En principio sólo hay un programa con el código puro del virus: este programa padre irá infectando a los demás, que actuarán a su vez como nuevos padres e irán propagando la infección. Lo que ocurre cuando se ejecuta un programa infectado en el ordenador es más o menos así:

  1. Al ejecutarse, el virus se carga en memoria y se empiezan a leer las instrucciones malignas.
  2. Estas instrucciones modifican ciertos parámetros del sistema operativo para poder hacerse con el control cuando se ejecuten otros programas.
  3. Espera a que otros programas se ejecuten. Cuando los programas se ejecutan, su contenido es transferido a la memoria principal, donde se encuentra el virus, momento que puede utilizar para infectarlos.
  4. Cuando se ejecute un programa, el virus obtendrá el control por un instante. Entonces copiará la parte de código infeccioso en el programa víctima, de manera que siempre se ejecute antes que el programa original. Una vez modificado el nuevo portador, dejará que se ejecute normalmente, y en principio el usuario no percibirá ningún cambio.

A partir de esta idea, podemos refinar el virus cuanto queramos: podemos hacer que compruebe si el programa que va a infectar es un antivirus y que intente cerrarlo en caso afirmativo, o que se envíe a si mismo por email para replicarse más rápido.

Algunos virus, los denominados polimórficos, “mutan”, modificando su código para evitar ser detectados, otros se instalan en el arranque del equipo… Unos buscan en el disco a otros programas y los modifican, aunque no se ejecuten, otros infectan directamente a quienes comparten la memoria con ellos… Hay tanta diversidad como informáticos retorcidos.

Básicamente un virus tiene que tratar de infectar cierta cantidad de programas: si infecta muchos el ordenador se volverá más pesado y el usuario podría darse cuenta. Si infecta pocos, apenas se extenderá. También tiene que intentar pasar desapercibido: utilizar polimorfismo, variar poco el tamaño del programa que infecte, vigilar la presencia de antivirus o de otros virus…

Algunos virus incluyen lo que se llama “payload”, que es como la carga dañina de los misiles: supone la temida manifestación del virus, y es cuando podemos agarrarnos a la silla y temblar de miedo. En algunos casos, la temida carga se reduce a un mensaje gracioso o político. En otros, puede dar lugar al borrado de ficheros o el colapso de la red.

Un ejemplo tristemente famoso

El virus CIH, también conocido como Chernobyl (ya que se se activa el día 26 de Abril) es un ejemplo del daño terrible que pueden causar estas pequeñas bestias. Este virus sólo es capaz de actuar bajo Windows 9x, infecta cualquier archivo .EXE al que tenga acceso y tiene uno de los “payload” más destructivos: sobreescribe las instrucciones del chip de las BIOS de tipo flash dejando el arranque inutilizado y borra el contenidos de los discos duros.

Más adelante hablaremos largo y tendido sobre esta criatura del señor.

Publicado en Sistemas Operativos, Virus | 6 Comentarios

Licencia

Nosololinux se distribuye bajo licencia Creative Commons

Creative Commons License