Construir y desplegar imagen de Windows 10 en modo S

Hace unos días, por cuestiones de trabajo, requería hacer un piloto en una empresa evaluando Windows 10 en modo S por el escenario de seguridad y rendimiento que presenta este modo. Sin embargo, tuve bastantes problemas para convertir una imagen a modo S, pues aunque existe la documentación, está incompleta y no tiene caso algunos detalles adicionales.

Para no tener que volver a pasar por esto (olvido fácilmente) y con el fin de compartir para otras personas que lo necesiten, voy a explicar el paso a paso con más detalles a continuación.

Si quieren leer algunos detalles técnicos sobre el modo S de Windows 10, pueden leer la descripción oficial en la documentación oficial de Microsoft.

Requerimientos

1. Imagen de Windows 10 en cualquier edición, ojalá 1903 en adelante

2. Crear una carpeta llamada C:\W10, y otra llamada C:\Mount

2. Tener instalado el ADK para Windows 10 y la actualización del SIM para el ADK

3. Equipo técnico en donde esté instalado el ADK para Windows 10

4. Equipo de prueba, físico o virtual, en donde se pueda probar Windows 10 en modo S

Paso 1: crear carpeta con archivos de instalación de Windows 10

Como necesitamos montar la imagen para activar el modo S, debemos copiar todos los archivos de instalación a una carpeta local. Para esto, hacemos lo siguiente:

image

Paso 2: crear archivo de respuesta con SIM

Lo siguiente será aplicarle un catálogo predeterminado a la imagen de Windows 10 Pro, con el fin de que solo pueda ejecutar aplicaciones y controladores que sean confiables para Microsoft, es decir, que vengan desde la tienda de Windows y algunas otras excepciones.

Para esto, ejecutamos el System Image Manager con privilegios elevados, nos ubicamos debajo del panel izquierdo que dice Windows image, clic derecho sobre Select a Windows image or catalog file y escogemos Select Windows image:

image

En la ventana de Select a Windows image, seleccionamos install.wim en nuestra carpeta de C:\W10\Sources y clic en Open:

image

En la ventana de Select an image, escogemos Windows 10 Pro y clic en OK:

image

Clic en el botón de Yes para crear el catálogo:

image

Una vez termine, debemos ver los nodos de componentes y paquetes:

image

A continuación, presionamos las teclas CTRL + N y veremos que en el panel superior central de Answer file, se habrá creado un nuevo archivo de respuesta sin nada:

image

Luego de tener el catálogo y el archivo de respuesta, expandimos el nodo de Components en la parte inferior izquierda, buscamos amd64_Microsoft-Windows_CodeIntegrity y hacemos clic en Add Setting to Pass 2 offlineServicing:

image

En la parte superior, hacemos clic sobre el componente agregado al archivo de respuesta y en el panel derecho cambiamos el valor de SkuPolicyRequired de 0 a 1:

image

Por último, vamos a File, Save answer file, le ponemos el nombre de Unattend.xml y lo guardamos en alguna ubicación de fácil acceso, pues necesitaremos copiarlo después a la imagen:

image

Paso 3: montar la imagen sin conexión

Una vez tengamos los archivos de instalación localmente, debemos montar la imagen en nuestra carpeta de C:\Mount con el fin de modificarla y activarle el modo S. Para esto, ejecutamos un símbolo del sistema con privilegios elevados y ejecutamos:

Dism /Mount-Image /ImageFile:C:\W10\sources\install.wim /Index:5 /MountDir:C:\Mount

image

El número del índice, es decir, 5, equivale a la imagen de Windows 10 Pro. Si quieren utilizar otra, deben hacer uso del parámetro /Get-WimInfo y consultar el índice adecuado

Podrán notar que la estructura de carpetas en Mount es muy similar a la de una instalación normal de Windows:

image

Paso 4: copiar y aplicar el archivo de respuesta a la imagen

Primero copiamos la carpeta de Panther ejecutando desde el CMD:

mkdir C:\Mount\Windows\Windows\Panther

image

Segundo, copiamos el archivo de respuesta que creamos en el paso anterior a esta carpeta:

image

<

p align=»justify»>Tercero, aplicamos el archivo de respuesta a la imagen sin conexión desde el CMD:

Dism /Image:C:\Mount /Apply-Unattend:»C:\Mount\Windows\Windows\Panther\Unattend.xml»

image

Opcionalmente, podríamos aprovechar algunas características útiles como Telnet:

image

<

p align=»justify»>Por último, desmontamos la imagen aplicando cambios:

Dism /Unmount-Image /MountDir:C:\Mount /Commit

image

¡Listo! Solo nos queda definir el método de implementación.

Paso 5: crear imagen ISO para UEFI

Ejecutamos el Deployment and Imaging Tools Environment con privilegios administrativos y luego creamos la imagen ISO corriendo:

Oscdimg -b»C:\W10\efi\microsoft\boot\efisys.bin» -pEF -u1 -udfver102 C:\W10 C:\en_win10_pro_s_mode.iso

image

Paso 6: pruebas de instalación

Finalmente, basta con realizar la instalación normal del sistema operativo y verificar que, efectivamente, el modo S quedó activado en las propiedades del sistema:

image

Cabe aclarar que Windows 10 en modo S no permite ni siquiera ejecutar varias aplicaciones integradas como CMD:

image

<

p align=»justify»>Como ven, solo permite aplicaciones que hagan parte de la tienda de Microsoft; no obstante, algunas aplicaciones como el nuevo Edge puede instalarse sin problemas. Adicionalmente, toda aplicación que se despliegue desde Intune a un equipo en modo S también se podrá instalar, pues se considera el MDM como una fuente confiable, tal cual como si fuese la tienda.

Habilitar BitLocker en Windows 10 desde Microsoft Intune

BitLocker es una tecnología de cifrado a nivel de unidad disponible desde Windows 7 Enterprise. En un principio, solo se podía activar en ediciones Enterprise y su administración era a través de directivas de grupo; sin embargo, el producto evolucionó en cuanto a características y pasó a ser parte de Pro en Windows 8/1 en adelante, además de agregar administración desde Microsoft BitLocker Administration and Monitoring (MBAM), consola que me permitía gestionar todas las operaciones de una forma mucho más productiva que simples directivas de grupo.

Con la evolución de Microsoft Intune y la nueva era de escritorio moderno, la administración de BitLocker ahora se está llevando a la nube para mayor simplicidad y aunque ya Microsoft anunció varias características interesantes que vienen pero no están listas, ya es posible aprovechar otras tantas funcionalidades desde Intune.

En este artículo vamos a configurar Intune para activar un cifrado básico en todos los equipos Windows 10 que estén registrados.

Requerimientos

  1. Tener el dispositivo Windows registrado en Microsoft Intune
  2. Licencia de EMS + Security o Intune de forma independiente
  3. Tener instalado como mínimo Windows 10, versión 1803. Recomiendo 1903

Grupo de dispositivos

Aunque la asociación de Intune suele hacerse hacia los usuarios que estén registrados, la directiva se aplica directivamente a cada dispositivo. Es por esta razón que debemos asegurarnos de tener un grupo que cumpla nuestras funciones de piloto antes de crear la directiva.

Para crear el grupo, ingresamos al portal de Azure, vamos al Azure Active Directory, luego en Groups y creamos un nuevo grupo haciendo clic en el botón superior de New group

image

En la página de New Group, le indicamos un nombre a nuestro grupo de dispositivos, descripción opcional y luego hacemos clic en Members:

image

En la página de Members, buscamos el dispositivo por su nombre, hacemos clic sobre él y luego clic en el botón Select.

Nota: aquí es donde aprovechamos a agregar todos los dispositivos que recibirán la directiva.

image

De vuelta en la página de New Group, hacemos clic en el botón de Create para que el grupo quede agregado a Azure AD.

Creación de directiva

En el portal de Azure, vamos a Intune, luego Device Configuration, Profiles y hacemos clic en el botón de Create profile en la parte superior:

