Condividi tramite


Problemi comuni di sicurezza WIA

Esistono diversi problemi comuni che potrebbero impedire l'esecuzione di un driver WIA esistente (eseguito correttamente in LocalSystem) nell'account LocalService .

I problemi più comuni si verificano con:

  • Accesso al file system

    L'account LocalService ha accesso a file con restrizioni gravi. Ad esempio, i driver non possono più scrivere nella directory %windir%.

  • Accesso al Registro di sistema

    Molte chiavi del Registro di sistema aperte agli account LocalSystem sono di sola lettura in LocalService. Ad esempio, i driver non sono più in grado di scrivere nelle chiavi del Registro di sistema sottoalbero HKLM.

  • Oggetti kernel denominati

    Assicurarsi che gli oggetti denominati (ad esempio eventi e mutex) siano accessibili sia dal driver WIA che dai componenti esterni, ad esempio le applicazioni in bundle, hanno gli ACL appropriati. Se un'applicazione crea un oggetto evento denominato, ma non concede in particolare l'accesso a un account LocalService , il driver non sarà in grado di usarlo. Analogamente, se un minidriver crea un oggetto evento denominato che deve concedere lo stesso accesso o l'applicazione non sarà in grado di usare l'oggetto evento.

  • Oggetti COM non elaborati

    Qualsiasi tentativo di creare o usare un'interfaccia COM out-of-process avrà esito negativo a meno che tale componente non concede esplicitamente le autorizzazioni appropriate a un account LocalService . Ad esempio, le chiamate a CoCreateInstance o CoCreateInstanceEx (entrambe sono descritte nella documentazione di Microsoft Windows SDK) con il set di flag di CLSCTX_LOCAL_SERVER possono non riuscire se il componente non concede l'autorizzazione a un account LocalService. Analogamente, il driver che tenta di usare un puntatore a un'interfaccia COM che non è in-process per il driver può non riuscire. Ciò può verificarsi se un componente chiama il driver e lo passa a un puntatore a un'interfaccia in base alla quale il driver può tornare all'interfaccia.

  • Creazione e apertura di processi

    I driver WIA non devono avviare manualmente altri processi, ad esempio chiamando CreateProcess o CreateProcessAsUser. Anche se questo comportamento ha avuto esito positivo per i driver in account LocalSystem , non è più possibile che i driver lo facciano con il nuovo account LocalService . Per altre informazioni su CreateProcess e CreateProcessAsUser, vedere la documentazione di Windows SDK.