lunes, 29 de septiembre de 2008

Virus++: Segunda convocatoria

Alien [blackhat4all@gmail.com]

Hace unos meses me di a la tarea de escribir un semi artículo sobre un tipo de virus que, en caso de que se creara, podía traerle a muchos unos cuantos dolores de cabeza.

En aquel momento, temiendo un poco ser malinterpretado por algunos cerebros ávidos de información y bailando otro poco en la línea que define lo correcto de lo menos correcto, traté de no ser tan explícito y medio que busqué sinónimo más lindos para referirme a las cosas feas. Ahora, luego de un período de poca escritura y de desafiar a la máquina a ver si ella es capaz de continuar reconociéndome el HDD mientras termino este texto, me doy a la tarea de explicar un poco más detallado el artículo Virus++.

Intro

Independientemente de lo que haga el virus, todos deben pasar por una especie de ciclo:
1. Inserción en el sistema
2. Acción a ejecutar
3. Propagación

Aquí defino “Inserción en el sistema” como el momento en que el “pequeño” se adapta al medio de vida y se aloja en ciertos lugares desde los que garantizará su ejecución una ves iniciado el sistema. “Acción a ejecutar” será lo que haya definido el programador como objetivos a cumplir una ves ya dentro de la PC y “Propagación” no será más que…

Según las tendencias (al menos en nuestro país) el paso 1 se ejecuta siempre de la misma manera; vienen en una memoria y se van al registro. Un Viruker un poco más pícaro, tratará de buscar nuevas formas de introducir sus aplicaciones en sus víctimas, para esto deberá estar al tanto de los llamados Cero Days (nuevas vulnerabilidades), así como tener un vasto dominio del funcionamiento del sistema así como de los archivos que se ejecutan en el inicio de sesión. Virus con nuevas formas de infección quizá no aseguren una invisibilidad completa ente los antivirus, pero si un desarrollo de esta técnica así como un aumento en la dificultad de ser vistos y reconocidos por usuarios un tanto más aventajados en estos temas.

Las acciones a ejecutar no las discuto, cada quien crea los virus por razones diferentes y por lo tanto con diferentes objetivos, pero se debe prestar especial atención al cuidado y aseguramiento de la aplicación. (sin comentarios)

La Propagación estará muy ligada a la Inserción en el sistema y es quizás lo más importante. Más allá de si funciona o no en una máquina determinada, el virus debe ser capaz de reproducirse y abarcar el mayor área posible facilitando con esto una mayor posibilidad de cumplir su objetivo.

Ready??

En el artículo Virus++ me refería a algo que hasta ahora no he visto en ningún virus y es su capacidad para actualizarse.

Hasta el momento eso es algo que se ha dejado solo en manos de los antivirus y otros software pero…, ¿que impide que un virus se pueda actualizar?.

Básicamente ningún virus de estos tiempos utiliza un disquete como medio de propagación y es que, por el reducido tamaño y la inserción de nuevos medios de almacenamiento, los disquetes han sido reemplazados por memorias flash, discos duros externos y quien sabe cuantos otros dispositivos que superan por mucho los escasos 1.38 Mb.

Muchos de los virus se hacen acompañar en algunos casos de dos, tres y hasta cuatro archivos; DLLs, EXEs, COMs y otros ficheros que en determinado momentos son necesarios para la buena ejecución del animalito, entonces, ¿por qué no incluir en compilador?. Un virus creado en Delphi (por ejemplo) y que lleva consigo el compilador, sería capas de, leyendo desde cierto lugar un código en Delphi, crear una versión mejorada de si mismo u otros módulos que necesite para algo. De esta forma el Viruker podría lanzar un ataque dirigido a una máquina en especial de las miles que a infectado.

Ejemplo

Un virus común, cubano, de hoy en día, no se interesa por hacer trizas nuestra RAM, o por modificar el MBR del disco duro (a menos que lo haya hecho el vecino al que le instalamos Windows Milenium la semana pasada). Por lo general los virus se alojan en nuestra máquina para extraernos información y dejarnos 50.(xD)

Imaginemos ahora que hemos creado un virus que, acompañado de su compilador, lo primero que nos enviará será el nombre de usuario y a partir de ahí estará leyendo constantemente todos los archivos de correo que recibe dicho usuario. Un día x, pepito@dominio.cu recibe un correo con un archivo adjunto que tiene este contenido:

<html>
<head>
</head>
<body>
Hola
  <!--
    inicio
    Código
    fin
  -->
</body>
</html>

A simple vista eso es un html que al abrirlo lo único que mostrará será un “Hola”, pero para nuestro programa, que lee línea a línea, la palabra inicio significa que deberá copiar todo lo que dice más abajo hasta que llegue a la palabra fin, y todo eso se lo dará al compilador, el cual ya habrá creado un nuevo ejecutable que inmediatamente será ejecutado y…

He aquí, de manera simple, un programa capaz de crear programas, los cuales cumplirán una función determinada que puede ser la de proteger al compilador, proteger al programa principal, actualizar con nuevas funcionalidades al programa principal o simplemente ejecutar cualquier otra tarea de manera independiente.

Como inconveniente pudiera ser que algunos lenguajes de programación no utilizan un compilador solamente, sino que requieren además de muchos otros archivos y DLLs que pueden levantar sospechas; para eso también existe ya una solución, pero eso lo dejaremos para la Tercera Convocatoria (El Mundial!!, jajjajja)

Lugares de Carga

Un alto porciento de los virus utiliza el registro como zona de carga y si no es menos cierto que es un lugar bastante tentador, también debemos reconocer que es un lugar un poco “quemado” por muchos.

Es aquí don de entra a jugar un papel súper importante el conocimiento de los bugs del sistema así como estar al tanto de los Cero Days. Bien difícil es encontrarle vulnerabilidades a un sistema, pero ya hemos demostrado también aquí en BlackHat que no es imposible.

Muchos, pero muchos lugares de la máquina se pueden utilizar como zonas de lanzamiento, incluso se puede hacer uso de algunos conflictos que tiene Windows con los nombres de archivo para ejecutar determinadas aplicaciones de forma silenciosa y sin tocar para nada el Regedit, pero eso, va también para el Mundial.

Conclusiones

No quisiera que vieran esto como una guía de “Haz un buen virus en 21 días” o algo por el estilo, puesto que no lo es; me gustaría que lo vieran más como un “Déjame irme preparan do que la cosa está en candela”. La “industria” de los virus es cada vez algo más tentador y quizás hasta lucrativo; cada segundo, son más los que aprender a hacer virus, los que han pasado meses testeando ciertos archivos en busca de recursos adicionales y por desgracia esos no tienen la posibilidad de aplicar esos conocimientos para bien así que, “¡Que rayos, vamos a fastidiar a pepito!. Total, el tiene dinerito y mañana se compra otra PC”.



Artículos relacionados


No hay comentarios: