Interaktiver Benutzer
Der interaktive Benutzer ist der Benutzer, der derzeit bei dem Computer angemeldet ist, auf dem der COM-Server ausgeführt wird. Wenn die Identität auf den interaktiven Benutzer festgelegt ist, verwenden alle Clients dieselbe instance des Servers, wenn der Server seine Klassenfactory als Mehrfachverwendung registriert. Wenn kein Benutzer angemeldet ist, wird der Server nicht ausgeführt. Wenn der Server über eine grafische Benutzeroberfläche (GUI) verfügt, die der Client sehen muss, sollten Sie interaktive Benutzer für die Identität des Servers verwenden. Die Auswahl dieser Identität birgt jedoch sicherheitsrelevante Risiken, da der Server ohne Wissen oder Zustimmung des angemeldeten Benutzers unter der Identität des angemeldeten Benutzers ausgeführt wird. Darüber hinaus kann eine Dienstanwendung keine Benutzeroberfläche anzeigen. Weitere Informationen finden Sie unter Interaktive Dienste.
Wenn ein COM-Server für die Ausführung als interaktiver Benutzer konfiguriert ist, wird der Server in einer Terminaldienstumgebung in der interaktiven Sitzung gestartet, die der Benutzeridentität des Clients entspricht. Die Clientanwendung kann jedoch den Sitzungsmoniker verwenden, um auf ein vom Server bereitgestelltes Objekt in einer Sitzung zu verweisen, das nicht mit der Clientidentität übereinstimmt. Wenn dies verwendet wird, kann die Clientanwendung eine beliebige Sitzung angeben. In diesem Fall wird der Server als Der Benutzer ausgeführt, der die Sitzung besitzt, nicht als startenden Benutzer. Die Standardzugriffsberechtigungen in diesem Szenario erlauben es dem startenden Benutzer nicht, Methoden auf dem Server aufzurufen. Die folgenden Sicherheitsrisiken bleiben jedoch bestehen:
- Wenn der COM-Server Schnittstellen verfügbar macht, die nicht von COM gesteuert werden, z. B. TCP-Ports, Benannte Pipes, LPC-Ports, freigegebene Speicherabschnitte usw., können diese vom startenden Benutzer verwendet werden, um den Server zu beeinflussen. COM-Objekte, die für die Ausführung als interaktiver Benutzer konfiguriert sind, sollten diese Angriffsfläche so weit wie möglich reduzieren.
- COM-Objekte können ihre eigenen Zugriffsberechtigungen festlegen. Wenn das Objekt Zugriffsberechtigungen festlegt, entweder in seiner AppID-Registrierung oder durch Aufrufen von CoInitializeSecurity, um dem startenden Benutzer Zugriff zu ermöglichen, kann der Benutzer den Server starten, um als ein anderer Benutzer ausgeführt zu werden, und dann auf das Objekt zugreifen.
Zugehörige Themen