# Inmunizacion de memorias portatiles USB



## miborbolla (Feb 20, 2014)

Inmunizar Memorias Portatiles USB

Hola compañeros, me permito abrir este tema con la finalidad de crear una manera eficaz para “inmunizar” memorias USB de las amenazas más comunes  que supongo todos conocemos o hemos sufrido  sus consecuencias, que van desde ocultar archivos y carpetas, creando accesos directos, hasta la transferencia de virus y scripts que dañan severamente los equipos donde se utilizan pasando  a ser víctimas por el uso de estas memorias USB.

Para tal fin, en mi investigación y afronta contra estas amenazas, me ofrecí a buscar una solución en un pequeño centro de cómputo que tiene una comunidad de más o menos 1200 visitantes al mes y que me permiten utilizarlo para experimentar mi cometido.
En mi experiencia encontré que la mejor forma, fue lanzar una campaña de inmunización de estas memorias USB y que básicamente consiste en cambiar las directivas de seguridad de la propia memoria con el procedimiento  siguiente:

•	Hacer una “profilaxis” general de la memoria con los métodos tradicionales que proporcionan los diferentes antivirus o artes de cada quien.
•	Hacer un backup de todo el contenido de la memoria en el disco duro local.
•	Formatear la memoria en formato NTFS con dos fines primordiales que son;  primero, asegurarse que todo indicio de virus, script u otra amenaza desaparezca  y segundo poder asignarle atributos de seguridad a la memoria  que en el formato “natural” (Fat32) no se puede lograr.
•	Crear en la Raíz de la memoria USB; Una carpeta y dentro de esta una segunda carpeta que será destinada para que sea usada por el usuario. (mas adelante describo esto con detalle)
•	Quitar atributos de escritura y modificación a la raíz de la memoria USB, lo mismo se aplica a la primera Carpeta creada. Por último a la segunda carpeta contenida; se le asignan todos los privilegios estándares para ser usada por el usuario sin ninguna restricción.
•	Se regresa el backup realizado inicialmente en el disco duro, pero dentro de la segunda carpeta creada para el usuario y que pasara a ser en lo consecutivo el area de trabajo para el usuario.
•	Se verifica que el proceso sea completado, se le da una pequeña explicación al usuario de los cambios y beneficios  logrados por esta inmunización.

La explicación Técnica es muy básica, al menos en mi experiencia personal, todas las amenazas obviamente utilizan como vehículo la propia memoria USB y en especifico; el directorio Raíz de la misma, por medio del famoso autorun.inf, scripts batchs etc, que se aprovechan de la nula seguridad que existe en estas por estas formateadas en el sistema de archivos FAT32.

Si nosotros pretendemos asignar directivas de seguridad mas “avanzadas” que el propio sistema operativo tiene a nuestro alcance, debemos iniciar por cambiar el sistema de archivos de FAT32 a NTFS de nuestras memorias. En un principio encontré que modificando el directorio raíz de la memoria USB  para que fuera de solo lectura, las amenazas simplemente no podían tomar control y por tanto replicarse. Bajo este principio básico, el siguiente paso fue crear una carpeta o subdirectorio debajo de la Raíz de la memoria USB con todos los permisos para el usuario, con lo que se logro un avance muy significativo hasta que me enfrente a una amenaza muy especifica que si bien ya no se propago en la memoria USB; si alcanzo a dejar oculta la carpeta creada, con lo que el usuario ya no podía “ver” sus archivos hasta que aplique el conocido comando de “ attrib -s -h -r /s /d”   con lo que recupere el control, pero sabía que no había superado que las amenazas afectaran mi “inmunización”, llevaba solo la mitad de la guerra ganada.

Por ultimo encontré, que si dentro de la primera carpeta creada originalmente (Carpeta USB en mi ejemplo), se crea una segunda carpeta (Carpeta Datos en mi ejemplo)  y que los privilegios de escritura eran quitados a la primera carpeta (carpeta USB en mi ejemplo); el problema expuesto simplemente desapareció y este procedimiento lleva más de 6 meses con un éxito muy aplaudido por la comunidad en general, por lo  que considere compartirlo con ustedes, a lo mejor estoy descubriendo el hilo negro, pero al menos en lo que vi por san google encontré muy poco al respecto.

Dejo aquí una copia del procedimiento BATCH que genere para automatizar la inmunización de todas las memorias que llegan al centro de cómputo donde se está haciendo la aplicación. El Batch se debe correr como administrador para poder aplicar los privilegios a las Carpetas que he comentado.

