Freigeben über


Häufige WIA-Sicherheitsprobleme

Es gibt mehrere häufige Probleme, die verhindern können, dass ein vorhandener WIA-Treiber (der unter LocalSystem erfolgreich ausgeführt wurde) unter dem LocalService-Konto erfolgreich ausgeführt wird.

Die häufigsten Probleme treten auf:

  • Dateisystemzugriff

    Das LocalService-Konto verfügt über einen stark eingeschränkten Dateizugriff. Beispielsweise können Treiber nicht mehr in das Verzeichnis %windir% schreiben.

  • Registrierungszugriff

    Viele Registrierungsschlüssel, die für LocalSystem-Konten geöffnet waren, sind schreibgeschützt für LocalService. Treiber können beispielsweise nicht mehr in Registrierungsschlüssel unter der HKLM-Unterstruktur schreiben.

  • Benannte Kernelobjekte

    Stellen Sie sicher, dass benannte Objekte (z. B. Ereignisse und Mutexe), auf die sowohl der WIA-Treiber als auch externe Komponenten wie gebündelte Anwendungen zugreifen, über die entsprechenden ACLs verfügen. Wenn eine Anwendung ein benanntes Ereignisobjekt erstellt, aber nicht ausdrücklich Zugriff auf ein LocalService-Konto gewährt, kann der Treiber es nicht verwenden. Wenn ein Minidriver ein benanntes Ereignisobjekt erstellt, muss er denselben Zugriff gewähren, andernfalls kann die Anwendung das Ereignisobjekt nicht verwenden.

  • Out-of-Process-COM-Objekte

    Jeder Versuch, eine com-Schnittstelle außerhalb des Prozesses zu erstellen oder zu verwenden, schlägt fehl, es sei denn, diese Komponente erteilt einem LocalService-Konto explizit die entsprechenden Berechtigungen. Beispielsweise können Aufrufe von CoCreateInstance oder CoCreateInstanceEx (beide werden in der Microsoft Windows SDK-Dokumentation beschrieben) mit dem CLSCTX_LOCAL_SERVER-Flagsatz fehlschlagen, wenn die Komponente einem LocalService-Konto keine Berechtigung erteilt. Auf ähnliche Weise kann der Treiber, der versucht, einen Zeiger auf eine COM-Schnittstelle zu verwenden, die sich nicht im Prozess für den Treiber befindet, fehlschlagen. Dies kann auftreten, wenn eine Komponente den Treiber aufruft und ihr einen Zeiger auf eine Schnittstelle übergibt, über die der Treiber die Schnittstelle zurückrufen kann.

  • Erstellen und Öffnen von Prozessen

    WIA-Treiber sollten andere Prozesse nicht manuell starten (z. B. durch Aufrufen von CreateProcess oder CreateProcessAsUser). Obwohl dieses Verhalten für Treiber unter LocalSystem-Konten erfolgreich gewesen wäre, ist es für Treiber nicht mehr möglich, dies unter dem neuen LocalService-Konto zu tun. Weitere Informationen zu CreateProcess und CreateProcessAsUser finden Sie in der Dokumentation zum Windows SDK.