El
modo protegido de Internet Explorer es, en realidad, el uso de control de
integridad aplicado al navegador de Microsoft. Una especie de sandbox. Esta
funcionalidad aporta una medida extra de seguridad a Internet Explorer, además
de ser, junto a Chrome de los pocos navegadores que la utilizan. Pero en
Internet Explorer existe una forma "por
diseño" de eludirla. Hemos creado una pequeña herramienta que permite
vigilar qué aplicaciones se pueden "saltar"
la sandbox.
Desde su versión Vista, Windows
implementa MACL ("Mandatory Access Control
List"). Todos sus objetos tienen un "nivel de integridad" asociado. Normalmente "medio". Los objetos (procesos,
ficheros, carpetas…) que tengan asociado un nivel de integridad "bajo", no podrán acceder a niveles
superiores ("medio" o "alto"), mientras que los de nivel "medio" o "alto" sí podrán acceder a los objetos definidos con nivel de
integridad "bajo". Esto
deja a los procesos o archivos definidos con nivel de integridad "bajo", en una especie de sandbox, puesto
que no pueden acceder a nada con nivel "medio"… o sea, al disco duro.
¿Cómo se definen estos niveles de integridad?
Aunque es una herramienta muy
útil, no existe forma gráfica de hacerlo en Windows. Sólo es posible con la
utilidad icacls.exe o a través de APIs específicas en los procesos. Tampoco
existen demasiados programas que las utilicen de forma predeterminada. Uno de
ellos es Internet Explorer, y al hecho de usarlo en sus procesos, Windows lo
llama "Modo protegido".
Pero claro, ¿cómo es posible
grabar a disco algo descargado desde el navegador, o realizar cambios en el
sistema, si en teoría con el modo protegido el navegador no puede acceder a esa
parte? Tanto Chrome como Internet Explorer manejan el concepto de "broker" que es un proceso en modo
de integridad "medio", que
siempre se ejecuta y hace de intermediario
para que el navegador no se encuentre totalmente aislado. Esto puede suponer un
punto de exposición. ¿Quién es "broker"
en Windows? ¿A qué otros programas se les permite actuar de esta manera? Los
que están definidos en esta rama de registro:
SOFTWARE\Microsoft\Internet Explorer\Low
Rights\ElevationPolicy
Tanto en su versión de
LocalMachine como de CurrentUser. La mayoría de las extensiones y plugins de
Internet Explorer necesitan de estas políticas de elevación para poder
funcionar cómodamente. Si no fuese así, muchas de estos programas integrados en
el navegador, esperarían confirmación cada vez que son ejecutados, y aparecería
un diálogo como este:
Así que si la rama "Policy" del programa "broker" tiene el valor 3, una instancia
del programa que se ejecute con integridad "baja" podrá invocarlo de forma silenciosa (sin que apareciese
el diálogo) y manejará la petición en modo de integridad "medio"... lo que supone un peligro.
Otras opciones de ejecución de estos programas "brokers" son: el valor 0, que impide que sea lanzado; el valor
1 que haría que se lanzase el proceso desde Internet Explorer siempre con nivel "bajo" sin preguntar; y el nivel 2 que lanzaría el programa con
nivel "medio" preguntando.
Una buena parte del adware que se
instala en forma de barra en Internet Explorer, también se introduce en esa
rama del registro para ejecutarse de forma transparente.
MICBypassCheck
Hemos creado una pequeña
herramienta (no demasiado elaborada estéticamente) que, simplemente, recorre
esa lista de programas y muestra de forma cómoda sus políticas. Un código de
colores ayuda a diferenciar qué política tiene cada programa. Además, marcará
en rojo las rutas a programas que no existen. Por ejemplo, ciertos programas desinstalados
pueden "olvidar" el
eliminar esa rama. Estos pueden ser eliminados sin problemas. El programa
también permite grabar un fichero con la información.
Ha sido programado en C# por
Sergio de los Santos y necesita .NET 4 para
funcionar. Está disponible desde:
Por cierto, durante su
elaboración descubrimos algo muy curioso:
Sergio de los Santos
Twitter: @ssantosv



Indicar que al ejecutar el programa encuentro 3 claves que no pueden ser accedidas por su utilidad. Obteniendo el mensaje "Acceso denegado al Registro solicitado".
ResponderEliminarExaminado el registro, dichas claves se corresponden con los siuientes programas:
wermgr.exe, CertEnrollCtrl.exe, TSWbPrxy.exe
Aparentemente todos de Microsoft. ¿Consideran normal que se produzcan dichos errores de acceso al registro? ¿Hay algo que no estoy haciendo correctametne?. Muchas gracias de antemano y por la aplicación.
No hay problema, es el comportamiento normal.
ResponderEliminarHola, podríais confirmarme si por diseño este programa verifica también la clave SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\Low Rights\ElevationPolicy ???
ResponderEliminarLo he probado y elimina las de
SOFTWARE\Microsoft\Internet Explorer\Low Rights\ElevationPolicy
Gracias.