Vigilancia de seguridadImplementación de EFS: Segunda parte

John Morello

Puede pensar en cualquier implementación del sistema de cifrado de archivos (EFS) como un proceso de dos partes: la parte del diseño de servidor, que se centra en la administración de certificados y los agentes de recuperación, y la parte de la implementación de EFS de cara al usuario. El mes pasado hablé de la parte del servidor y las opciones de recuperación de datos y claves,

así como de las opciones para proporcionar certificados a los clientes. Ahora, voy a centrarme en los aspectos de la implementación destinados a los usuarios finales, tal como las mejoras del Explorador de Windows®, la elección de las ubicaciones del sistema de archivos que desean cifrar y la administración de las opciones de cifrado con la directiva de grupo.

Detección del uso de EFS

Cuando se decida a implementar EFS, el primer paso será determinar el estado actual del uso de EFS en la organización. Recuerde que EFS se puede utilizar en modo independiente, donde el usuario final es exclusivamente responsable de la creación y la copia de seguridad de sus claves de cifrado. Es posible que en su organización haya usuarios avanzados que ya hayan utilizado EFS de esta forma, por lo que es importante determinar quiénes son estos usuarios para así poder garantizar una transición fluida hacia una implementación más administrada.

La primera vez que algún usuario utilice EFS en un equipo, Windows creará la siguiente entrada del Registro en HKEY_CURRENT_USER:

HKCU\Software\Microsoft\Windows NT\CurrentVersion\EFS\CurrentKeys\CertificateHash 

Para buscar la ubicación de esta entrada en los equipos de la empresa, puede usar Microsoft® Systems Management Server (SMS), secuencias de comandos de inicio de sesión de Active Directory u otras herramientas. Si alguno de los usuarios tiene este valor del Registro en el equipo, significa que ha utilizado EFS en algún momento. Sin embargo, este valor no indica necesariamente que alguien esté usando EFS en estos momentos ni que tenga datos cifrados. Por tanto, cuando se detecta esta clave del Registro en un equipo, debe examinarse con mayor atención para determinar si contiene archivos cifrados en la actualidad.

Si usa cipher.exe y pasa los modificadores /U y /N, cipher generará un informe sobre el estado de cifrado de los archivos y los directorios de un equipo. Por ejemplo, si quiere determinar si hay datos cifrados en un sistema, puede ejecutar el siguiente comando:

cipher /U /N

La comprobación del Registro y el informe de cipher podrían combinarse en una sola secuencia de comandos que busque el valor del Registro y, si está presente, genere un informe con los archivos cifrados actualmente en el equipo. Una vez que se generen estos informes, podrá saber qué usuarios tienen archivos cifrados y estará preparado para migrarlos a un diseño administrado centralmente.

Para controlar la aplicación de la directiva de grupo durante la implementación, resulta útil crear dos grupos de seguridad en el dominio para separar los equipos en los que EFS está en uso de aquellos donde no lo está. Por ejemplo, "SG-ComputersUsingEFS" podría contener las cuentas de aquellos equipos en los que EFS está en uso, mientras que "SG-ComputersNotUsingEFS" podría contener el resto de equipos en los que EFS no se utiliza actualmente.

Control del uso de EFS con la directiva de grupo

Una vez que sepa qué usuarios están usando EFS y cuáles no, el siguiente paso en su implementación de clientes será deshabilitar el uso independiente de EFS para quienes no lo estén utilizando actualmente. Esto supone un paso importante en el proceso de implementación, ya que resulta más fácil habilitar y configurar EFS correctamente la primera vez que tener que migrar los usuarios que estén utilizando certificados autofirmados. Sólo debe realizar este paso después de determinar los usuarios que ya están utilizando EFS porque, si deshabilita EFS mediante la directiva de grupo, los usuarios no podrán tener acceso a ningún archivo actualmente cifrado. Puede consultar esta directiva en el Editor de objetos de directiva de grupo en Configuración del equipo\Configuración de Windows\Configuración de seguridad\Directivas de claves públicas\Sistema de cifrado de archivos (EFS).