image

En la página de Create Profile, indicamos un nombre, seleccionamos Windows 10 and later como Platform, Endpoint protection como Profile type, le damos clic en el botón de Settings y finalmente escogemos Windows Encryption:

image

En el nodo de Windows Encryption es donde podremos configurar todas las opciones disponibles de BitLocker para unidades de sistema operativo y externas, esto incluye: recuperación, tipos de seguridad, mensajes opcionales, etc. Adicional a esto, hay otras tantas directivas OMA-URI disponibles para BitLocker, pero no entraremos en detalle aquí.

Para este artículo, vamos a empezar por habilitar el cifrado cambiando a Require la opción de Encrypt devices en la categoría de Windows Settings:

image

En la categoría de BitLocker OS Drive Settings, activamos lo siguiente:

Additional authentication at startup: Require

OS drive recovery: Enable

Save BitLocker recovery information to Azure Active Directory: Enable

Store recovery information in Azure Active Directory before enabling BitLocker: Require

image

Lo más importante a destacar aquí es que utilizaremos TPM con alguna de las opciones adicionales como PIN o llave y guardaremos la clave de recuperación en el objeto de Azure AD.

Hacemos clic en el botón OK de Windows Encryption al final del panel, luego OK en el panel de Endpoint protection y finalmente Create en la página de Create Profile para terminar.

Asignación de directiva

Como regla general en Intune, cada directiva que se cree debe asignarse a un grupo de usuarios o dispositivos para que pueda empezar a funcionar, muy similar al las directivas de grupo tradicionales.

Para asignar la directiva, estando dentro de la política en cuestión, hacemos clic en Assigments:

image

En la página de Assignments, debajo de Include, hacemos clic en Select groups to include, buscamos nuestro grupo de dispositivos creados previamente, hacemos clic sobre él y luego clic en el botón de Select:

image

Por último, hacemos clic en el botón de Save que se habilitará luego de agregar el grupo:

image

Pruebas funcionales

Si todo sale bien, en cuestión de minutos todos los equipos que pertenecen al grupo y reciben la política deberían indicar que es necesario hacer el cifrado de máquina:

SNAGHTML5fd115ad

En caso de que el usuario cierre el mensaje haciendo clic en el botón de No, el mensaje se volverá a mostrar después de un rato o de un reinicio. Si el usuario selecciona «No volver a preguntar», el cifrado no se iniciará y tampoco volverá a aparecer el mensaje.

Infortunadamente, no he encontrado forma soportada de evitar que se pueda seleccionar esa opción o que al menos se pueda forzar a aparecer el cuadro de nuevo, la única manera fue recurriendo a Process Monitor y viendo qué hacía Windows al momento de escoger «No volver a mostrar»:

image

Como pueden ver, se crea un valor llamado UserOptedOutEncryptionNotification con un tipo de dato REG_DWORD y contenido de 1, es decir, habilitado en la sublcave:

HKEY_LOCAL_MACHINE\Software\Microsoft\BitLockercsp\UserOptions

Basta con eliminar ese valor y reiniciar o esperar un rato a que el cuadro vuelva a aparecer.

Como dato adicional, es necesario seleccionar la primera opción para iniciar el cifrado. Cuando presionemos Sí, Windows iniciará el asistente normal de cifrado de unidad de BitLocker:

image

En el primer paso normalmente conviene utilizar una contraseña personal para desbloquearla, después escogemos el método de recuperación que deseemos:

image

*Nota: sin importar cuál escojamos, desde las directivas ya estamos obligando a que la clave de recuperación se guarde en la nube, es decir, la primera opción.

En la página de Elegir qué cantidad de la unidad desea cifrar, dejamos la opción predeterminada y hacemos clic en Siguiente:

image

En la página de Elección del modo de cifrado que se usará, dejamos el de Modo de cifrado nuevo y clic en Siguiente:

image

Finalmente, en la página de ¿Está listo para cifrar esta unidad?, hacemos clic en Continuar:

