Berechtigungen von Benutzerkonten, Teil 1

15. Oktober 2010

Die Änderungen im Sicherheitsmodell von Windows helfen bei der komfortablen und trotzdem sicheren Konfiguration der Benutzerkontensteuerung. Damit lassen sich auch für Anwender mit Notebooks saubere Lösungen etablieren und das Konzept der Least Privileged User Accounts umsetzen: Nicht jeder mobile Anwender muss Administrator auf dem lokalen System sein.

Ab Windows 7 kommt hier eine Variante ins Spiel, bei der über den Registry-Wert DevicePath der Administrator vorgeben kann, welche Gerätetreiber der normale Benutzer installieren darf.

Eine Situation, wie sie bei mobilen Mitarbeitern eines Unternehmens vom Prinzip her häufig vorkommt: Der Vertriebsmann übernachtet in einem kleinen Gasthof und muss sich dort ein elektronisches Ticket aus dem Internet Explorer ausdrucken. Eine Möglichkeit dazu wäre das Kopieren der Informationen aus dem Browser und das Einfügen in ein Word-Dokument. Diese Datei kann er dann auf einen USB-Stick kopieren und dann an der Rezeption bitten, diese Datei ausgedruckt zu bekommen.

Doch die freundlichen Mitarbeiter im Gasthof bieten dem Vertriebsmann an, das Dokument auf einem der unbenutzten Tintenstrahldrucker auszugeben, der direkt an das Notebook des Vertriebsmanns angeschlossen wird. Doch da stellt sich die Frage nach den Treibern für den Drucker – denn nur so lässt sich die Installation des Geräts abschließen.

Da auf dem Notebook Windows 7 zum Einsatz kommt, wird dieser Frage  recht elegant beantwortet: Wenn für den Notebook eine Verbindung ins Internet besteht, wird sich das System den nötigen Treiber über Windows Update besorgen. Das geht – je nach Internet-Anbindung – recht fix und das Drucken vom Notebook wird somit zum Kinderspiel. Doch das Elegante an diesem Beispiel: Mit Windows 7 war es für den Vertriebsmann nicht nötig, dass er seine Berechtigungsstufe für diese Admin-Aufgaben heraufsetzen muss. Die komplette Installation lässt sich mit den Standard-Benutzerrechten durchführen.

Erst bei Windows Update suchen

Der Grund dafür ist recht einfach: Anders als die Vorgänger versucht Windows 7 immer zuerst bei Windows Update die richtigen Treiber zu finden. Erst danach wird das lokale System nach diesen Informationen durchsucht. Damit wird dieser gesamte Prozess vereinfacht – und das Installieren neuer Geräte wird zuverlässiger und auch deutlich schneller – solange eine einigermaßen gute Anbindung ins Internet besteht.

Damit können Administratoren von einer gewohnten aber leider auch schlechten Vorgehensweise abrücken: Bisher war es in einem Unternehmen oftmals der Fall, dass beim Bereitstellen eines neuen Computers – das gilt speziell für Notebooks – der Systembetreuer zuerst alle Domänenbenutzerkonen in die Gruppe der lokalen Administratoren übernommen hat. Und dann wurde auch gleich – ab Windows Vista – die Benutzerkontensteuerung (UAC, User Access Control) abgeschaltet.

Damit ergeben sich zwar Erleichterungen im Support-Fall – etwa wenn Treiber aufzuspielen sind und dazu Administratorrechte nötig werden – doch dabei öffnen sich die bekannten Sicherheitsprobleme. Durch die Änderungen im Bereich der Benutzerkontensteuerung bei Windows 7 und über die Modifikation des Sicherheitsmodells dieser Plattform wird es in der Realität recht einfach, auf die Administratorrechte für normale Benutzer verzichten zu können.

Bild 2. Ab Windows Vista kann der Administrator über die Gruppenrichtlinien vorgeben, welche Geräte ein normaler Benutzer installieren darf.

Das Installieren von Geräten

Den Registry-Wert DevicePath gibt es bei Windows schon seit langer Zeit. Damit kann der Administrator angeben, an welchen vertrauenswürdigen Bereichen zusätzlich zum Standardverzeichnis %SystemRoot%\inf nach Gerätetreibern gesucht werden soll, wenn ein neues Gerät an den PC angeschlossen wird. Ab Windows 7 darf auch ein normaler Benutzer signierte Treiber dem lokalen Treiber-Speicher hinzufügen, der über den Registry-Wert DevicePath angegeben ist oder eben über Windows Update besorgt wird.