Tambien dejo anexado el mismo procedimiento pero convertido a .exe con el programa bat to exe y que se consigue gratuitamente en http://www.f2ko.de/programs.php?lang=en&pid=b2e

*Nota importante.- Este Batch  solo funciona en windows 7, aunque una vez inmunizada la memoria puede ser usada en cualquier windows xp*

Saludos y espero sus comentarios


```
:: Miguel Angel Borbolla Bonomi
:: Utileria para inmunizar memorias usb


TITLE Miguel Angel Borbolla


@echo off
cls

mode con cols=80 lines=30



color 0a

cls


ECHO Creado por Miguel Angel Borbolla Bonomi (miborbolla@gmail.com)


:pregunta
FSUTIL FSINFO DRIVES



set/p UNI=Indica la letra de unidad asignada por el sistema a tu memoria USB: 
color 30

if %uni% == C goto error
if %uni% == c goto error

if %uni% == e goto procesa
if %uni% == E goto procesa
if %uni% == f goto procesa
if %uni% == F goto procesa
if %uni% == g goto procesa
if %uni% == G goto procesa
if %uni% == h goto procesa
if %uni% == H goto procesa
if %uni% == i goto procesa
if %uni% == I goto procesa
if %uni% == j goto procesa
if %uni% == J goto procesa
if %uni% == K goto procesa
if %uni% == k goto procesa
if %uni% == L goto procesa
if %uni% == l goto procesa
if %uni% == M goto procesa
if %uni% == m goto procesa
if %uni% == N goto procesa
if %uni% == n goto procesa
if %uni% == z goto procesa
if %uni% == Z goto procesa
:error

goto pregunta
:procesa
CLS

Color 90
echo ________________________________________________________________________
ECHO  Procederemos a respaldar informacion en disco duro 
echo ------------------------------------------------------------------------

md c:\respaldo

xcopy %uni%:*.* /s/e/f c:\respaldo

echo ________________________________________________________________________
ECHO  Se debe formatear unidad en formato NTFS para garantizar permisos
echo ------------------------------------------------------------------------

CLS
color 47

format %uni%: /FS:NTFS /Q 


color 25


%UNI%:

md USB
md \USB\Datos

echo ________________________________________________________________________
ECHO Se cambian Atrributos de seguridad para Raiz Y Carpeta Datos
echo -----------------------------------------------------------------------

ECHO s|CACLS %uni%:\ /G Todos:R

ECHO s|CACLS %uni%:\USB /G Todos:R

Echo s|CACLS %uni%:\USB\Datos /G Todos:F


echo ________________________________________________________________________
ECHO  Procederemos a restaurar informacion en carpeta Datos
echo -----------------------------------------------------------------------


xcopy c:\respaldo /s/e/f  %uni%:\USB\Datos\*.*

cd \USB\Datos

echo ________________________________________________________________________
ECHO  Se cambian atributos de los archivos a archivos visibles y normales
echo -----------------------------------------------------------------------



attrib -s -h -r /s /d 

cd \



ECHO  Mostramos Unidad e Informacion ya procesada.
echo -----------------------------------------------------------------------


explorer %uni%:\USB\Datos


rd c:\respaldo /s /q

MSG */w /TIME:2 Proceso terminado

ECHO  Fin del proceso.
echo -----------------------------------------------------------------------
```


----------



## palurdo (Feb 21, 2014)

Está muy bien el tutorial, pero el principal problema que tiene esto es que tras hacer todo esto automáticamente los pendrives no se pueden reconocer en televisores, autorradios, cadenas de música, algunos móviles y tablets, y en general todos los dispositivos que sólo acepten el formato FAT y no el NTFS.

Otra forma de protejer un Pendrive ante amenazas externas es formatear el pen en EXT4 y usar Linux.


----------



## miborbolla (Feb 21, 2014)

Es correcta la aseveración que nos comenta palurdo, con respecto a la perdida de compatibilidad con los equipos multimedia domésticos por el hecho de cambiar el sistema de archivos de fat32 a NTFS, sin embargo reitero que en el campo de la informática, en donde tenemos implementada esta campaña a servido mucho para evitar la propagación de amenazas informáticas y sobre todo ha fomentado la cultura del uso correcto de las memorias, donde se tiene claro el uso de unas memorias usb para el divertimento (multimedia) y otras para el trabajo digamos que mas serio o importante.