image

Solo nos queda esperar hasta que el cifrado se complete:

image

En un próximo artículo explicaré el proceso de recuperación que existe actualmente en caso de que el usuario tenga problemas para ingresar en un disco cifrado.

Saludos,

—Checho

Crear directiva de cumplimiento para Windows 10 en Intune

Como indiqué en un artículo anterior, el procedimiento natural después de unir uno o múltiples dispositivos a Microsoft Intune es empezar a gestionarlos, es decir, aplicarle directivas de configuración o de seguridad, se a través de las que están preestablecidas o utilizando las que hacen parte del OMA-URI.

Ahora bien, por motivos de seguridad siempre es conveniente tener una base de cumplimiento para saber que cada dispositivo unido cumple con estándares definidos por la organización. Microsoft Intune nos permite crear algunas directivas de cumplimiento tanto para dispositivos móviles como para estaciones Windows de una forma muy sencilla, así que utilizaré el resto del artículo para describir el proceso, aunque solo me enfocaré en Windows 10 por ahora.

Requisitos

1. Es necesario contar con licencia de Intune y de Azure Active Directory Premium. Ambas están incluídas en los planes de Enterprise Mobility + Security (EMS)

2. Utilizar una plataforma soportada:

  • Android
  • iOS
  • macOS
  • Windows 8.1
  • Windows 10

3. El dispositivo tiene que estar inscrito en Microsoft Intune

4. Para Conditional Access: no están soportados los equipos unidos con la inscripción múltiple de dispositivos, tiene que ser individual

Crear directiva de cumplimiento

1. Iniciamos sesión en el portal de Azure con la cuenta administrativa: https://portal.azure.com

2. En la barra de búsqueda de arriba, digitamos Intune y seleccionamos Intune:

image

3. En la página de Microsoft Intune, seleccionamos Device Compliance en el panel izquierdo:

image

4. En la página de Device Compliance, hacemos clic en Policies y luego en Create Policy

image

5. En la página de Create Policy, indicamos un nombre, descripción y como plataforma escogemos Windows 10 and later:

image

6. Hacemos clic en Settings, luego en Device Health, activamos como Require la opción de Require BitLocker y hacemos clic en OK en la parte inferior:

image

7. En la página de Windows 10 complicance policy, hacemos clic en System Settings para expandir otras configuraciones, activamos Firewall y Antivirus y luego clic en OK:

image

En este artículo solo referencié algunas directivas, pero cada organización debe acomodarse a sus necesidades.

8. En la página de Windows 10 compliance policy, hacemos clic en OK

9. En la página de Create policy, hacemos clic en el botón de Create en la parte inferior:

image

10. En la página de la directiva creada, en mi caso Windows Compliance, hacemos clic en el botón izquierdo de Assignments, luego en el botón central de Select groups to include y agregamos el grupo al que pertenezcan los usuarios que están iniciando sesión en los dispositivos a evaluar. Después de esto, hacemos clic en el botón de Save para guardar:

image

Intune hará la evaluación cada 8 horas aproximadamente después de los primeros 30 minutos de haberlo unido al MDM. Mientras eso pasa, es probable que vean los dispositivos en la categoría de Not Evaluated:

image

Lamentablemente, el cuadro anterior es de los que más se demora para actualizarse, así que yo diría que es poco confiable, a menos que se le de el tiempo adecuado.

Si queremos ver el detalle de lo que cumple, no cumple o no aplica, basta con ir a la consola de Intune y hacemos clic en Setting compliance, debajo de la categoría de Monitor. En  el panel central veremos un desglozado de lo que aplicamos como cumplimiento y sus resultados:

image

Aunque personalmente las directivas de cumplimiento en Intune creo que les falta mucho, se pueden utilizar para hacer cosas mucho más interesantes si se unen con el Acceso condicional, pero eso será probablemente para otras entradas del blog.

Espero les sea de utilidad.

—Checho

Inscribir múltiples dispositivos Windows 10 a Microsoft Intune con un paquete de aprovisionamiento

