Partilhar via


Problemas comuns de segurança do WIA

Há vários problemas comuns que podem impedir que um driver WIA existente (que foi executado bem em LocalSystem) seja executado com êxito na conta LocalService .

Os problemas mais comuns ocorrem com:

  • Acesso ao sistema de arquivos

    A conta LocalService tem acesso a arquivos severamente restrito. Por exemplo, os drivers não podem mais gravar no diretório %windir%.

  • Acesso ao Registro

    Muitas chaves do Registro que estavam abertas para contas localSystem são somente leitura para LocalService. Por exemplo, os drivers não podem mais gravar em chaves do Registro na subárvore HKLM.

  • Objetos kernel nomeados

    Verifique se os objetos nomeados (por exemplo, eventos e mutexes) acessados pelo driver WIA e pelos componentes externos, como aplicativos agrupados, têm as ACLs apropriadas. Se um aplicativo criar um objeto de evento nomeado, mas não conceder acesso especificamente a uma conta LocalService , o driver não poderá usá-lo. Da mesma forma, se um minidriver criar um objeto de evento nomeado, ele deverá conceder o mesmo acesso ou o aplicativo não poderá usar o objeto de evento.

  • Objetos COM fora do processo

    Qualquer tentativa de criar ou usar uma interface COM fora do processo falhará, a menos que esse componente conceda explicitamente as permissões apropriadas a uma conta localService . Por exemplo, chamadas para CoCreateInstance ou CoCreateInstanceEx (ambas são descritas na documentação do SDK do Microsoft Windows) com o sinalizador CLSCTX_LOCAL_SERVER definido poderá falhar se o componente não conceder permissão a uma conta localService. Da mesma forma, o driver que tenta usar um ponteiro para uma interface COM que não está em processo para o driver pode falhar. Isso pode ocorrer se um componente chama o driver e entrega um ponteiro para uma interface pela qual o driver pode chamar de volta para a interface.

  • Criando e abrindo processos

    Os drivers WIA não devem iniciar manualmente outros processos (por exemplo, chamando CreateProcess ou CreateProcessAsUser). Embora esse comportamento tenha sido bem-sucedido para drivers em contas LocalSystem , não é mais possível que os drivers o façam na nova conta LocalService . Para obter mais informações sobre CreateProcess e CreateProcessAsUser, consulte a documentação do SDK do Windows.