Tal como he indicado anteriormente, este valor sólo debe habilitarse en aquellos equipos en los que no se esté utilizando EFS actualmente para no interrumpir el trabajo de ningún usuario que sí lo esté usando. De esta forma, en mi ejemplo, en la lista de control de acceso (ACL) del objeto de directiva de grupo (GPO) que deshabilita EFS, sólo se permite aplicar la directiva de grupo al grupo "SG-ComputersNotUsingEFS".

Cifrar o no cifrar

Una vez que haya determinado los sistemas que usan actualmente EFS y haya deshabilitado EFS en el resto de los equipos hasta que se realice la implementación administrada, el paso siguiente será determinar dónde se utilizará el cifrado en dicha implementación administrada. Según cómo estén administrados sus sistemas cliente, este proceso puede resultar sencillo o bien todo lo contrario.

Lo primero que hay que tener en cuenta al considerar qué archivos se deben cifrar es si los usuarios son administradores de sus sistemas. Si los usuarios son administradores locales, sólo podrá guiarles y alentarles a cifrar los datos confidenciales, pero no podrá beneficiarse de un verdadero control administrado. La razón es sencilla: un administrador local puede crear archivos y directorios en cualquier lugar del sistema de archivos. Así, aunque puede cifrar las ubicaciones comunes, como Mis documentos, si el usuario crea un directorio nuevo en otra ubicación y guarda en él información confidencial, será muy difícil garantizar también la protección de estos datos. Además de todas las ventajas de seguridad que se obtienen cuando los usuarios finales no son administradores locales, esto también permite que EFS resulte más fácil de administrar y sea más seguro.

El siguiente fragmento vital de información que hay que recordar sobre EFS es que se trata de un cifrado por usuario. Es decir, todo elemento que cifre un usuario sólo podrá descifrarlo ese mismo usuario y ningún otro, incluida la cuenta SYSTEM (con la excepción, por supuesto, del Agente de recuperación de datos o DRA). Esto significa que si un archivo ejecutable o un DLL están cifrados con una clave de usuario y otro principal del sistema intenta el acceso, recibirá un error de acceso denegado. Por lo tanto, como norma general, no cifre archivos ni directorios que incluyan código ejecutable al que puede que necesiten acceso varios principales de un sistema. Windows impedirá el cifrado de archivos en %SystemRoot% o de archivos que incluyan el atributo SYSTEM, aunque no son raros los proveedores de software que instalan binarios en %ProgramFiles% para los servicios que puede ejecutar la cuenta SYSTEM. Por ejemplo, este enfoque común lo utilizan los proveedores de equipos portátiles cuando instalan el software de administración de energía y de dispositivos que se ejecuta como servicio.

Si tenemos en cuenta estos dos factores, ¿cuáles son las recomendaciones para determinar los destinatarios del cifrado EFS? La respuesta se remonta al modo en que los sistemas de los usuarios están configurados normalmente. En un entorno bien administrado con una imagen normalizada de sistema operativo, probablemente podrá automatizar el proceso de cifrado para los usuarios según las ubicaciones de almacenamiento de datos predeterminadas de su imagen. Por ejemplo, si los usuarios sólo pueden guardar datos en %userprofile%\Mis documentos, puede que sólo necesite cifrar este directorio. Nota: tenga cuidado al cifrar Mis documentos si utiliza el redireccionamiento de carpetas. Si Mis documentos se redirecciona a un servidor, este tiene que ser de confianza para la delegación y tener acceso al perfil del usuario. En estos casos, lo más sencillo suele ser cifrar sólo la memoria caché de archivos sin conexión, de lo que hablaremos más adelante en esta columna.

En un entorno menos administrado, en el que los usuarios pueden escribir en diversas ubicaciones del sistema de archivos, puede que quiera usar el enfoque de automatizar el cifrado de algunas ubicaciones de almacenamiento comunes y, a continuación, proporcionar a los usuarios las instrucciones para cifrar otras ubicaciones por su cuenta. Independientemente del entorno que posea, debe cifrar siempre en el nivel de directorios, en lugar de hacerlo en el nivel de archivos. De esta forma, podrá garantizar que todos los archivos creados en el directorio, incluso los temporales, estarán siempre cifrados.