Con la fuerte apuesta de Microsoft a la seguridad y la nube, Microsoft Intune, su plataforma de administración de dispositivos, ha tomado mucha más fuerza, al punto de entrar en el grupo que lidera el cuadrante de Gartner en temas de Unified Endpoint Management, así que se vuelve bastante conveniente empezar a profundizar en todo lo que la plataforma brinda.

Como cualquier otra plataforma de administración, es necesario registrar o inscribir el dispositivo (PC, tablet o móvil) de alguna forma, Intune no es la excepción. Hablando específicamente de Windows, se puede hacer desde el OOBE (manual o a través de Autopilot) o ya en Windows; sin embargo, con el fin de optimizar el proceso para escenarios de muchos dispositivos, es posible configurar un paquete de aprovisionamiento que sirva para unir múltiples dispositivos utilizando un solo token; es decir, sin necesidad de depender de cada cuenta de usuario.

A continuación, les mostraré, paso a paso, cómo podemos crear y desplegar el paquete de aprovisionamiento.

Requerimientos

  1. Todos los equipos deben estar en Windows 10, versión 1703 o superior
  2. Asignar licencia de Intune a la cuenta que se le asociará el token (ver más adelante)
  3. Habilitar la inscripción automática de dispositivos (ver más adelante)
  4. Instalar en un equipo técnico el ADK para Windows 10, versión 1809

Asignar licencia de Intune

Una vez creado el tenant de Intune o EMS (dependiendo del licenciamiento), navegamos hasta el portal de administración de Office 365 e iniciamos sesión con una cuenta administradora: https://portal.office.com/AdminPortal

Una vez en el portal, expandimos el nodo izquierdo de Users y luego clic en Active users

image

Hacemos clic sobre el usuario que deseamos asignarle la licencia de Intune:

image

En la página de usuario que se abre a la derecha, hacemos clic en el botón Edit que está en la parte derecha de Product licenses:

image

En la página de Product licenses, cambiamos de Off a On Intune o Enterprise Mobility + Security:

image

Por último, clic en el botón inferior de Save:

image

Clic en el botón de Close dos veces y cerramos la página de administración de Office 365.

Este mismo procedimiento lo debemos realizar para cada nuevo usuario cuyo dispositivo se vaya a conectar a Microsoft Intune.

Habilitar inscripción automática

1. Iniciamos sesión en el portal de Azure con la cuenta administrativa: https://portal.azure.com

2. Ubicamos y hacemos clic sobre Azure Active Directory en el panel izquierdo:

image

3. En la página de Azure Active Directory, seleccionamos Mobility (MDM and MAM)

image

4. Seleccionamos en el panel central Microsoft Intune

image

5. En la página de Configure, nos aseguramos de seleccionar All en MDM User scope para que todos los dispositivos de usuarios se puedan inscribir a Microsoft Intune:

image

Adicionalmente, pueden habilitar también MAM User scope para administrar los dispositivos móviles, aunque eso hace parte de otros posibles artículos.

En un escenario ideal, seleccionaríamos Some y ahí pondríamos un primer grupo de usuarios de pruebas antes de poder habilitar a toda la organización.

Con esto estamos listos para que los dispositivos con Windows 10 puedan ser administrados por Microsoft Intune.

Crear el paquete de aprovisionamiento

1. En el equipo técnico donde instalamos el ADK para Windows 10, versión 1809, ejecutamos el Windows Imaging and Configuration Designer como administradores

2. En la ventana de Windows Imaging and Configuration Designer, seleccionamos el nodo de Provision desktop devices:

image

3. En la ventana de New project, asignamos un nombre, una descripción (opcional) y hacemos clic en el botón de Finish:

image

4. En la categoría de Set up device, es obligatorio asignar un nombre de equipo. El paquete soporta un par de formatos: %SERIAL% y %RAND%. El primero pone el serial que toma del hardware de la máquina, el segundo asigna un número aleatorio según la cantidad que le demos. Para este caso, yo le pondré: INSIDO-%RAND:4%

