Compartilhar via


Problemas comuns de segurança WIA

Há vários problemas comuns que podem impedir que um driver WIA existente (que executou bem no 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 são mais capazes de gravar em chaves do Registro na subárvore HKLM.

  • Objetos kernel nomeados

    Verifique se os objetos nomeados (por exemplo, eventos e mutexes) acessados tanto pelo driver WIA quanto por componentes externos, como aplicativos integrados, possuem 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 de processo

    Qualquer tentativa de criar ou usar uma interface COM fora de processo falhará, a menos que esse componente conceda explicitamente as permissões apropriadas para uma conta localService . Por exemplo, chamadas para CoCreateInstance ou CoCreateInstanceEx (ambas são descritas na documentação do SDK do Microsoft Windows) com o conjunto de sinalizadores CLSCTX_LOCAL_SERVER 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á no mesmo processo que o driver pode resultar em falha. Isso pode ocorrer se um componente chamar o driver e lhe der 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 para os drivers fazê-lo na nova conta LocalService . Para obter mais informações sobre CreateProcess e CreateProcessAsUser, consulte a documentação do SDK do Windows.