Saludos


----------



## Dr. Zoidberg (Feb 21, 2014)

Hummmmm.... 

*Acá *discutimos varias cosas para inmunizar el pendrive.. y la COMPU, que es lo más importante.

A tu método le veo algo que no me cierra en absoluto: vos decís que usando NTFS podés dar permisos al usuario sobre las carpetas y archivos del pendrive, pero lo que no me cierra es que si vos metés el pendrive EN UNA MAQUINA DIFERENTE a la que usaste para protegerlo, a menos que te llevés la SAM de tu máquina no veo como va a hacer el Sistema operativo para "reconocer" quien es el usuario al que le has dado permiso, ya que lo mas probable es que no exista en la nueva PC  

Por otra parte, cualquier usuario con permiso de Administrador (la gran mayoría de los que usan "Güindos") puede hacer lo que quiera sobre las carpetas y archivos de NTFS, sino directamente, al menos "tomando posesión del recurso" y luego haciendo los cambios.... y como el virus que tengas en tu PC seguramente corra con los permisos del usuario (administrador) o con la cuenta SYSTEM, tarde o temprano puede palmar cualquier permiso que tengas.

Si vos administrás un centro con muchas PC, lo primero a hacer es instalar el parche del CERT del link anterior, y lo segundo es crear en el pendrive UNA CARPETA de nombre *autorun.inf* con atributos de solo lectura (attrib +r) y listo, esto evita que se pueda activar un virus, aunque se copie al pendrive.

Para cualquier otra cosa, el back-up no tiene contrincante...


----------



## miborbolla (Feb 21, 2014)

Dr. Zoidberg dijo:


> Hummmmm....
> 
> *Acá *discutimos varias cosas para inmunizar el pendrive.. y la COMPU, que es lo más importante.
> 
> ...



Te invito a que analices los comandos de seguridad que ocupo para este fin y que son

CACLS %UNI%:\ /G Todos:R

CACLS %UNI%:\Datos /G Todos:F

Como podrás apreciar el usuario "Todos" existe en todos los sistemas operativos de windows con compatibilidad con el sistema de archivos NTFS de manera natural ,a menos que alguien elimine al usuario "Todos" de manera ex profeso, por esta razón la memoria funciona en todo equipo de computo tanto con linux, windows, osx, etc,

Lo comprobado hasta hoy es que ninguna amenaza utiliza la suficiente "inteligencia" para tratar de afectar subcarpetas o subdirectorios ya que para sus fines solo interesa la raíz del dispositivo USB, ya que cualquiera que fuese el método o base de la amenaza, requiere del control de la raiz; cosa que con mi método no esta permitido ni siquiera para los administradores, se requiere estar "presente" en el equipo para poder cambiar o regresar a su manera natural la memoria USB.

En conclusión o de manera coloquial puedo decir que es "psicología inversa aplicada al individuo".

Con respecto al autorun.inf y este método que comentas es mas que conocido por todo hacker amateur y es de lo mas fácil brincarse esa "proteccion" que hoy en día no sirve para nada, al menos en mi experiencia personal, en verdad no imaginan las cosas que veo a diario en esta comunidad.


Obvio que el respaldo es la mejor arma, pero siendo sinceros, es muy poca la gente que tiene la cultura de hacerlo y menos en una comunidad donde se utilizan los equipos públicos y consideran que los equipos , sus antivirus y los encargados son los responsables de su información digital.

EL hecho de que en este centro de computo nos aseguremos que todos los días restauramos los equipos con un sistema propio para estar 100% libres de problemas, nunca podremos liberarnos de una contaminación vía una memoria USB, que al menos en ese día haga estragos en otros usuarios que ni la deben, ni la temen.

Por esto es que lanzamos esta campaña, la comparto aqui y agradezco sus comentarios que sirven y mucho.


----------



## analogico (Feb 21, 2014)

Dr. Zoidberg dijo:


> o es crear en el pendrive UNA CARPETA de nombre *autorun.inf* con atributos de solo lectura (attrib +r) y listo, esto evita que se pueda activar un virus, aunque se copie al pendrive.


 el virus   oculta todos los archivos
y los reemplaza por un aceso directo que  simulara ser el archivo verdadero pero que activara el virus, cuando el usuario lo abra inocentemente


----------



## Nilfred (Feb 21, 2014)

