Creación de instalaciones de dispositivos seguros

Al crear un paquete de controladores, debe asegurarse de que la instalación del dispositivo siempre se realizará de forma segura. Una instalación segura de dispositivos es aquella que hace lo siguiente:

  • limita el acceso al dispositivo y a sus clases de interfaz de dispositivo

  • limita el acceso a los servicios de controlador que se crearon para el dispositivo.

  • protege los archivos de controlador de la modificación o eliminación

  • limita el acceso a las entradas del Registro del dispositivo

  • limita el acceso a las clases WMI del dispositivo

  • usa las funciones setupAPI correctamente

La seguridad de la instalación de dispositivos se controla mediante descriptores de seguridad. El medio principal para especificar descriptores de seguridad es el archivo INF. El sistema proporciona descriptores de seguridad predeterminados y, en la mayoría de las circunstancias, no es necesario invalidar estos descriptores.

Configuración de seguridad para dispositivos e interfaces

El sistema proporciona descriptores de seguridad predeterminados para todas las clases de configuración de dispositivos proporcionadas por el sistema. Por lo general, estos descriptores permiten el acceso total a los administradores del sistema y el acceso de lectura, escritura y ejecución para los usuarios. (Los descriptores de seguridad que controlan el acceso a un dispositivo también controlan el acceso a las clases de interfaz de dispositivo del dispositivo, si los hubiera).

Los archivos INF para los controladores WDM pueden especificar la configuración de seguridad, ya sea por clase o por dispositivo, que invalida la configuración predeterminada del sistema. Los proveedores que crean una nueva clase de configuración de dispositivos deben especificar un descriptor de seguridad para la clase . Por lo general, no es necesario especificar un descriptor de seguridad específico del dispositivo. Puede ser útil proporcionar un descriptor de seguridad específico del dispositivo si los distintos tipos de dispositivos que pertenecen a la misma clase tienen tipos de usuarios significativamente diferentes.

Para especificar un descriptor de seguridad para todos los dispositivos que pertenecen a una clase de instalación de dispositivos WDM, use una directiva INF AddReg dentro de una sección ClassInstall32 de INF del archivo INF del instalador de clase. La directiva AddReg debe apuntar a una sección add-registry-section que establezca valores para las entradas del Registro DeviceType y Security . Estos valores del Registro especifican un descriptor de seguridad para todos los dispositivos del tipo de dispositivo especificado.

Para especificar un descriptor de seguridad para un único dispositivo que pertenezca a una clase de configuración de dispositivo WDM, use una directiva AddReg inf dentro de una sección INF DDInstall.HW del archivo INF del dispositivo. La directiva AddReg debe apuntar a una sección add-registry-section que establezca valores para las entradas del Registro DeviceType y Security . Estos valores del Registro especifican un descriptor de seguridad para todos los dispositivos que coincidan con el identificador de hardware o los identificadores compatibles especificados por una sección modelos INF asociados.

De forma predeterminada, el sistema aplica el descriptor de seguridad establecido para un dispositivo a una solicitud para abrir el objeto de dispositivo que representa el dispositivo (por ejemplo, una solicitud para abrir el dispositivo cuyo nombre de dispositivo NT es \Device\DeviceName).

Sin embargo, el sistema no aplica de forma predeterminada el descriptor de seguridad establecido para un dispositivo a una solicitud para abrir un objeto en el espacio de nombres del dispositivo, donde el espacio de nombres del dispositivo incluye todos los objetos cuyos nombres tienen el formato \Device\DeviceName\ObjectName. Para asegurarse de que la misma configuración de seguridad se aplica a las solicitudes abiertas de objetos en el espacio de nombres de un dispositivo, establezca la marca de características de dispositivo FILE_DEVICE_SECURE_OPEN para un dispositivo. Para obtener más información sobre el acceso seguro a los dispositivos, vea Controlar el acceso al espacio de nombres del dispositivo (controladores de Windows). Para obtener información sobre cómo establecer la marca de características del dispositivo de FILE_DEVICE_SECURE_OPEN, vea Especificar características del dispositivo (controladores de Windows).

