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.