domingo, 18 de diciembre de 2016

SmartScreen

SmartScreen es un mecanismo de seguridad de Microsoft que alerta a los usuarios cuando conectan a un sitio malicioso o cuando intentan ejecutar un fichero descargado que puede ser peligroso.

Está diseñado para ayudar a proteger a los usuarios contra los ataques de phishing, ingeniería social y de descarga drive-by, que intentan infectar un sistema.



SmartScreen está configurado por defecto en Internet Explorer a partir de su versión 9 (aunque en versiones anteriores existían ya algunas protecciones similares) y en Windows a partir de su versión 8.

Se basa en un sistema de reputación proporcionado por Microsoft. Cuando un usuario descarga un ejecutable que puede ser dañino, se calcula un resumen (hash) del mismo y se valida de forma online contra los servidores de Microsoft, cuando el usuario intenta ejecutarlo.

La reputación de un ejecutable se determina a partir de su hash y si va firmado mediante Authenticode a partir de la reputación del editor.

Un binario firmado por un editor de confianza no hará saltar la alerta de SmartScreen, aunque su hash sea desconocido.

Ejemplo de fichero EXE firmado:



La validación de la reputación se realiza solamente la primera vez que se ejecuta el programa descargado y queda almacenada en el sistema.

Para la validación se contacta con los servidores de Microsoft para obtener la calificación del programa ejecutado.

Ejemplo de petición efectuada para validar la reputación de un EXE:



Y respuesta positiva (allowed):



Si los servidores de SmartScreen no están disponibles, no es posible validar la reputación y se muestra un mensaje de alerta diferente:



De forma que hacer DoS a los servidores de Microsoft no es una opción completa para evadir la seguridad de SmartScreen. Aunque es un mensaje mucho menos alarmista que el primero.

Gracias a SmartScreen el número de infecciones por ataques de descarga drive-by se ha reducido considerablemente, aunque existen diversas técnicas para burlar su protección.

Algunas técnicas utilizadas para burlar la protección de SmartScreen son:
• Consiguiendo que el ejecutable gane reputación: Normalmente haciendo que tenga muchas descargas y que no haya reportes sobre comportamiento malicioso.
• Comprando un certificado Authenticode para firmar ejecutables y ganando reputación como editor. Ya que por sí sola la firma Authenticode no garantiza la conformidad de SmartScreen.
• Robando un certificado de un editor con buena reputación.
• Modificando un binario confiable ya firmado sin invalidar su firma.
• Colisión de hashes con un ejecutable con buena reputación.

Si no conseguimos la conformidad de SmartScreen siempre nos queda la opción  de aplicar ingeniería social y convencer al usuario para que ignore las alertas de seguridad y ejecute nuestro programa igualmente, pero lógicamente esta técnica es la más propensa a fallar.

SmartScreen es solo una primera barrera de protección y una tímida aproximación a las protecciones basadas en listas blancas (ya que alerta de aquellos ejecutables cuya reputación es desconocida).

Aun así, en entornos de alta seguridad es necesario acudir a herramientas de validación de reputación o basadas en listas blancas más restrictivas y que no permitan al usuario el ignorar las alertas de seguridad.

No hay comentarios:

Publicar un comentario en la entrada