El administrador de PnP establece valores de seguridad en objetos de dispositivo después de llamar a la rutina AddDevice de un controlador. Algunos controladores WDM pueden especificar un descriptor de seguridad específico del dispositivo al crear un objeto de dispositivo físico (PDO) mediante una llamada a IoCreateDeviceSecure. Para obtener más información, consulte Protección de objetos de dispositivo.

Configuración de seguridad para archivos de controlador

Al copiar archivos mediante la directiva INF CopyFiles, es posible especificar una sección file-list-section. sección de seguridad . En esta sección se especifica un descriptor de seguridad para todos los archivos copiados por la directiva CopyFiles . Sin embargo, los proveedores nunca tienen que especificar un descriptor de seguridad para los archivos de controlador, si el destino de la instalación es uno de los subdirectorios del sistema de %SystemRoot%. (Para obtener más información sobre estos subdirectorios, vea Uso de Dirids). El sistema proporciona descriptores de seguridad predeterminados para estos subdirectorios y no se deben invalidar los descriptores predeterminados.

Configuración de seguridad para Driver Services

Dentro de la sección service-install-install-section de un archivo INF del controlador (consulte Directiva addService inf), puede incluir una entrada de seguridad . Esta entrada especifica los permisos necesarios para realizar tales operaciones, como iniciar, detener y configurar los servicios de controlador asociados al dispositivo. Sin embargo, el sistema proporciona un descriptor de seguridad predeterminado para los servicios de controladores, y este descriptor predeterminado generalmente no tiene que reemplazarse.

Configuración de seguridad para las entradas del Registro de dispositivos y controladores

Al especificar entradas del Registro en archivos INF mediante directivas ADDReg de INF, puede incluir una sección add-registry-section. Sección de seguridad para cada sección add-registry. Sección add-registry.La sección Seguridad especifica los permisos de acceso a las entradas del Registro creadas creadas por la sección add-registry-section asociada. El sistema proporciona un descriptor de seguridad predeterminado para todas las entradas del Registro creadas en la raíz relativa hkR . Por lo tanto, no es necesario especificar un descriptor de seguridad al crear entradas del Registro en la raíz relativa.

Configuración de seguridad para clases WMI

El sistema asigna descriptores de seguridad predeterminados a los GUID que identifican las clases WMI. En el caso de Windows XP y versiones anteriores del sistema operativo, el descriptor de seguridad predeterminado para los GUID de WMI permite el acceso total a todos los usuarios. A partir de Windows Server 2003, el descriptor de seguridad predeterminado solo permite el acceso a los administradores.

Si el controlador define clases WMI y no desea usar los descriptores de seguridad predeterminados del sistema para estas clases, puede proporcionar descriptores de seguridad mediante una sección INF DDInstall.WMI dentro del archivo INF del dispositivo.

Uso correcto de las funciones setupAPI

Si el paquete de controladores incluye instaladores, coinstaladores u otras aplicaciones de instalación que llaman a las funciones setupAPI, debe seguir las instrucciones para usar SetupAPI.

Probar la configuración de seguridad de instalación

Use el registro de SetupAPI para comprobar que la configuración de seguridad asociada a la instalación del dispositivo se ha especificado correctamente. Establezca el nivel de registro en detallado (0x0000FFFF) y, a continuación, intente varios escenarios de instalación.

Estos escenarios deben incluir tanto las instalaciones iniciales como las reinstalaciones, tanto de las cuentas de usuario como de las cuentas de administrador del sistema. Pruebe a conectar el dispositivo antes de instalar el software y viceversa.

Si una instalación se realiza correctamente, vea el registro para confirmar que no se ha producido ningún error. Si se produce un error en una instalación, vea el registro para determinar la causa del error.

Además, una vez completada la instalación, puede hacer lo siguiente:

  • Use el Editor del Registro para ver la configuración de seguridad asignada a una entrada del Registro.

  • Use Mi equipo para ver la configuración de seguridad que se asigna a un archivo.