Ubicaciones de cifrado recomendadas

Como regla general, las ubicaciones que debe cifrar suelen ser: %userprofile%\Mis documentos, %userprofile%\Application Data\Microsoft\Outlook (se presupone que utiliza Microsoft Office Outlook® como cliente de mensajería) y %userprofile%\Escritorio. El cifrado de Mis documentos protege la ubicación predeterminada de los archivos guardados en Windows XP. La protección del directorio de Outlook garantiza que también se cifra el correo electrónico confidencial guardado en la memoria caché de forma local. Esto resulta especialmente importante para los usuarios que ejecutan el modo predeterminado de almacenamiento en caché de Outlook 2003. Por último, el escritorio suele utilizarse como una especie de directorio temporal donde los usuarios pueden colocar documentos en los que están trabajando actualmente o presentaciones que utilizan con frecuencia. Por supuesto es posible que, en su organización, las ubicaciones predeterminadas de algunos de estos directorios sean diferentes, por lo que las opciones de cifrado de EFS deben reflejar las ubicaciones que más se utilicen en su organización.

Además de estas recomendaciones generales, también debe determinar si dispone de aplicaciones que puedan almacenar información confidencial en ubicaciones alternativas. Por ejemplo, algunas aplicaciones guardan información del usuario en %ProgramFiles%\AppName, en lugar de hacerlo en el perfil de usuario. Es importante determinar si tiene alguna de estas aplicaciones en los sistemas cliente para que pueda proteger adecuadamente cualquier dato que utilicen. En el mejor de los casos, la aplicación podría configurarse para guardar los cambios en otra ruta de acceso específica del perfil de usuario (como Mis documentos), donde no sería necesario ningún cambio EFS adicional. En el peor de los casos, si la aplicación requiere que los datos se almacenen en su directorio de Archivos de programa, EFS podría utilizarse para cifrar sólo ese subdirectorio específico de Archivos de programa.

Por último, tenga cuidado si planea cifrar el directorio temporal (%TMP% y %TEMP%). Muchos instaladores de aplicaciones utilizan este directorio para expandir el contenido de los paquetes de instalación y, a continuación, realizan operaciones de desplazamiento de archivos en los archivos expandidos para colocarlos en la ruta de acceso adecuada en %ProgramFiles%. Debido a que un archivo movido en el mismo volumen conserva sus atributos originales, el archivo continuará cifrado después de su colocación en %ProgramFiles%. Si un usuario (que no sea el que está ejecutando el instalador) intenta utilizar este archivo, se le denegará el acceso. A menudo, estos problemas no se manifiestan en mensajes de error claros de aplicación indicativos de la causa raíz. Por esta razón, normalmente recomiendo que %TMP% sólo se cifre en entornos bien administrados donde los usuarios finales no instalan aplicaciones por sí mismos.

Protección de Archivos sin conexión

Archivos sin conexión es una característica de Windows 2000 y ediciones posteriores que permite a los usuarios crear una copia local de los datos almacenados en un servidor de archivos. Archivos sin conexión permite al usuario trabajar con estos datos mientras está desconectado del servidor y sincronizar los cambios con el servidor la próxima vez que se conecte. Sin embargo, Archivos sin conexión no es un directorio sencillo que contiene copias de archivos del servidor. En su lugar, se trata de una base de datos compartida en todo el sistema que se ejecuta en el contexto de la cuenta SYSTEM. En Windows XP, esta base de datos se puede proteger con EFS. Considere las implicaciones de este aspecto en relación con el análisis anterior sobre el establecimiento de EFS por usuario. ¿Cómo puede EFS, que es específico del usuario, cifrar una base de datos que utilizan varias entidades principales de seguridad?