image

Es muy importante no ir a asignar un nombre sin estas variables porque entonces todos tratarían de unirse como si fueran el mismo dispositivo y no funcionará.

5.  Hacemos clic en Account Management, seleccionamos Enroll in Azure AD y luego hacemos clic en el botón de Get Bulk Token:

image

6. Seguimos el asistente para iniciar sesión con la cuenta administrativa y obtener el token:

image

6. Si el equipo técnico no está unido a Azure AD, nos aparecerá otra página en donde debemos indicarle en la parte inferior This app only para terminar:

image

Si todo sale bien, nos debe decir «Bulk Token Fetched Successfully»:

image

7. Hacemos clic en el botón Finish y luego en Create para que el paquete compile:

image

8. Si todo sale bien, tendremos un enlace en la parte inferior para nuestro paquete similar a este:

image

Desplegar el paquete de aprovisionamiento

Aunque hay diferentes formas de implementar el paquete de aprovisionamiento, incluso de forma desatendida con PowerShell, lo haré de la forma más simple: copiar el paquete localmente a cada máquina.

1. Una vez copiado en cada equipo, hacemos doble clic sobre el paquete

2. Si nos sale la ventana del UAC, hacemos clic en el botón (Yes)

image

3. En la ventana del paquete de aprovisionamiento, confirmamos que se trate del que creamos y hacemos clic en el botón Sí, agregarlo:

image

Si todo sale bien, el equipo debería reiniciarse solo al momento de aplicarlo (1 min.):

image

4. Al reiniciar el equipo, estará conectado a Azure Active Directory e inscrito a Microsoft Intune. Cada nuevo usuario ya podrá iniciar normalmente con su cuenta profesional:

image

Como dije antes, es necesario que el usuario no tenga restricciones para iniciar sesión con su cuenta de Azure AD y que además tenga su respectiva licencia de Microsoft Intune asignada para poder recibir directivas desde la nube.

Visualizar los equipos inscritos en la consola de Intune

Para estar seguros de que todo salió bien, podemos visualizar los dispositivos inscritos directamente en la consola de Intune:

  1. Navegamos hasta https://portal.azure.com e iniciamos sesión con una cuenta de administrador

  2. En la barra de búsqueda superior, digitamos Intune y hacemos clic en Intune para abrir la consola:

image

  1. En la consola de Intune, hacemos clic en Devices en el panel izquierdo:

image

  1. En la página de Devices, hacemos clic en All devices, debajo de la categoría de Manage

image

  1. Aquí podremos ver todos los dispositivos inscritos correctamente a Intune:

image

Como pueden ver, tengo dos dispositivos con el formato de nombre que puse en el Configuration Designer al momento de crear el paquete.

De aquí en adelante ya podemos empezar a gestionar los dispositivos:  directivas, líneas base, etc. Espero compartir algo de esto en futuros artículos.

Cabe aclarar que con este método de inscripción no funciona el Acceso condicional (Conditional Access) sobre los dispositivos.

Espero sea de utilidad.

—Checho

Ransomware y el Acceso controlado a carpetas en Windows 10

Hace unos días escribí un artículo uno de los tipos de ataques relacionados con el robo de credenciales y cómo Windows Defender Credential Guard podía evitarlo. En esta ocasión haré el mismo ejercicio de mostrar una característica nueva de seguridad en Windows 10, pero esta vez enfocado a un tipo de peligro mucho más común: ransomware.

Windows 10 Fall Creators Update introdujo una serie de características de seguridad agrupadas en una categoría llamada Windows Defender Exploit Guard, que a su vez viene siendo el remplazo mejorado de lo que antes se conocía como EMET, pero ya integrado en Windows. Una de las categorías de Exploit Guard es Controlled Folder Access o Controla el acceso a la carpeta, como está traducido al español (algo rara esa traducción, por cierto). Cada aplicación que se ejecute es evaluada por Windows Defender; si determina que es maliciosa o no confiable, es decir, sospechosa, impide que haga modificaciones a cualquier archivo que esté dentro de las carpetas protegidas. Aunque está pensado para cualquier aplicación maliciosa que intente escribir, es especialmente útil para combatir el ransomware, pues si las aplicaciones no pueden modificar nuestros archivos, tampoco podrán, obviamente, proceder a cifrarlos para pedir recompensas.

