15 may 2009

Evita infecciones en las memorias usb

Hackeando memorias USB para evitar Software Malicioso!

Amigos buenas tardes. Siguiendo la secuela de la seguridad extrema, y luego de algunas guías interesantes para usuarios finales para evitar infecciones por software malicioso en las memorias USB, publico hoy un tema MUY INTERESANTE, ya que evitará que nuestra memoria USB sea infectada de manera DEFINITIVA. WTF, ¿cómo? Sí, leíste bien…

Hagamos un repaso rápido:

El culpable de la ejecución del software malicioso desde nuestras memorias es el tan conocido archivo AUTORUN.INF.

Hay técnicas para evitar ejecutar nosotros mismos el software malicioso direccionado por el autorun.inf.

http://www.mediafire.com/file/yuitzwtkomd/Desactiva.zip

Hay formas de deshabilitar la ejecución automática del archivo autorun de nuestras memorias USB.

http://www.mediafire.com/file/dim9b1ohlml/deshabilita.zip

Este tema de los archivos autorun en las memorias USB ha causado tanto revuelo como posibles soluciones al problema.


La más interesante que encontré fue la creación de un archivo o una carpeta llamada AUTORUN.INF a la que se asignaba atributos de “Sólo Lectura”, “Oculto”, “Sistema”. De modo que el virus al intentar verificar la existencia del archivo autorun.inf en la memoria y la encuentre suponga que la memoria ya está infectada y no haya necesidad de escribir otro archivo autorun.inf.

Esto podría ocasionar o ya haber ocasionado que los programadores de estos bichos incluyan en sus siguientes versiones de software malicioso posiblemente un módulo de verificación del archivo y de su contenido, e incluso la capacidad de quitarle los atributos: “Sólo Lectura”, “Oculto”, “Sistema” no solo al archivo sino también a la carpeta que hayamos denominado autorun.inf en nuestro intento de protección.

De lo que disponemos los usuarios normales para quitar o asignar atributos de archivos y/o carpetas ya sea usando línea de comandos o la shell del explorador son:

+/- R : Asignar o quitar atributos de “Sólo Lectura”, lo que evita que se pueda borrar de manera simple.
+/- H: Asignar o quitar atributos de “Oculto”, para ocultar o desocultar archivos de la vista simple.
+/- S: Asignar o quitar atributos de “Sistema”, da un significado especial a los archivos o carpetas haciendo notar que son archivos protegidos del sistema operativo y que cualquier modificación podría afectar el funcionamiento de nuestro Sistema Operativo.
+/- A: Asignar o quitar atributos de “Archivo”. Se usa para designar que un archivo es para almacenamiento.

A nivel de vista de usuarios normales solo disponemos de 4 atributos que podemos modificar.

Ahora, otra cosa a tomar en cuenta es que la mayoría de memorias USB tiene el sistema de archivos FAT o FAT32.

Ahora si revisamos a fondo la estructura del sistema de archivos FAT32, encontraremos cosas interesante.

Nota: Si deseas saber más sobre sistemas de archivos puedes leer los siguientes enlaces:
http://es.wikipedia.org/wiki/FAT
http://en.wikipedia.org/wiki/File_Allocation_Table

Algo muy interesante en el sistema de archivos FAT32 es un atributo que estoy seguro que la mayoría de nosotros desconocíamos: EL ATRIBUTO DE DISPOSITIVO, que es de uso interno solamente para el sistema Operativo y que no debería estar presente en un disco de manera normal, jejeje.



Este atributo designa a un dispositivo y no permite que el dispositivo en sí pueda ser modificado a nivel de dispositivo. Pero la pregunta es: ¿Se puede asignar este atributo a un archivo? ¿Cómo? Como ya vimos, en linea de comandos o usando la shell del explorador no podremos asignar este atributo a los archivos. En este caso si podríamos asignar este atributo al archivo AUTORUN.INF, podríamos indicarle al sistema operativo que este archivo sería un dispositivo y por lo tanto no podría ser modificado ni borrado por ningún proceso usando la vía normal o común de escritura de archivos.
Aquí entra a tallar, el conocimiento extremo, el poder Geek o Hacker, jejeje.
Aquí con esta guía veremos cómo es posible que podamos crear un archivo autorun.inf con permisos de Dispositivo que contendrá cualquier cosa de modo que no pueda ser sobreescrito por ningún otro archivo de software malicioso y por nosotros mismos!
Para esto, usaremos un Editor Hexadecimal, en mi caso usaré uno de los mejores: WinHEX.
Procedamos…

1. Formateemos nuestra memoria USB en formato FAT32.


2. Crear el archivo autorun.inf. En este caso lo hice usando la línea de comandos, a la antigua y no por eso menos poderosa, jejeje.


H: Enter # en tu caso debes poner la letra de tu unidad
copy con autorun.inf Enter
el texto que quieras y CTRL+Z y Enter






3. - Abrimos nuestro editor hexadecimal.


Luego seleccionamos la Opción “Tools”, “Open Disk”.



Seleccionamos nuestra unidad a Proteger.




Una vez abierto nuestra Unidad de memoria USB, vemos el contenido tal y como lo ve el Sistema Operativo. Vemos las estructuras del Boot Sector (Sector de Arranque), FAT1 y FAT2 (Tabla de asignación de archivos y copia), el Root Directory (Directorio Raíz donde se almacenan los nombres de los archivos, sus atributos, su tamaño y ubicación).

Nosotros vamos a trabajar directamente sobre el Directorio Raíz, pues ubicaremos la entrada correspondiente al archivo AUTORUN.INF que creamos previamente. Cabe recordar que en FAT32 cada entrada de archivo tiene designada los primeros 8 bytez para el nombre del archivo, los 3 bytes siguientes para la extensión y el byte en la posición 11 indica el atributo :



Al ubicarnos en el Directorio Raíz con nuestro editor hexadecimal al ubicar el byte 11 (Offset B) - en mi caso - vemos que tiene el atributo 0×20, que indica que es un archivo de almacenamiento.


Entonces lo que ahora haremos en escribir el valor 0×40 en lugar de 0×20 y con esto le atribuiremos el atributo de Dispositivo a nuestro archivo AUTORUN.INF.




Procedemos a guardar los cambios en la memoria USB, haciendo click en el ícono del Diskette .

Aceptamos…



Cerramos el programa WinHEX y vamos a nuestra memoria USB y la exploramos.

Tratemos ahora de editar el archivo dándole doble click, y veamos que sucede:


Ahora intentemos eliminar el archivo:





Intentemos cambiarle de nombre también:






Y vemos que no podemos hacer ningún tipo de cambio a este archivo. Entonces la idea es que ningún programa malicioso pueda crear su archivo AUTORUN.INF maligno en nuestra querida memoria USB.

Señores, estoy viendo la forma de poder hacer esto para Sistemas de Archivos NTFS y de forma automatizada también, cosa que si se lograría sería ideal.

Espero que les haya gustado este tema. Comentarios, sugerencias y aportes para llegar a poder hacer esto en NTFS o automatizarlo en un programa, todos son bienvenidos.

by Felipe de mygeekside