Evitar que aplicaciones específicas se ejecuten como administrador

13

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?


fuente
2
Realmente me gusta esta pregunta. Hay productos para aumentar los derechos de los procesos basados ​​en la ruta, el hash, etc. Me encantaría ver algo que elimine los derechos automáticamente para, por ejemplo, iexplore.exe, firefox.exe, chrome.exe, etc.
Patrick Seymour
1
Si el programa de reproducción tiene derechos de administrador, ¿no podría deshacer lo que se le ocurrió y ejecutarlo de todos modos? :)
Ƭᴇcʜιᴇ007
1
Supongo que sí, pero me sorprendería que un instalador dijera: "¡Oye, vas a navegar por nuestra página de inicio como administrador, amigo!" e hizo cumplir continuamente esos permisos. No creo que compraría software de una compañía como esa, siempre que pueda averiguarlo.
Patrick Seymour

Respuestas:

2

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:

right click the executable and go to **PROPERTIES**
go to the **SECURITY** tab
click **ADVANCED** at the bottom
click **ADD** at the bottom
type **ADMINISTRATORS** for the name. if you have a domain then adjust appropriately
press **OK** to get the custom settings for the administrator's group
check the **DENY** checkbox next to "TRAVERSE FOLDER/ EXECUTE FILE" permission (2nd on the list)
hit OK and so-on until you've closed the properties entry for that file.

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:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Mella
fuente
1

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.

sahmeepee
fuente
1

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,

MegaloDon
fuente
1
RUNAS /trustlevel:<TrustLevel> program

/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.
/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.

This requires an elevated command prompt.

Explicación / paso a paso

  1. Abra el menú de inicio y escriba cmd en la barra de búsqueda
  2. Haga clic derecho en el símbolo del sistema y seleccione ejecutar como administrador Tipo:

    RUNAS /showtrustlevels
    
  3. Elija un nivel de confianza adecuado para que se ejecute su aplicación, dónde Xestá el nivel de confianza que desea usar y escriba:

    RUNAS /trustlevel:X "Application target"
    
David McGowan
fuente
No creo que esto funcione. Para utilizar RunAs para que la ventana del navegador resultante se ejecute con derechos bajos, deberá ejecutar el instalador (a través de RunAs) con derechos bajos. Hacerlo probablemente causaría que el instalador no funcione.
Patrick Seymour
bueno, si quisieras hacerlo de esa manera, cambiarías la variable de entorno para que tu navegador incluyera el comando RUNAS / trustlevel, entonces el navegador siempre se iniciará en el nivel de confianza seleccionado, es poco probable que necesites ejecutar el navegador en un situación elevada ... vale la pena pensarlo
David McGowan
Cambiar la variable de entorno es un poco una misión, requerirá crear un exe simple para reemplazar el original que contiene una llamada simple al ejecutable real con el comando RUNAS incluido. como dije, un poco de una misión, simplemente podría copiar la dirección con la que se inicia la ventana del navegador y luego cerrar y reiniciar el navegador y escribir la dirección
David McGowan
0

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.

weberik
fuente
2
puedes ignorar mi respuesta, acabo de probar ese método y no funcionó :(
weberik
0

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.

zako42
fuente