Partager via


Problèmes de sécurité WIA courants

Plusieurs problèmes courants peuvent empêcher un pilote WIA existant (qui s’est exécuté correctement sous LocalSystem) de s’exécuter correctement sous le compte LocalService .

Les problèmes les plus courants se produisent avec :

  • Accès au système de fichiers

    Le compte LocalService a un accès de fichier sévèrement restreint. Par exemple, les pilotes ne peuvent plus écrire dans le répertoire %windir%.

  • Accès au Registre

    De nombreuses clés de Registre ouvertes aux comptes LocalSystem sont en lecture seule sur LocalService. Par exemple, les pilotes ne peuvent plus écrire dans les clés de Registre sous la sous-arborescence HKLM.

  • Objets noyau nommés

    Assurez-vous que les objets nommés (par exemple, les événements et les mutex) accessibles par le pilote WIA et les composants externes, tels que les applications groupées, ont les listes de contrôle d’accès appropriées (ACL). Si une application crée un objet d’événement nommé, mais n’accorde pas spécifiquement l’accès à un compte LocalService , le pilote ne pourra pas l’utiliser. De même, si un minidriver crée un objet d’événement nommé, il doit accorder le même accès ou l’application ne pourra pas utiliser l’objet d’événement.

  • Objets COM hors processus

    Toute tentative de création ou d’utilisation d’une interface COM hors processus échoue, sauf si ce composant accorde explicitement les autorisations appropriées à un compte LocalService . Par exemple, les appels à CoCreateInstance ou CoCreateInstanceEx (les deux sont décrits dans la documentation du Kit de développement logiciel (SDK) Microsoft Windows) avec le jeu d’indicateurs CLSCTX_LOCAL_SERVER peut échouer si le composant n’accorde pas l’autorisation à un compte LocalService . De même, le pilote qui tente d’utiliser un pointeur vers une interface COM qui n’est pas dans le même processus que le pilote peut échouer. Cela peut se produire si un composant appelle le pilote et lui transmet un pointeur vers une interface que le pilote peut utiliser pour effectuer un rappel vers l'interface.

  • Création et ouverture de processus

    Les pilotes WIA ne doivent pas démarrer manuellement d’autres processus (par exemple, en appelant CreateProcess ou CreateProcessAsUser). Bien que ce comportement ait réussi pour les pilotes sous les comptes LocalSystem , il n’est plus possible pour les pilotes de le faire sous le nouveau compte LocalService . Pour plus d’informations sur CreateProcess etCreateProcessAsUser, consultez la documentation du Kit de développement logiciel (SDK) Windows.