Cuando un usuario que ejecuta Windows XP elige la opción en el Explorador de Windows para cifrar los archivos sin conexión, la rutina de cifrado es diferente a la utilizada por el resto de las operaciones de cifrado que el usuario puede iniciar. En vez de usar el par de claves EFS personal del usuario en el proceso (que impediría el acceso de SYSTEM a los archivos), la cuenta SYSTEM autogenera un par de claves para usarlas con EFS y lo utiliza para cifrar la memoria caché del cliente. Esto tiene una implicación crítica de seguridad, ya que si alguien puede obtener posteriormente el código para ejecutarlo como SYSTEM, podrá descifrar los datos de la memoria caché. Si se roba un equipo portátil, el usuario malintencionado sólo tendrá que restablecer la contraseña de administrador e iniciar la sesión como tal. Una vez que lo esté ejecutando como administrador, será igual de sencillo forzar la ejecución de código como SYSTEM y, a continuación, tener acceso a la memoria caché. Tenga en cuenta que este comportamiento ha cambiado en Windows Vista™. Ahora Windows Vista utiliza la clave individual del usuario para cifrar los archivos sin conexión específicos del usuario.

Como protección contra este tipo de ataques, se puede configurar el equipo portátil para almacenar la clave de cifrado de la base de datos del Administrador de cuentas de seguridad (SAM) sin conexión, bien como entrada de contraseña al iniciar (modo 2) o en un disquete durante el proceso de arranque (modo 3). Ambos enfoques pueden resultar incómodos, puesto que requieren interacción no automatizada con el equipo durante el proceso de arranque, lo que da lugar a problemas potenciales con la administración automatizada de sistemas. Sin embargo, si se va a usar EFS en un equipo con Archivos sin conexión, es vital que se utilice una de estas opciones para proteger los datos en la memoria caché. Suelo recomendar que se utilice la contraseña al iniciar (consulte la figura 1). El motivo es que un usuario al que le sustraen la bolsa con el equipo portátil probablemente tenga el disco en el portátil o, en su defecto, casi seguro que lo tiene en la bolsa.

Figura 1 Automatización de operaciones de EFS

Figura 1** Automatización de operaciones de EFS **

Habilitación de EFS

Una vez que haya determinado los elementos que va a cifrar en el cliente, el siguiente paso es realizar la operación de cifrado. Este proceso puede acometerse mediante una secuencia de comandos de inicio de sesión u otro proceso que ejecutará una secuencia de comandos en el cliente, la cual llama a cipher.exe para realizar la operación de cifrado. Si hay usuarios de EFS independientes en su entorno, como he señalado en el ejemplo anterior, recomiendo que primero los migre.

Para migrar estos usuarios independientes, el primer paso es aprovisionar los sistemas de cliente con certificados administrados, como se describe en la entrega de febrero de 2007 de esta columna (microsoft.com/technet/technetmag/issues/2007/02/SecurityWatch). Una vez que se hayan registrado todos los sistemas para estos certificados administrados, se debe ejecutar cipher con el modificador U/ para actualizar todos los archivos existentes con las nuevas claves de cifrado y de agente de recuperación. En este punto, todos los sistemas del grupo SG-ComputersUsingEFS estarán utilizando EFS de forma administrada, incluidas las claves emitidas (y posiblemente archivadas) de forma centralizada y los agentes de recuperación administrados centralmente.

Si desea implementar EFS para los usuarios que no lo están utilizando actualmente, debe eliminar primero la directiva de grupo que impide el uso de EFS. Después de hacer esto y de que los usuarios hayan inscrito los certificados administrados, se puede ejecutar una secuencia de comandos de inicio de sesión para cifrar las rutas de acceso de las claves descritas anteriormente. He aquí un ejemplo sencillo de una secuencia de comandos:

cipher /e /s /a "%userprofile%\My Documents"

cipher /e /s /a "%userprofile%\Application Data\Microsoft\Outlook"

cipher /e /s /a "%userprofile%\Desktop"

