Compartir a través de


Problemas comunes de seguridad de WIA

Hay varios problemas comunes que podrían impedir que un controlador WIA existente (que se ejecuta correctamente en LocalSystem) se ejecute correctamente en la cuenta localService .

Los problemas más comunes se producen con:

  • Acceso al sistema de archivos

    La cuenta localService tiene acceso gravemente restringido a archivos. Por ejemplo, los controladores ya no pueden escribir en el directorio %windir%.

  • Acceso al registro

    Muchas claves del Registro que estaban abiertas a cuentas localSystem son de solo lectura en LocalService. Por ejemplo, los controladores ya no pueden escribir en las claves del Registro en el subárbol HKLM.

  • Objetos de kernel con nombre

    Asegúrese de que los objetos con nombre (por ejemplo, eventos y exclusiones mutuas) a los que acceden tanto el controlador WIA como los componentes externos, como las aplicaciones agrupadas, tienen las ACL adecuadas. Si una aplicación crea un objeto de evento con nombre, pero no concede específicamente acceso a una cuenta localService , el controlador no podrá usarlo. Del mismo modo, si un minidriver crea un objeto de evento con nombre, debe conceder el mismo acceso o la aplicación no podrá usar el objeto de evento.

  • Objetos COM fuera de proceso

    Cualquier intento de crear o usar una interfaz COM fuera de proceso producirá un error a menos que ese componente conceda explícitamente los permisos adecuados a una cuenta localService . Por ejemplo, las llamadas a CoCreateInstance o CoCreateInstanceEx (ambas se describen en la documentación de Microsoft Windows SDK) con el conjunto de marcas CLSCTX_LOCAL_SERVER pueden producir un error si el componente no concede permiso a una cuenta localService. Del mismo modo, el controlador que intenta usar un puntero a una interfaz COM que no está en proceso para el controlador puede producir un error. Esto puede ocurrir si un componente llama al controlador y le entrega un puntero a una interfaz mediante la que el controlador puede volver a llamar a la interfaz.

  • Creación y apertura de procesos

    Los controladores WIA no deben iniciar manualmente otros procesos (por ejemplo, llamando a CreateProcess o CreateProcessAsUser). Aunque este comportamiento se habría realizado correctamente para los controladores en cuentas de LocalSystem , ya no es posible que los controladores lo hagan en la nueva cuenta localService . Para obtener más información sobre CreateProcess y CreateProcessAsUser, consulte la documentación de Windows SDK.