Lo que no me gusta es otra cosa que nada que ver:
Al formatear una memoria Flash con NTFS estas reduciendo el tamaño del bloque, probablemente al mínimo o a 4 kiB.
Como el tamaño de la página de borrado es exageradamente grande, 4 MiB a 12 MiB hoy en día, al grabar un bloque de 4 kiB la memoria tiene que borrar 12 MiB grabar los 4 kiB y todo lo que estaba en esos 12 MiB. Eso se llama "write amplification" de un 307200%
Al menos, deberías dejar el tamaño del bloque como estaba o se te va a poner ultra lenta.


miborbolla dijo:


> espero sus comentarios
> 
> ```
> format %uni%: /FS:NTFS /Q
> ```


¿Porqué /Q? ¿Estas apurado? A menos que soporte TRIM, la memoria no sabe si un bloque está en uso o no. Poner todo el bloque a 0 le da una pista al "Garbage collector" de que ya no se usa ese bloque y si toda la página de borrado está a 0 se evita todo el proceso descripto anteriormente la primera vez que se usa.
Es deseable, si la memoria ya contenía datos, darle un formato completo, para acelerarla.


----------



## ESKALENO (Feb 21, 2014)

Hace tiempo tuve el virus Recycler que me hizo polvo varias Pen y 2 ordenadores lo primero hay que borrar el archivo autorun.info de la pen infectada y despues pasar un buen antivirus.
Lo mejor es vacunar el PC, aconsejo esta utilidad de Panda que se encarga de ello:

http://download.cnet.com/Panda-USB-Vaccine/3000-2239_4-10909938.html

Este virus es super contagioso y por desgracia lo van actualizando, si tienen XP desactiven la reproducción automática cuando insertan Pens o Cds ya que este es el medio que usa para infectar y replicarse.
Saludos.


----------



## miborbolla (Feb 21, 2014)

Con respecto al concepto del "recolector de basura" y el de "Amplificación de Escritura" que existe en las memorias de tecnología SSD o la flash memory, es un mal necesario que aplica a todos los sistemas de archivos que, por lo tanto, considero fuera del foco de nuestro sistema de inmunizacion.

http://en.wikipedia.org/wiki/Write_amplification

Si bien lo que se comenta es cierto, esto aplica en cualquier ambiente, sea cual fuese, para esto basta un simple experimento en el equipo que se guste; tómese el tiempo de lectura de un archivo X de un gygabyte desde una memoria USB al disco duro local, después regrese este mismo archivo a la memoria USB y ahí se vera muy claramente como el tiempo cambia radicalmente en la escritura, me parece muy bueno que se comente esto, pero son cosas del firmware que no podemos modificar o mejorar, pero así aprendemos mas acerca de estas memorias flash o ssd. 


Por otro lado recordemos que el uso de las memorias USB es para transportar archivos de ofimatica u otras cosas en lo general y no para un uso masivo como el que pudiese existir en bases de datos u otros procesos de programas que se ejecuten en la propia memoria USB y otra vez reitero que esta campaña es por el bien de la seguridad y no por el espacio o alto desempeño, que considero hoy es lo que menos nos ocupa ya que el precio es super accesible.

Con respecto a utilizar la opción /Q en el comando "format %uni%: /FS:NTFS /Q" es tan simple como quitarlo y esperar el tiempo necesario, en mi caso no vi ninguna diferencia en el resultado y por eso opte por la forma "rapida" (que respeta la estructura que tiene la unidad por omisión), pero cada quien es libre de hacerlo como mejor le convenga, lo importante es la propia inmunizacion, aquí dejo una copia de la "Ayuda" del comando format de windows para que se aproveche de mejor manera.


