Compartir a través de


Aplicación de scripts con App Control para empresas

Nota

Algunas funcionalidades de App Control para empresas solo están disponibles en versiones específicas de Windows. Obtenga más información sobre la disponibilidad de características de App Control.

Importante

Opción 11 Disabled:Script Enforcement no se admite en Windows Server 2016 ni en Windows 10 1607 LTSB y no se debe usar en esas plataformas. Si lo hace, se producirán comportamientos inesperados de cumplimiento de scripts.

Introducción a la aplicación de scripts

De forma predeterminada, la aplicación de scripts está habilitada para todas las directivas de Control de aplicaciones a menos que se establezca la opción 11 Disabled:Script Enforcement en la directiva. La aplicación de scripts de Control de aplicaciones implica un protocolo de enlace entre un host de script iluminado, como PowerShell y App Control. Sin embargo, el host de script controla el comportamiento de cumplimiento real. Algunos hosts de script, como el host de aplicación HTML de Microsoft (mshta.exe), bloquean toda la ejecución de código si hay alguna directiva UMCI de Control de aplicaciones activa. La mayoría de los hosts de script preguntan primero a App Control si se debe permitir la ejecución de un script en función de las directivas de App Control actualmente activas. A continuación, el host de script bloquea, permite o cambia la forma en que se ejecuta el script para proteger mejor al usuario y al dispositivo.

La validación de scripts firmados se realiza mediante WinVerifyTrust API. Para pasar la validación, la raíz de firma debe estar presente en el almacén raíz de confianza del dispositivo y la directiva de App Control debe permitirla. Este comportamiento es diferente de la validación de App Control para archivos ejecutables, lo que no requiere la instalación del certificado raíz.

App Control comparte el registro de eventos de AppLocker: MSI y Script para todos los eventos de cumplimiento de scripts. Cada vez que un host de script pregunta a App Control si se debe permitir un script, se registra un evento con la respuesta App Control devuelta al host de script. Para obtener más información sobre los eventos de cumplimiento de scripts de App Control, consulte Descripción de los eventos de App Control.

Nota

Cuando se ejecuta un script que no está permitido por la directiva, App Control genera un evento que indica que el script se ha "bloqueado". Sin embargo, el host de script controla el comportamiento real de la aplicación de scripts y es posible que no bloquee completamente la ejecución del archivo.

Tenga en cuenta también que algunos hosts de script pueden cambiar su comportamiento incluso si una directiva de Control de aplicaciones solo está en modo de auditoría. Debe revisar la información específica del host de script en este artículo y probar exhaustivamente dentro de su entorno para asegurarse de que los scripts que necesita ejecutar funcionan correctamente.

Hosts de script iluminados que forman parte de Windows

PowerShell

Las directivas de App Control deben permitir que todos los scripts de PowerShell (.ps1), módulos (.psm1) y manifiestos (.psd1) se ejecuten con derechos de lenguaje completo.

Las directivas de App Control también deben permitir los módulos dependientes cargados por un módulo permitido y las funciones de módulo deben exportarse explícitamente por nombre cuando se aplica App Control. Los módulos que no especifican ninguna función exportada (sin lista de nombres de exportación) todavía se cargan, pero no se puede acceder a ninguna función de módulo. Los módulos que usan caracteres comodín (*) en su nombre no se cargarán.

Cualquier script de PowerShell que no esté permitido por la directiva de Control de aplicaciones todavía se ejecuta, pero solo en el modo de lenguaje restringido.

No se recomienda el suministro de puntos de PowerShell. En su lugar, los scripts deben usar módulos de PowerShell para proporcionar una funcionalidad común. Si un archivo de script permitido intenta ejecutar archivos de script de origen de puntos, esos archivos de script también deben pasar la directiva.

App Control coloca PowerShell interactivo en modo de lenguaje restringido si se aplica alguna directiva UMCI de Control de aplicaciones y cualquier directiva de Control de aplicaciones activa permite la aplicación de scripts, incluso si esa directiva está en modo de auditoría. Para ejecutar PowerShell interactivo con derechos de lenguaje completo, debe deshabilitar la aplicación de scripts para todas las directivas.

Para obtener más información, vea Acerca de los modos de idioma y el modo de idioma restringido.

VBscript, cscript y jscript

Las directivas de App Control deben permitir que todos los scripts se ejecuten mediante el host de script basado en Windows (wscript.exe) o el host de script basado en la consola de Microsoft (cscript.exe). Si no es así, se bloquea el script.

Host de aplicaciones HTML de Microsoft (MSHTA) y MSXML

Toda la ejecución de código mediante MSHTA o MSXML se bloquea si hay alguna directiva de Control de aplicaciones con aplicación de scripts activa, incluso si esa directiva está en modo de auditoría.

Objetos COM

App Control aplica además una lista de permitidos restringida para los objetos COM que la directiva de Control de aplicaciones puede expandir o restringir aún más. La aplicación de objetos COM no se ve afectada por la opción 11 Disabled:Script Enforcement. Para obtener más información sobre cómo permitir o denegar objetos COM, vea Permitir el registro de objetos COM.

Scripts que no están controlados directamente por App Control

App Control no controla directamente el código que se ejecuta a través del Procesador de comandos de Windows (cmd.exe), incluidos .batarchivos de script /.cmd. Sin embargo, todo lo que un script por lotes de este tipo intenta ejecutar está sujeto al control de control de aplicaciones. Si no necesita ejecutar cmd.exe, se recomienda bloquearlo directamente o permitirlo solo por excepción en función del proceso de llamada. Consulte Uso de una directiva de App Control para empresas para controlar complementos, complementos y módulos específicos.

App Control no controla los scripts que se ejecutan a través de un host de script no iluminado, como muchos motores de Java o Python de terceros. Si la directiva de Control de aplicaciones permite que se ejecute un host de script no iluminado, se permiten implícitamente que todos los scripts se ejecuten a través de ese host. En el caso de los hosts de scripts que no son de Microsoft, debe comprobar con el proveedor de software si sus hosts de script están iluminados para la directiva de App Control.