Erstellen sicherer Geräteinstallationen

Wenn Sie ein Treiberpaket erstellen, müssen Sie sicherstellen, dass die Installation Ihres Geräts immer sicher ausgeführt wird. Bei einer sicheren Geräteinstallation handelt es sich um folgendes:

  • schränkt den Zugriff auf das Gerät und seine Geräteschnittstellenklassen ein.

  • schränkt den Zugriff auf die Treiberdienste ein, die für das Gerät erstellt wurden

  • Schützt Treiberdateien vor Änderungen oder Löschungen

  • Schränkt den Zugriff auf die Registrierungseinträge des Geräts ein.

  • Schränkt den Zugriff auf die WMI-Klassen des Geräts ein.

  • verwendet SetupAPI-Funktionen ordnungsgemäß

Die Geräteinstallationssicherheit wird durch Sicherheitsbeschreibungen gesteuert. Das primäre Medium zum Angeben von Sicherheitsbeschreibungen ist die INF-Datei. Das System stellt Standardsicherheitsdeskriptoren bereit, und in den meisten Fällen müssen Sie diese Deskriptoren nicht überschreiben.

Sicherheitseinstellungen für Geräte und Schnittstellen

Das System stellt Standardsicherheitsdeskriptoren für alle vom System bereitgestellten Gerätesetupklassen bereit. Im Allgemeinen ermöglichen diese Deskriptoren systemadministratoren vollzugriff und Lese-/Schreibzugriff/Ausführungszugriff für Benutzer. (Die Sicherheitsbeschreibungen, die den Zugriff auf ein Gerät steuern, steuern auch den Zugriff auf die Geräteschnittstellenklassen des Geräts, sofern vorhanden.)

INF-Dateien für WDM-Treiber können Sicherheitseinstellungen angeben, entweder pro Klasse oder pro Gerät, die die Standardeinstellungen des Systems außer Kraft setzen. Anbieter, die eine neue Geräteeinrichtungsklasse erstellen, sollten einen Sicherheitsdeskriptor für die Klasse angeben. Im Allgemeinen ist die Angabe eines gerätespezifischen Sicherheitsdeskriptors nicht erforderlich. Es kann nützlich sein, einen gerätespezifischen Sicherheitsdeskriptor bereitzustellen, wenn verschiedene Gerätetypen, die derselben Klasse angehören, erheblich unterschiedliche Benutzertypen aufweisen.

Um einen Sicherheitsdeskriptor für alle Geräte anzugeben, die zu einer WDM-Gerätesetupklasse gehören, verwenden Sie eine INF AddReg-Direktive innerhalb eines INF ClassInstall32-Abschnitts der INF-Datei des Klasseninstallationsprogramms. Die AddReg-Direktive muss auf einen add-registry-section verweisen, der Werte für DeviceType - und Security-Registrierungseinträge festlegt. Diese Registrierungswerte geben einen Sicherheitsdeskriptor für alle Geräte des angegebenen Gerätetyps an.

Um einen Sicherheitsdeskriptor für ein einzelnes Gerät anzugeben, das zu einer WDM-Gerätesetupklasse gehört, verwenden Sie eine INF AddReg-Direktive innerhalb eines INF DDInstall.HW-Abschnitts der INF-Datei des Geräts. Die AddReg-Direktive muss auf einen add-registry-section verweisen, der Werte für DeviceType - und Security-Registrierungseinträge festlegt. Diese Registrierungswerte geben einen Sicherheitsdeskriptor für alle Geräte an, die der Hardware-ID oder kompatiblen IDs entsprechen, die in einem zugehörigen INF-Modellabschnitt angegeben werden.

Standardmäßig wendet das System den Sicherheitsdeskriptor für ein Gerät auf eine Anforderung an, um das Geräteobjekt zu öffnen, das das Gerät darstellt (z. B. eine Anforderung zum Öffnen des Geräts, dessen NT-Gerätename \Device\DeviceName ist).

Das System wendet jedoch nicht standardmäßig den Sicherheitsdeskriptor an, der für ein Gerät festgelegt ist, auf eine Anforderung zum Öffnen eines Objekts im Namespace des Geräts, wobei der Gerätenamespace alle Objekte enthält, deren Namen das Format \Device\DeviceName\ObjectName haben. Um sicherzustellen, dass dieselben Sicherheitseinstellungen auf offene Anforderungen für Objekte im Namespace eines Geräts angewendet werden, legen Sie das Flag FILE_DEVICE_SECURE_OPEN Gerätemerkmale für ein Gerät fest. Weitere Informationen zum sicheren Gerätezugriff finden Sie unter Steuern des Gerätenamespacezugriffs (Windows-Treiber). Informationen zum Festlegen des flags FILE_DEVICE_SECURE_OPEN Geräteeigenschaften finden Sie unter Angeben von Gerätemerkmalen (Windows-Treiber).