Predeterminadamente, Controla el acceso a la carpeta agrega las carpetas más comunes en donde el usuario puede almacenar información a las carpetas protegida; estos directorios no se pueden modificar:

image

Antes de entrar en detalle sobre cómo habilitar la característica y configurar las opciones que Windows nos provee a través de directivas de grupo, hagamos una simulación sobre lo que podría pasar en las carpetas con datos importantes.

Jugando a ser ransomware: MalFile.exe

Para poder probar con calma Controla el acceso a carpeta, decidí escribir una pequeña aplicación en C utilizando algunas API de Windows para crear y cifrar archivos. El cifrado está basado en Cryptography API: Next Generation (CNG), de Microsoft, por si están interesados.

Pueden ver el código fuente y la versión 1.0 de esta aplicación en caso de que quieran hacer las mismas pruebas: https://github.com/SergioCalderonR/MalFile/releases 

Si utilizamos el parámetro –ef, la aplicación tomará un archivo de texto plano como primer argumento, leerá el contenido, cifrará el contenido y lo guardará en el archivo que indiquemos como segundo argumento con cualquier extensión. Además de esto, la aplicación eliminará el archivo fuente, así que solo quedará el que está cifrado. En otras palabras, estoy tratando de jugar a ser ransomware.

Ahora, en mi escenario tengo una carpeta llamada C:\Info y allí, un archivo Confidential.txt que tiene texto plato:

image

MalFile.exe necesita tres parámetros para cifrar: –ef, la ruta del archivo a cifrar y la ruta del archivo cifrado con cualquier extensión o bien en texto plano (.txt).

Suponiendo que la aplicación fuera un ransomware, el ataque se podría efectuar sin ningún problema, pues para hacer cifrado ni siquiera se necesitan privilegios administrativos. Yo voy a simular el ataque enviándole los parámetros y cifrando el archivo con extensión .neu, así:

MalFile.exe –ef C:\Info\Confidential.txt C:\Info\Encrypted.neu

image

Noten que la aplicación indica, paso a paso, todo lo que se hizo sobre el contenido del archivo y que elimina el archivo original (para fines de demo, pues no sería lo que haría un ransomware).

Si abrimos el archivo con un bloc de notas, vamos a ver todo el contenido cifrado y una pequeña descripción que aparecerá en texto plano:

image

El texto que no aparece cifrado es porque la función CryptProtectData de la API de Windows permite agregarlo para que viaje con el contenido, pero no lo cifra.

Siendo un verdadero ransomware, no sería un solo archivo, sino múltiples y estaríamos ya preocupados por no poder tener la información.

Protegiendo las carpetas importantes activando Controla el acceso a carpeta

Como mencioné al principio, Controla el acceso a carpeta o Controlled Folder Acces en inglés permite restringir las operaciones de escritura sobre archivos que estén en las carpetas protegidas, así que el ransomware o cualquier otro archivo malicioso no podría actuar, a menos que logre ser confiable dentro de la base de datos de Microsoft. Veamos qué pasa cuando tratamos de hacer el ataque anterior con la característica activada.

Primero, abrimos el Centro de seguridad de Windows Defender desde el menú de inicio:

image

En el Centro de seguridad de Windows, hacemos clic en Protección antivirus y contra amenazas:

image

En la página de Protección antivirus y contra amenazas, clic en Configuración de antivirus y protección contra amenazas:

image

Luego bajamos y activamos deslizando a la derecha para activar Controla el acceso a la carpeta:

image

A menos que el directorio que deseamos proteger esté en alguna ubicación predeterminada de usuario (documentos, imágenes, etc), hacemos clic en Carpetas protegidas:

image