Después de habilitar EFS en los directorios deseados, debe considerar la configuración de dos opciones adicionales para aumentar la seguridad de la implementación de EFS, ambas relacionadas con los datos paginados de la memoria al disco. Tenga en cuenta que para cada uno de estos escenarios, la cantidad de datos potencial que podría recuperar un usuario malintencionado estará limitada a la que se haya cargado en la memoria o paginado al disco durante su uso legítimo. Es decir, si un usuario tiene en el equipo datos confidenciales protegidos por EFS que no ha visto (y, por tanto, que no se han cargado en memoria), estos datos estarán a salvo de estos ataques.

Windows utiliza el archivo de paginación como memoria virtual (a menudo denominado "espacio de intercambio" en otros sistemas operativos) y contiene fragmentos sin tratar de datos en memoria que se han escrito en texto no cifrado en el disco duro. Este procedimiento puede colocar los datos confidenciales en situación de riesgo en un sistema protegido por EFS, ya que, si un usuario malintencionado recupera el archivo de paginación, posiblemente podrá utilizar herramientas forenses para extraer los datos útiles de este archivo. Dado que el propio archivo de paginación no se puede cifrar en Windows XP (recuerde que sí puede hacerse en Windows Vista), la mejor opción es obligar a Windows a que lo borre al apagar el equipo. Esta acción se puede llevar a cabo mediante la directiva de grupo, como se ilustra en la figura 2.

Figura 2 Configuración de la directiva de grupo

Figura 2** Configuración de la directiva de grupo **(Hacer clic en la imagen para ampliarla)

La desventaja de esta configuración es el aumento considerable de tiempo que se precisa para apagar un equipo, especialmente uno con grandes cantidades de memoria. De forma predeterminada, el tamaño del archivo de paginación está directamente relacionado con la cantidad de memoria física del equipo. El motivo es que, para desactivar el archivo de paginación, Windows debe escribir físicamente en cada página del disco antes del apagado.

El archivo de hibernación en Windows contiene un volcado de la memoria física del equipo cuando se ha configurado el modo de administración de energía para permitir la hibernación. Cuándo se produce la hibernación, Windows escribe el contenido completo de la memoria física del disco en el archivo de hibernación, lo que permite que el equipo se pueda restaurar exactamente en el mismo estado que estaba cuando el usuario está preparado para continuar con su trabajo. Al igual que ocurre con el archivo de paginación, el archivo de hibernación no se puede cifrar en Windows XP. Sin embargo, a diferencia del archivo de paginación, la hibernación no se puede deshabilitar directamente desde un GPO. En su lugar, tendrá que utilizar una secuencia de comandos para llamar a powercfg.exe con el modificador /HIBERNATE para deshabilitar (o volver a habilitar) la hibernación.

Después de completar las tareas iniciales de cifrado y configuración, considere borrar el espacio de inactividad en los discos de la implementación. Este proceso puede tardar bastante tiempo y presentar problemas, pero ofrece una ventaja de seguridad en entornos de seguridad alta. El espacio de inactividad es el área de un disco que no contiene los datos actualmente activos en el sistema pero que, debido al modo en que funcionan los discos duros, puede contener fragmentos de información confidencial de archivos utilizados anteriormente. Es decir, puesto que una operación de eliminación de archivos no sobrescribe realmente todos los sectores que un archivo ocupa en un disco (sólo elimina el puntero de la tabla de archivos), los datos eliminados pueden permanecer en el disco. En estos casos, los datos se pueden recuperar con herramientas forenses que puedan leer este espacio de inactividad y volver a montar los archivos con la información allí encontrada. Para borrar de forma segura estos datos residuales, ejecute cipher con el modificador /W. De esta forma, cipher sobrescribe de forma repetida todos los sectores marcados como disponibles en el disco. Siempre y cuando todas las futuras operaciones de archivo con datos confidenciales se lleven a cabo en directorios protegidos por EFS, no será necesario ejecutar este comando periódicamente.

Mejora del Explorador de Windows para EFS

