La mayoría del software que trabaja con ficheros no respeta SmartScreen en Windows

Sergio De Los Santos    16 junio, 2020
La mayoría del software que trabaja con ficheros no respeta SmartScreen en Windows

SmartScreen es un componente de Windows Defender orientado a proteger a los usuarios contra ataques potencialmente dañinos, ya sea en forma de enlaces o ficheros. Cuando un usuario se encuentra navegando por Internet, el filtro o componente SmartScreen analiza los sitios que está visitando y, en caso de ingresar a uno considerado sospechoso, muestra un mensaje de advertencia para que el usuario decida si desea continuar o no. Pero también alerta sobre archivos descargados.

Hemos investigado cómo funciona SmartScreen particularmente en este aspecto y hemos intentado comprender cuáles son los disparadores que activan este componente de protección desarrollado por Microsoft para conocer mejor su eficacia.

¿Cómo sabe SmartScreen qué archivo debe analizar?

Alternate Data Streams o ADS es una característica propia del sistema de archivos NTFS que permite almacenar metadatos en un archivo, ya sea por medio de un stream directamente o por medio de otro archivo o fichero.

Actualmente los ADS también son utilizados por diferentes productos para marcar archivos en el stream “:Zone.Identifier” y así saber cuándo un archivo es externo (es decir, que no fue creado en el propio equipo) y por tanto debe ser examinado por SmartScreen. Microsoft comenzó a marcar todos los archivos descargados a través de Internet Explorer (en su momento) y otros desarrolladores de navegadores comenzaron a hacer lo mismo para aprovechar la protección de SmartScreen.

El valor que se escribe en el stream, es decir, el ZoneId, puede tener cualquier valor que uno desee. Sin embargo, el comportamiento de SmartScreen se rige en base a los valores reflejados en la siguiente tabla:

Activar el valor en cualquier fichero es fácil por línea de comando:

¿Los navegadores utilizan esta característica para marcar los ficheros?

Analizamos los 10 navegadores más usados en sistemas operativos de escritorio. Para ello, descargamos un archivo de una página web. ¿Se agrega el ZoneId al archivo descargado? En la mayoría de los casos sí.

¿Y los clientes de FTP, versión de código, sincronización en la nube o transferencia de archivos?

Analizamos ahora otros programas susceptibles de descargar ficheros. Por ejemplo, la mayoría de clientes de correo no agrega el ZoneId para que sea analizado por SmartScreen.

Una buena parte de los clientes de mensajería instantánea de escritorio sí lo hace.

Ningún cliente de FTP, versionado de código o de sincronización en la nube anade el ZoneID adecuado, por tanto los ficheros obtenidos por este medio no serán analizados por SmartScreen.

Tampoco se preocupan por marcar los ficheros los clientes de sincronización en la nube…

Ni por los mecanismos integrados de transferencia de archivos en Windows.

Al menos WinZip y el descompresor nativo de Windows sí respetan esta opción si se descomprime tras la descarga.

Posibles evasiones

Tras entender cómo y cuándo se marca el archivo, la investigación nos llevó a reflexionar sobre qué proceso se encarga de ejecutar SmartScreen y si existen formas de eludir esa ejecución bajo su supervisión. Para realizar la prueba, marcamos archivos en su mayoría interpretados y conocidos como maliciosos por SmartScreen para saber si el archivo ejecutado de esta forma eludía o no la supervisión de SmartScreen. Tomamos una serie de ficheros en diferentes lenguajes interpretados y les activamos el bit, como hemos mencionado antes.

El resultado puede verse en la siguiente tabla:

Quizás lo más curioso es la diferencia al lanzarlos con el comando start:

En el que SmartScreen se interpone en PowerShell, pero no en CMD.

Conclusiones

En la siguiente tabla resumen de las pruebas realizadas podemos ver el porcentaje de los que NO escriben ZoneId en el archivo al ser descargado para que pueda ser analizado por SmartScreen:

En general, podemos concluir que un potencial atacante tendría varias formas de hacer llegar un archivo malicioso a un equipo con mayores garantías de no ser descubierto por SmartScreen: confiando en que el usuario descargue ejecutables con ciertos programas.

Creemos que resulta necesario que tanto los desarrolladores como los usuarios estén concienciados sobre cómo funciona SmartScreen para aprovechar sus capacidades de detección y proteger mejor al usuario.

El informe completo está disponible aquí:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *