Antecedentes
La mayoría de los kits de herramientas de instalación tienen la capacidad de iniciar, de forma automática o no, programas externos después de la instalación. Esto aparece a menudo en el instalador a través de opciones tales como "Mostrar archivo Léame" o "Iniciar programa".
Problema
El problema es que muchos de estos instaladores están mal codificados y no eliminan los permisos adecuadamente. Por ejemplo, iniciar la aplicación automáticamente o abrir la página de inicio de la aplicación en el navegador, a menudo resulta en iniciar la aplicación o el navegador con los privilegios administrativos del instalador, o un nivel de integridad UAC "alto".
Esto tiene el potencial de abrir brechas de seguridad, al abrir la aplicación instalada, o una página web (y posiblemente complementos de navegador), que ahora se ejecutan con permisos elevados.
(Esta es la razón por la que recomiendo no elegir nunca las opciones de inicio automático al instalar el software).
Pregunta
¿Hay una manera de evitar que ciertas aplicaciones (como un navegador web) desde siempre se puso en marcha con privilegios administrativos, es decir, una caída de privilegios automático basado en el nombre del proceso?
Respuestas:
Estoy de acuerdo, en principio, con la respuesta "RUNAS".
Me parece que lo que quiere es que las instancias de subproceso se restrinjan automáticamente si se ejecutan como administrador.
Hay un par de enfoques. Sin embargo, son / pueden ser drásticos y no son para el administrador tímido porque la sobrecarga es molesta. Sin embargo, harán el trabajo.
Solo se muestra el Enfoque uno a menos que se soliciten más :
Para cada aplicación que desee restringir:
Ahora, los miembros del grupo de administradores no pueden ejecutar ese archivo. Pueden volver y cambiar los permisos para desmarcar eso para poder ejecutarlo, pero tienen que hacerlo a sabiendas.
Además, dado que le preocupa que esto ocurra durante un instalador, desearía realizar el mismo procedimiento para el "usuario" del SISTEMA , que también (efectivamente) se ejecuta como administrador, porque esta cuenta se puede usar durante algunas instalaciones ( las credenciales de una cuenta de "ADMINISTRADOR" de Windows se pueden usar para obtener un token de credenciales del SISTEMA ... pero esto va mucho más allá de lo que esta pregunta tiene como objetivo).
Aquí hay una imagen de cómo hacer esto en Windows 7:
fuente
Debería poder alcanzar el nivel de derechos más bajo con dropmyrights o psexec.
La parte difícil parece ser hacer que suceda automáticamente cuando un instalador genera una nueva instancia de la aplicación.
Para eso sospecho que al menos necesitará ajustar las asociaciones de archivos para todos los tipos de archivos relevantes y también para las URL, anteponiendo su comando existente con el comando psexec, por ejemplo.
Eso funcionará mientras el instalador intente abrir el archivo / url con la aplicación asociada en lugar de especificar el ejecutable que se ejecutará. Si la ruta del ejecutable se especifica explícitamente, supongo que necesitaría reemplazar el ejecutable estándar con un ejecutable shim que ejecuta el comando que desea.
fuente
Una cosa que se está perdiendo aquí es que Internet Explorer y Windows Explorer NO PUEDEN tener sus permisos elevados (a menos que haga un hack de registro). No sé acerca de Firefox, Chrome, etc., pero si intenta ejecutar Internet Explorer como administrador, aceptará sus credenciales con gusto, pero en realidad no elevará los permisos. Esta es una característica de seguridad de Windows Vista y superior. Y además de eso, la única forma en que UAC no está en vigor (a menos que lo desactives) es si estás conectado a la cuenta de administrador integrada. El hecho de que algo se instaló con permisos elevados no significa que el instalador pueda otorgarle a ese programa permisos elevados. Los permisos están determinados por la cuenta con la que se ejecutó el programa. La única forma en que un programa puede ejecutarse con permisos elevados sin que usted lo sepa es si,
fuente
Explicación / paso a paso
Haga clic derecho en el símbolo del sistema y seleccione ejecutar como administrador Tipo:
Elija un nivel de confianza adecuado para que se ejecute su aplicación, dónde
X
está el nivel de confianza que desea usar y escriba:fuente
busqué diferentes soluciones y ya puedo decirte que los manifiestos de aplicación o los indicadores de appcompat no funcionarán (sí, esa no es una respuesta real, pero todavía quería compartir esto;))
lo que podría estar cerca de lo que está buscando es el llamado nivel de integridad , se puede configurar dentro del sistema de archivos (ACL) y tiene un efecto en el token que contiene el proceso
Este artículo explica cómo hacer que un exe siempre se ejecute a "bajo nivel de integridad"
otro enfoque sería una herramienta de terceros, como un monitor de proceso en tiempo real que usaría un escáner de virus o un firewall de aplicación, pero no sé de ninguna que pueda configurarse de esa manera.
fuente
Puedes usar AppLocker.
Creo que esto está disponible en Windows 7 Enterprise, Ultimate y Server 2K8 y superiores. No estoy seguro acerca de Windows 8, pero supondría que es lo mismo (Enterprise y Ultimate).
Puede configurar AppLocker yendo a la política de grupo:
Configuración del equipo -> Configuración de Windows -> Configuración de seguridad -> Políticas de control de aplicaciones -> AppLocker -> Reglas ejecutables.
Haga clic derecho y "Crear una nueva regla ..."
Aquí puede bloquear la ejecución de ejecutables específicos por parte de usuarios o grupos seleccionados. En su ejemplo, puede optar por denegar la ejecución de Internet Explorer por parte del grupo Administradores.
fuente