Creazione di installazioni di dispositivi protetti

Quando si crea un pacchetto driver, è necessario assicurarsi che l'installazione del dispositivo venga sempre eseguita in modo sicuro. Un'installazione sicura del dispositivo è una delle operazioni seguenti:

  • limita l'accesso al dispositivo e alle relative classi di interfaccia dispositivo

  • limita l'accesso ai servizi driver creati per il dispositivo

  • protegge i file driver dalla modifica o dall'eliminazione

  • limita l'accesso alle voci del Registro di sistema del dispositivo

  • limita l'accesso alle classi WMI del dispositivo

  • usa correttamente le funzioni SetupAPI

La sicurezza dell'installazione del dispositivo è controllata dai descrittori di sicurezza. Il supporto primario per specificare i descrittori di sicurezza è il file INF. Il sistema fornisce descrittori di sicurezza predefiniti e nella maggior parte dei casi non è necessario eseguire l'override di questi descrittori.

Impostazioni di sicurezza per dispositivi e interfacce

Il sistema fornisce descrittori di sicurezza predefiniti per tutte le classi di installazione del dispositivo fornite dal sistema. In genere, questi descrittori consentono l'accesso completo per gli amministratori di sistema e l'accesso in lettura/scrittura/esecuzione per gli utenti. I descrittori di sicurezza che controllano l'accesso a un dispositivo controllano anche l'accesso alle classi di interfaccia del dispositivo, se presenti.

I file INF per i driver WDM possono specificare le impostazioni di sicurezza, per classe o per dispositivo, che eseguono l'override delle impostazioni predefinite del sistema. I fornitori che creano una nuova classe di installazione del dispositivo devono specificare un descrittore di sicurezza per la classe . In genere, non è necessario specificare un descrittore di sicurezza specifico del dispositivo. Può essere utile fornire un descrittore di sicurezza specifico del dispositivo se tipi diversi di dispositivi appartenenti alla stessa classe hanno tipi di utenti significativamente diversi.

Per specificare un descrittore di sicurezza per tutti i dispositivi appartenenti a una classe di installazione del dispositivo WDM, usare una direttiva INF AddReg all'interno di una sezione INF ClassInstall32 del file INF del programma di installazione della classe. La direttiva AddReg deve puntare a una sezione add-registry che imposta i valori per le voci del Registro di sistema DeviceType e Security . Questi valori del Registro di sistema specificano un descrittore di sicurezza per tutti i dispositivi del tipo di dispositivo specificato.

Per specificare un descrittore di sicurezza per un singolo dispositivo appartenente a una classe di installazione del dispositivo WDM, usare una direttiva INF AddReg all'interno di una sezione INF DDInstall.HW del file INF del dispositivo. La direttiva AddReg deve puntare a una sezione add-registry che imposta i valori per le voci del Registro di sistema DeviceType e Security . Questi valori del Registro di sistema specificano un descrittore di sicurezza per tutti i dispositivi che corrispondono all'ID hardware o agli ID compatibili specificati da una sezione INF Models associata.

Per impostazione predefinita, il sistema applica il descrittore di sicurezza impostato per un dispositivo a una richiesta di apertura dell'oggetto dispositivo che rappresenta il dispositivo, ad esempio una richiesta di apertura del dispositivo il cui nome del dispositivo NT è \Device\DeviceName.

Tuttavia, il sistema non applica per impostazione predefinita il descrittore di sicurezza impostato per un dispositivo a una richiesta di apertura di un oggetto nello spazio dei nomi del dispositivo, in cui lo spazio dei nomi del dispositivo include tutti gli oggetti i cui nomi hanno il formato \Device\DeviceName\ObjectName. Per assicurarsi che le stesse impostazioni di sicurezza vengano applicate alle richieste aperte per gli oggetti nello spazio dei nomi di un dispositivo, impostare il flag delle caratteristiche del dispositivo FILE_DEVICE_SECURE_OPEN per un dispositivo. Per altre informazioni sull'accesso sicuro ai dispositivi, vedere Controllo dell'accesso dello spazio dei nomi dei dispositivi (driver Windows). Per informazioni su come impostare il flag delle caratteristiche del dispositivo FILE_DEVICE_SECURE_OPEN, vedere Specifica delle caratteristiche del dispositivo (driver Windows).

La gestione PnP imposta i valori di sicurezza sugli oggetti dispositivo dopo che chiama la routine AddDevice di un driver. Alcuni driver WDM possono specificare un descrittore di sicurezza specifico del dispositivo durante la creazione di un oggetto dispositivo fisico chiamando IoCreateDeviceSecure. Per altre informazioni, vedere Protezione degli oggetti dispositivo.

Impostazioni di sicurezza per i file del driver

Quando si copiano file usando la direttiva INF CopyFiles, è possibile specificare una sezione file-list-section. sezione di sicurezza . Questa sezione specifica un descrittore di sicurezza per tutti i file copiati dalla direttiva CopyFiles . Tuttavia, i fornitori non devono mai specificare un descrittore di sicurezza per i file driver, se la destinazione dell'installazione è una delle sottodirectory di sistema di %SystemRoot%. Per altre informazioni su queste sottodirectory, vedere Uso di Dirids. Il sistema fornisce descrittori di sicurezza predefiniti per queste sottodirectory e i descrittori predefiniti non devono essere sottoposti a override.

Impostazioni di sicurezza per i servizi driver

All'interno della sezione service-install-install-section di un file INF (vedere direttiva INF AddService), è possibile includere una voce Sicurezza . Questa voce specifica le autorizzazioni necessarie per eseguire operazioni quali l'avvio, l'arresto e la configurazione dei servizi driver associati al dispositivo. Tuttavia, il sistema fornisce un descrittore di sicurezza predefinito per i servizi driver e questo descrittore predefinito in genere non deve essere sottoposto a override.

Impostazioni di sicurezza per le voci del Registro di sistema di dispositivi e driver

Quando si specificano voci del Registro di sistema nei file INF usando le direttive INF AddReg, è possibile includere una sezione del Registro di sistema. Sezione Sicurezza per ogni sezione del registro di sistema. La sezione add-registry. La sezione Sicurezza specifica le autorizzazioni di accesso alle voci del Registro di sistema create create dalla sezione add-registry-section associata. Il sistema fornisce un descrittore di sicurezza predefinito per tutte le voci del Registro di sistema create nella radice relativa HKR . Pertanto, non è necessario specificare un descrittore di sicurezza durante la creazione di voci del Registro di sistema nella radice relativa.

Impostazioni di sicurezza per le classi WMI

Il sistema assegna i descrittori di sicurezza predefiniti ai GUID che identificano le classi WMI. Per Windows XP e versioni precedenti del sistema operativo, il descrittore di sicurezza predefinito per i GUID WMI consente l'accesso completo a tutti gli utenti. A partire da Windows Server 2003, il descrittore di sicurezza predefinito consente l'accesso solo agli amministratori.

Se il driver definisce classi WMI e non si desidera utilizzare i descrittori di sicurezza predefiniti del sistema per queste classi, è possibile fornire descrittori di sicurezza usando una sezione INF DDInstall.WMI all'interno del file INF del dispositivo.

Uso corretto delle funzioni SetupAPI

Se il pacchetto driver include programmi di installazione, coinstallazioni o altre applicazioni di installazione che chiamano funzioni SetupAPI, è necessario seguire le linee guida per l'uso di SetupAPI.

Test delle impostazioni di sicurezza dell'installazione

Usare la registrazione SetupAPI per verificare che le impostazioni di sicurezza associate all'installazione del dispositivo siano state specificate correttamente. Impostare il livello di registrazione su dettagliato (0x0000FFFF), quindi tentare diversi scenari di installazione.

Tali scenari devono includere sia le installazioni iniziali che le reinstallazioni, sia dagli account utente che dagli account amministratore di sistema. Provare a collegare il dispositivo prima di installare il software e viceversa.

Se un'installazione ha esito positivo, visualizzare il log per verificare che non si siano verificati errori. Se un'installazione non riesce, visualizzare il log per determinare la causa dell'errore.

Inoltre, al termine di un'installazione, è possibile eseguire le operazioni seguenti:

  • Utilizzare l'editor del Registro di sistema per visualizzare le impostazioni di sicurezza assegnate a una voce del Registro di sistema.

  • Utilizzare Il computer per visualizzare le impostazioni di sicurezza assegnate a un file.