Der PnP-Manager legt Sicherheitswerte für Geräteobjekte fest, nachdem er die AddDevice-Routine eines Treibers aufgerufen hat. Einige WDM-Treiber können beim Erstellen eines physischen Geräteobjekts (PDO) durch Aufrufen von IoCreateDeviceSecure einen gerätespezifischen Sicherheitsdeskriptor angeben. Weitere Informationen finden Sie unter Sichern von Geräteobjekten.

Sicherheitseinstellungen für Treiberdateien

Beim Kopieren von Dateien mithilfe der INF CopyFiles-Direktive ist es möglich, einen file-list-section anzugeben. Abschnitt "Sicherheit ". In diesem Abschnitt wird ein Sicherheitsdeskriptor für alle Dateien angegeben, die von der CopyFiles-Direktive kopiert werden. Anbieter müssen jedoch nie einen Sicherheitsdeskriptor für Treiberdateien angeben, wenn das Installationsziel eines der Systemunterverzeichnisse von %SystemRoot% ist. (Weitere Informationen zu diesen Unterverzeichnissen finden Sie unter Verwenden von Dirids.) Das System stellt Standardsicherheitsdeskriptoren für diese Unterverzeichnisse bereit, und die Standarddeskriptoren sollten nicht überschrieben werden.

Sicherheitseinstellungen für Treiberdienste

Im Abschnitt service-install-section einer Treiber-INF-Datei (siehe INF AddService-Direktive) können Sie einen Sicherheitseintrag einschließen. Dieser Eintrag gibt die Berechtigungen an, die zum Ausführen von Vorgängen wie dem Starten, Beenden und Konfigurieren der Treiberdienste, die Ihrem Gerät zugeordnet sind, erforderlich sind. Das System stellt jedoch einen Standardsicherheitsdeskriptor für Treiberdienste bereit, und dieser Standarddeskriptor muss in der Regel nicht überschrieben werden.

Sicherheitseinstellungen für Geräte- und Treiberregistrierungseinträge

Wenn Sie Registrierungseinträge in INF-Dateien mithilfe von INF AddReg-Anweisungen angeben, können Sie einen add-registry-section einschließen. Sicherheitsabschnitt für jeden add-registry-section. Der abschnitt add-registry-. Der Abschnitt "Sicherheit " gibt Zugriffsberechtigungen für die erstellten Registrierungseinträge an, die vom zugehörigen Abschnitt add-registry-section erstellt werden. Das System stellt einen Standardsicherheitsdeskriptor für alle Registrierungseinträge bereit, die unter dem relativen HKR-Stamm erstellt werden. Daher müssen Sie beim Erstellen von Registrierungseinträgen unter dem relativen Stamm keinen Sicherheitsdeskriptor angeben.

Sicherheitseinstellungen für WMI-Klassen

Das System weist den GUIDs, die WMI-Klassen identifizieren, Standardsicherheitsbeschreibungen zu. Für Windows XP und frühere Betriebssystemversionen ermöglicht der Standardsicherheitsdeskriptor für WMI-GUIDs allen Benutzern vollzugriff. Ab Windows Server 2003 ermöglicht die Standardsicherheitsbeschreibung nur Administratoren zugriff.

Wenn Ihr Treiber WMI-Klassen definiert und Sie die Standardsicherheitsbeschreibungen des Systems für diese Klassen nicht verwenden möchten, können Sie Sicherheitsbeschreibungen mithilfe eines INF DDInstall.WMI-Abschnitts in der INF-Datei des Geräts bereitstellen.

Richtiges Verwenden von SetupAPI-Funktionen

Wenn Ihr Treiberpaket Installationsprogramme, Co-Installer oder andere Installationsanwendungen enthält, die SetupAPI-Funktionen aufrufen, müssen Sie die Richtlinien für die Verwendung von SetupAPI befolgen.

Testen der Installationssicherheitseinstellungen

Verwenden Sie die SetupAPI-Protokollierung , um zu überprüfen, ob die Sicherheitseinstellungen, die der Installation Ihres Geräts zugeordnet sind, ordnungsgemäß angegeben wurden. Legen Sie die Protokollierungsebene auf ausführlich (0x0000FFFF) fest, und versuchen Sie dann verschiedene Installationsszenarien.

Solche Szenarien sollten sowohl Erstinstallationen als auch Neuinstallationen von Benutzerkonten und Systemadministratorkonten umfassen. Versuchen Sie, Ihr Gerät anzuschließen, bevor Sie Software installieren, und umgekehrt.

Wenn eine Installation erfolgreich ist, zeigen Sie das Protokoll an, um zu bestätigen, dass keine Fehler aufgetreten sind. Wenn bei einer Installation ein Fehler auftritt, zeigen Sie das Protokoll an, um die Ursache des Fehlers zu ermitteln.

Darüber hinaus können Sie nach Abschluss der Installation die folgenden Schritte ausführen:

  • Verwenden Sie den Registrierungs-Editor, um die Sicherheitseinstellungen anzuzeigen, die einem Registrierungseintrag zugewiesen sind.

  • Verwenden Sie Arbeitsplatz , um die Sicherheitseinstellungen anzuzeigen, die einer Datei zugewiesen sind.