Nota del autor

Si la entrada que estás leyendo carece de imágenes, no se ve el vídeo que teóricamente lleva incrustado o el código fuente mostrado aparece sin formato, podéis conocer los motivos aquí. Poco a poco iré restableciendo la normalidad en el blog.
Este blog es un archivo de los artículos situados previamente en Lobosoft.es y ha dejado de ser actualizado. Las nuevas entradas pueden encontrarse en www.lobosoft.es. Un saludo,
Lobosoft.

lunes, 16 de junio de 2008

Dispositivos USB de sólo lectura

Seguimos dando vueltas en torno a la seguridad en torno a los dispositivos de almacenamiento USB. En los días pasados, hablábamos sobre la creación de software y el uso de unidades de almacenamiento USB como detectoras de software legal (tanto usando llaves HASP, como programando un sistema de reconocimiento de dispositivos basado en su número de serie, e implementación por software la detección del mismo y validación posterior de la aplicación). También veíamos cómo desactivar las unidades USB para prevenir la copia de datos en un entorno que deseábamos fuese mínimamente seguro (como los empresariales). Hoy veremos un sencillo método para establecer una política de seguridad sobre estos dispositivos, configurándolos como sólo lectura, un estado menos restrictivo que el anterior, ya que permitiremos la lectura de dispositivos USB pero no la escritura de datos en los mismos.


Para ello, simplemente debemos crear una entrada en el registro de Windows, en concreto dentro de

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control.


La llamaremos StorageDevicePolicies, y la configuraremos estableciendo una nueva entrada llamada WriteProtect, de tipo REG_DWORD, e inicializando su valor a 1 para permitir la lectura pero no la escritura en los mismos. Si cambiamos su valor a 0, volvemos a permitir la escritura en dispositivos USB. Cabe señalar que lo hemos probado con Windows XP SP2, quedando por comprobar si es válido en Windows Vista.


Si deseamos crear la entrada directamente desde .NET, podemos usar la clase RegistryKey incluida dentro del ensamblado Microsoft.Win32. La forma de hacerlo sería:


[csharp]
//Abrimos la key que deseamos del registro.
RegistryKey regKey = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Control", true);
//Creamos la subkey deseada. Lo recomendable sería comprobar que no existe previamente ;)
regKey.CreateSubKey("StorageDevicePolicies");
//Abrimos la key que acabamos de crear.
regKey.OpenSubKey("System\\CurrentControlSet\\Control\\StorageDevicePolicies");
//Establecemos el valor del parámetro WriteProtect. Aquí sí, si no existiera sería creado automáticamente.
regKey.SetValue("WriteProtect", "1");
[/csharp]

Por último, si queremos incluir la entrada mediante un archivo .reg, simplemente debemos crear un archivo de texto (con extensión .reg, claro está), en el que incluiremos el siguiente código:



; Especificamos el editor usado para incluir la entrada.
REGEDIT4
; Las diferencias entre REGEDIT 4 y la versión 5.00 es fundamentalmente que ésta última hace uso de UNICODE.
;
; Establecemos el valor de la key:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\StorageDevicePolicies] “WriteProtect”=dword:0

No hay comentarios:

Publicar un comentario