```
Formatea un disco para ser usado con Windows.

FORMAT volumen [/FS:sist_arch] [/V:etiqueta] [/Q] [/A:tama¤o] [/C] [/X]
[/P:ciclos] [/S:estado]
FORMAT volumen [/V:etiqueta] [/Q] [/F:tama¤o] [/P:ciclos]
FORMAT volumen [/V:etiqueta] [/Q] [/T:pistas /N:sectores] [/P:ciclos]
FORMAT volumen [/V:etiqueta] [/Q] [/P:ciclos]
FORMAT volumen [/Q]

  volumen                Especifica la letra de unidad (seguida por dos puntos),
                         el punto de montaje o el nombre de volumen.
  /FS:sistemaDeArchivos  Especifica el tipo de sistema de archivos (FAT, 
                         FAT32, exFAT, NTFS o UDF).
  /V: etiqueta   Especifica la etiqueta del volumen.
  /Q             Realiza un formato r*pido. Este modificador invalida /P.
  /C             s¢lo NTFS: los archivos creados en el nuevo volumen se
                 comprimir*n predeterminadamente.
  /X             Si es necesario,  obliga al volumen a desmontarse primero. 
                 Todos los controladores abiertos al volumen ser*n no
                 v*lidos.
  /R:revisi¢n    S¢lo UDF: fuerza a que se formatee con una versi¢n UDF 
                 espec¡fica (1.02, 1.50, 2.00, 2.01, 2.50). La revisi¢n 
                 predeterminada es 2.01.
  /D             S¢lo UDF 2.50: se duplicar*n los metadatos.
  /A:tama¤o      Invalida la asignaci¢n predeterminada del tama¤o de unidad.
                 Se recomienda usar la configuraci¢n predeterminada para uso
                 general.
                 NTFS admite 512, 1024, 2048, 4096, 8192, 16.000, 32.000,
                 64.000.
                 FAT admite 512, 1024, 2048, 4096, 8192, 16.000, 32.000,
                 64.000 (128.000, 256.000 para tama¤o de sector > 512 bytes).
                 FAT32 admite 512, 1024, 2048, 4096, 8192, 16.000, 32.000,
                 64.000 (128.000, 256.000 para tama¤o de sector > 512 bytes).
                 exFAT admite 512, 1024, 2048, 4096, 8192, 16.000, 32.000,
                 64.000, 128.000, 256.000, 512.000, 1.000.000, 2.000.000,
                 4.000.000, 8.000.000, 16.000.000, 32.000.000.

                 Tenga en cuenta que los sistemas de archivos FAT y FAT32
                 imponen las siguientes restricciones en el n£mero de cl£steres
                 en un volumen:

                 FAT: N£mero de cl£steres <= 65526
                 FAT32: 65526 < N£mero de cl£steres < 4177918

                 Se detendr* inmediatamente el proceso de formato si decide que
                 los requisitos anteriores no se cumplen con el tama¤o
                 de cl£ster especificado.
                 No se admite la compresi¢n de NTFS para asignar tama¤os de
                 unidades superiores a 4096.

  /F:tama¤o      Especifica el tama¤o del disquete que se va a formatear (1,44)
  /T: pistas     Especifica el n£mero de pistas por cara del disco.
  /N: sectores   Especifica el n£mero de sectores por pista.
  /P:ciclos      Llena con ceros cada sector de los ciclos realizados en el
                 volumen. Este modificador no es v*lido con /Q
  /S:estado       Donde "estado" es "enable" o "disable"
                  De forma predeterminada, los nombres cortos est*n habilitados
```


Saludos y gracias por estos comentarios para hacer mas interesante esta sección.


----------



## Dr. Zoidberg (Feb 22, 2014)

Ahhhhh.... vos otorgás el permiso al grupo TODOS y no a un usuario en particular.. eso si funciona , pero tiene - conceptualmente - un problema de seguridad, por que en el grupo TODOS están incluidos las cuenta INVITADO (normalmente desactivada, pero la he visto muchisimas veces habilitada por alguna necesidad particular) y los usuarios anónimos... y eso es potencialmente peligroso. Deberías aplicar el permiso no sobre TODOS, sino sobre USUARIOS AUTENTICADOS, con lo cual se le dá el acceso a cualquier usuario que tiene token de seguridad válido para el SO.

Por otra parte, el poner una carpeta de nombre *autorun.inf* en modo RO es una forma muy simple de *evitar que el virus pueda activarse* en una PC no protegida corectamente, pero aún así puede copiarse al directorio raiz de la unidad USB aunque no puede crear el autorun.inf para que Güindos lo ejecute al conectar la unidad. Como siempre, es un compromiso, pero en este caso no hay que entrenar a los usuarios para hacer nada raro al poner y sacar archivos de la unidad, incluso funciona la opción "Enviar a" del menú contextual, que en tu caso "funciona pero no anda" por que nadie puede escribir en el directorio raíz.

Y por supuesto, la real protección debe estar en la PC y no en el pendrive, por que a menos que configures y actives correctamente las políticas de grupo del bosque, siempre puede aparecer alguien que no llevó el pendrive para inmunizarlo y ahi.... hummmmmmm.. y ni te digo si se trata de un teléfono celular o una cámara fotográfica, donde con tu modificación queda inoperante el mecanismo de guardado de fotos y datos


----------