Liegen die Treiberpakete erst einmal im Netzwerk, lässt sich der Wert für DevicePath in der Registry modifizieren und dabei der komplette Netzwerkpfadname eintragen. Diese Aktion stellt sicher, dass Windows sowohl die Treiber auf dem System als auch im Netzwerkspeicher durchsucht. Dazu kann der Registry-Wert wie folgt aussehen:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath

Zusätzliche Pfadangaben müssen voneinander getrennt werden – dazu ist als Trennzeichen der Strichpunkt zu nehmen, wie etwa bei:

%SystemRoot%\Inf;\\servername\drivers

Windows 7 setzt allerdings voraus, dass die Treiber mit einem gültigen Zertifikat signiert sind, dem der lokale Computer vertraut. Zudem stellen die 64-Bit-Versionen von Windows eigene Anforderungen an die Kernel-Mode-Treiber. Denn diese Objekte müssen über ein spezielles Zertifikat (eines Software-Herausgeber) signiert sein. Dazu gibt es auf der Microsoft-Website eine Liste mit den zugelassenen und getesteten Zertifizierungsstellen (CA, Certificate Authority).

Auch wenn die Mehrzahl der verfügbaren Geräte mittlerweile auf Windows 7 ohne Administratorberechtigungen installiert werden kann, enthält der Windows Driver Kit die Werkzeuge, die nötig sind, um Gerätetreiber zu zertifizieren. Dieses Softwarepaket ist als kostenloser Download von der Microsoft-Website zu beziehen.

Bei Windows 7 und Windows Vista gibt es eine kleine Utility mit der Bezeichnung pnputil.exe. Damit lassen sich vorbereitete Treiber im lokalen Treiberspeicher einbringen. Nachdem ein Treiber im lokalen Speicher abgelegt ist, wird er als vertrauenswürdig eingestuft und er installiert sich selbstständig, wenn ein Benutzer das entsprechende Gerät ansteckt.

Das Vorbereiten von Gerätetreibern mit pnputil.exe ist zwar nicht unbedingt nötig, doch es bietet eine sehr zuverlässige Variante für das Anstecken von Geräten, für die zuvor noch kein Treiber aufgespielt war. Sind Treiber bereits im lokalen Speicher vorhanden, kann man sich über das Tool auch anzeigen lassen (dazu ist der Aufrufparameter – e, für Enumerate, anzugeben). Zudem können auch noch die Tools pkgmgr.exe (aus dem WAIK, Windows Automated Installation Kit, von Vista) und DISM (Deployment Image Servicing and Management) bei Windows 7 Verwendung finden, um Treiber im lokalen Speicher (für die Offline System-Images) abzulegen.

Mit einer Einstellung bei den Gruppenrichtlinien von Windows 7 und Windows Vista kann der Administrator vorgeben, welche Geräte ein normaler Benutzer installieren darf. Dazu muss er eine entsprechende GUID (Globally Unique Identifier) angeben. Diese Richtlinie liegt beim Windows Server 2008 unter Computerkonfiguration, Richtlinien, Administrative Vorlagen, System Treiberinstallation.

Normale Benutzer dürfen Gerätetreiber in den folgenden Fällen installieren:

  • Windows hat selbst einen Treiber, der das angeschlossene Gerät unterstützt.
    Der Treiber für das Gerät wurde bereits von einem Administrator im Vorfeld auf das System aufgespielt und in den lokalen Speicher für die Gerätetreiber (mit pnputil.exe oder dism.exe) eingespielt.
  • Ein Treiber mit einem gültigen Zertifikat, dem der lokale Computer auch vertraut, ist über Windows Update verfügbar oder aber dieser Treiber liegt an dem Ort, der im Registry-Wert für DevicePath steht (letzteres wird nur bei Windows 7  unterstützt).
  • Ein Treiber mit einem gültigen Zertifikat, dem der lokale Computer vertraut, ist verfügbar und die zugehörige Geräte-GUID ist in der Liste „Allow non-administrators“ (also die Angabe welche Geräte auch von einem Nicht-Administrator installiert werden dürfen) aufgeführt (ab Windows Vista).

Im zweiten Teil kümmert sich der Autor noch um die Netzwerkdrucker. Zudem wird noch auf die Benutzerkontensteuerung eingegangen.

Russell Smith/rhh

Lesen Sie auch