Finalmente, hacemos clic en Agregar una carpeta protegida, navegamos hasta el directorio raíz y aceptamos para que quede dentro de la lista de Controla el acceso a la carpeta:

image

Aceptamos el UAC y listo, nuestra carpeta estará protegida.

Como dato adicional, también pueden agregar la carpeta desde PowerShell así:

Add-MpPreference –ControlledFolderAccessProtectedFolders [CarpetaProtegida]

Donde [CarpetaProtegida] hace referencia al directorio que va a protegeer Controla el acceso a la carpeta de Windows 10. En mi caso, quedaría así:

 Add-MpPreference –ControlledFolderAccessProtectedFolders C:\Info

image

De cualquiera de las dos formas deberíamos ver nuestra carpeta en la lista:

image

Aunque no lo indicaré en este artículo, también se puede habilitar la característica a través de directivas de grupo, incluso podemos usar un modo de auditoría para no afectar a las aplicaciones sin estar seguros de que todo funcionará.

¿Qué pasa ahora cuando una aplicación malitencionada intente hacer algo?

Jugando a ser ransomware: revancha

Utilizando MalFile, voy a probar dos escenarios: creación de archivos y cifrado de archivos. La diferencia es que ahora los archivos están protegidos.

Para crear un simple archivo de texto plano basta con usar el parámetro –nf junto con la ruta y extensión. Si intento crear un archivo en la carpeta C:\Info, esto es lo que pasa:

image

El manejador de errores de Windows está devolviendo un código de error 2, que es cuando no puede encontrar el archivo especificado. Esto es porque en el código estoy utilizando la función de CreateFile, que sirve para abrir o crear archivos. En un funcionamiento normal, independiente de que el archivo exista o no, debería crearlo desde cero, pues eso es lo que explícitamente le pedí cuando la escribí:

image

Ignoro por qué no devuelve un error diferente, pero puede indicar que solo permite hacer las operaciones de lectura. A parte de devolver el error y no permitir hacer la escritura, Windows Defender muestra una notificación al usuario del bloqueo similar a la siguiente:

image

Supongamos que tenemos nuestro archivo Confidential.txt con información importante y hasta ahora sano y salvo en la carpeta segura y lo intento cifrar usando de nuevo el parámetro de –ef, así:

MalFile.exe –ef C:\Info\Confidential.txt C:\Info\Encrypted.tulpep

image

La aplicación puede leer los datos, pasarlos a otro buffer para cifrarlos, pero no puede escribir en la misma carpeta otra vez, así que el archivo continuará intacto. También veremos la notificación por parte del Centro de seguridad de Windows Defender.

También podríamos suponer que dejando leer los datos, podríamos cifrarlos y luego escribirlos nuevamente, esto sería posible si como segundo parámetro le indicamos el mismo archivo fuente, así:

MalFile.exe –ef C:\Info\Confidential.txt C:\Info\Confidential.txt

Sin embargo, Controla el acceso a la carpeta también evita que un proceso no confiable pueda escribir sobre el mismo archivo:

image

Como pueden ver, Windows devuelve Acceso denegado. Interesante, ¿no?

Permitir acceso a aplicaciones manualmente

Desde que sea una aplicación comercial o esté firmada digitalmente, no deberían tener problemas para modificar archivos en la carpetas protegidas; sin embargo, habrá excepciones que encontrarán en el camino. Afortunadamente Windows Defender permite solventar esto, basta con devolvernos a la pantalla de Protección antivirus y contra amenazas y en vez de hacer clic en Carpetas protegidas, hacemos clic en Permitir que una aplicación acceda a una de las carpetas controladas:

image

Luego hacemos clic en Agregar una aplicación permitida, buscamos el ejecutable y aceptamos:

image

Después de esto, así esté habilitado Controla el acceso a carpeta permitirá la escritura sin problemas:

image

Hay un poco más de contenido sobre este tema, pero con esto es suficiente para conocer la característica y experimentarla.

Espero sea de utilidad.

Saludos,

—Checho
Follow me on Twitter