De forma predeterminada, las opciones de cifrado y descifrado para archivos y directorios están algo ocultas en los menús de propiedades avanzadas del Explorador de Windows. Si desea mejorar la experiencia del usuario final con EFS, coloque "Cifrar" y "Descifrar" en el menú contextual del Explorador de Windows (que aparece al hacer clic con el botón secundario). Además, se puede configurar el Explorador de Windows para mostrar los archivos y los directorios protegidos por EFS en un color diferente (verde) al de otros archivos. Así, los usuarios sabrán si un archivo o un directorio particular están cifrados sin tener que solicitar los detalles del menú de propiedades avanzadas. Por último, puede que quiera agregar una opción para definir los usuarios que tienen acceso al archivo o al directorio. Para habilitar estas opciones, realice

following changes in the registry via a script calling reg.exe:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]

"EncryptionContextMenu"=dword:00000001

"ShowCompColor"=dword:00000001

[HKEY_CLASSES_ROOT\*\Shell\Encrypt To User...\Command]  
@="rundll32 efsadu.dll,AddUserToObject %1"

EFS en Windows Vista

EFS ha recibido varias mejoras importantes en Windows Vista que lo hacen más fácil de implementar y administrar, y aumentan su seguridad. Una de las mejoras principales es la total compatibilidad con el almacenamiento de claves EFS en tarjetas inteligentes. Se trata de una característica especialmente valiosa para las organizaciones que ya utilizan inicios de sesión con tarjeta inteligente, porque se puede utilizar esta misma tarjeta para almacenar claves EFS de usuario. Esta compatibilidad con tarjetas inteligentes se amplía también a los certificados de agente de recuperación, de modo que los certificados confidenciales de DRA también se pueden almacenar en tarjetas.

Además, Windows Vista es compatible con el cifrado de elementos que anteriormente resultaba imposible o complicado en Windows XP. Windows Vista puede cifrar el archivo de paginación, lo que elimina la necesidad de activar la opción para "borrar el archivo de paginación de la memoria virtual". El diseño completo de Archivos sin conexión se ha cambiado del todo en Windows Vista. Además de ofrecer niveles de rendimiento y estabilidad mejorados (así como una interfaz en general más fácil de usar), el almacenamiento en caché del cliente se realiza ahora por usuario, lo que significa que es posible cifrar de forma segura la memoria caché sin el uso del modo 2 o 3 de SYSKEY. Estas dos mejoras eliminan los principales obstáculos de la implementación en los entornos actuales basados en Windows XP.

Finalmente, Windows Vista permite a los administradores configurar el cifrado de la carpeta Documentos directamente a través de la directiva de grupo, sin tener que utilizar una secuencia de comandos independiente. La figura 3 ilustra las nuevas propiedades de EFS disponibles a través de GPO en Windows Vista.

Figura 3 Propiedades de EFS en Windows Vista

Figura 3** Propiedades de EFS en Windows Vista **(Hacer clic en la imagen para ampliarla)

Conclusión

EFS ofrece a los administradores de Windows una opción sumamente segura para proteger los datos móviles. EFS es escalable, administrable y ofrece mecanismos flexibles de recuperación de datos. En Windows Vista, EFS se ha mejorado aún más, con capacidades optimizadas para una administración e implementación más fáciles, y con la compatibilidad con el almacenamiento de claves en tarjetas inteligentes. Para las organizaciones que quieren proteger los datos, aun cuando se haya perdido físicamente el equipo, EFS ofrece una solución sólida que ya forma parte de la plataforma existente de Windows.

Recursos adicionales

Para obtener más información sobre los temas tratados en esta columna, consulte los recursos siguientes:

John Morello se graduó summa cum laude en LSU y ha trabajado con Microsoft durante seis años en una amplia variedad de funciones. Como consultor sénior, ha diseñado soluciones de seguridad para empresas pertenecientes a Fortune 100 y para clientes de defensa, civiles y federales. Actualmente es director de programas en el grupo de Windows Server que trabaja en tecnologías de seguridad y acceso remoto.

© 2008 Microsoft Corporation and CMP Media, LLC. Reservados todos los derechos; queda prohibida la reproducción parcial o total sin previa autorización.