Abrufen von Apps zum Ausführen auf von mit Device Guard geschützten Geräten
Windows 10 bietet einige neue Features und Einstellungen, die zusammen verwendet einem Device Guard entsprechen. Mit Device Guard können Sie die Geräte im Besitz Ihres Unternehmens vor versehentlicher Ausführung von Schadsoftware-Apps schützen, indem Sie bei allen Apps eine Signatur einer vertrauenswürdigen Entität erforderlich machen.
Um Device Guard in einem Unternehmen zu verwenden, müssen die vorhandenen Branchen-Apps und die von unabhängigen Softwareherstellern (Independent Software Vendor, ISV) entwickelten Apps auf einem geschützten Gerät ausgeführt werden können. Leider sind viele Branchen-Apps nicht signiert und wurden in vielen Fällen nicht aktiv entwickelt. Sie können auch über nicht signierte Software von einem unabhängigen Softwarehersteller verfügen, die ausgeführt werden soll, oder Sie möchten bestimmte Anwendungen eines unabhängigen Softwareherstellers ausführen, für den nicht alle Anwendungen als vertrauenswürdig erachtet werden. Windows 10 bietet im Rahmen der Device Guard-Features ein neues Paketprüfungstool. Das Paketprüfungstool überprüft nicht signierte Apps und erstellt die Katalogdateien der installierten und ausgeführten Binärdateien. Diese werden dann vom Signierungstool, einem Windows SDK-Hilfsprogramm, signiert, sodass Sie die Apps auf von mit Device Guard geschützten Geräten ausführen können.
Für die Ausführung der Apps auf von mit Device Guard geschützten Geräten benötigen Sie Folgendes
Bevor Sie Ihre Apps auf von mit Device Guard geschützten Geräten ausführen können, benötigen Sie Folgendes:
Ein Gerät unter Windows 10 Enterprise, Windows 10 Education oder Windows Server 2016 Technical Preview.
Sie müssen ermitteln, welche nicht signierten Apps in der Katalogdatei enthalten sein müssen.
Sie müssen eine Richtlinie für Codeintegrität für die Verwendung von Device Guard erstellen.
Ein Codesignaturzertifikat, das mit einer internen Public Key-Infrastruktur (PKI) erstellt wurde.
SignTool. Ein Befehlszeilentool, das Dateien digital signiert und Signaturen in Dateien oder Zeitstempeldateien überprüft. Das Tool wird im Ordner „\Bin“ des Installationspfads vom Microsoft Windows Software Development Kit (SDK) installiert.
Erstellen einer Katalogdatei für nicht signierte Apps
Sie müssen das Paketprüfungstool auf einem Gerät ausführen, das derzeit die Richtlinie für Codeintegrität im Überwachungsmodus ausführt, die explizit für diesen Zweck erstellt wurde. Im Überwachungsmodus können Sie mit dieser Richtlinie alle fehlenden Binärdateien vom Überprüfungstool erfassen, aufgrund des Überwachungsmodus kann jedoch alles weiterhin ausgeführt werden.
Wichtig Diese temporäre Richtlinie sollte nicht für normale geschäftliche Zwecke verwendet werden.
So erstellen Sie eine Katalogdatei für eine vorhandene App
Starten Sie Windows PowerShell als Administrator, und erstellen Sie die temporären Richtliniendatei, indem Sie Folgendes eingeben:
mkdir temp New-CIPolicy -l FileName -f .\tempdeny.xml -s .\temp -u ConvertFrom-CIPolicy .\tempdeny.xml .\tempdeny.bin cp .\tempdeny.bin C:\Windows\System32\CodeIntegrity\SIPolicy.p7b
Starten Sie das Gerät neu.
Starten Sie PowerShell als Administrator, und starten Sie mit der Überprüfung des Dateisystems, indem Sie Folgendes eingeben:
PackageInspector.exe start c:
Dabei gilt Folgendes:
Option Beschreibung start <drive_letter>:
Gibt den Start der Überprüfung an. Beispielsweise den Start der Überprüfung des Laufwerks „C:“.
-path
Dateipfad des Pakets, das überprüft wird.
Kopieren Sie die App-Installationsmedien auf das Laufwerk „C:\“, und installieren und führen Sie das Programm aus.
Beim Kopieren der Medien auf das lokale Laufwerk wird sichergestellt, dass das Installationsprogramm und die zugehörigen Dateien in der Katalogdatei enthalten sind. Wenn die Installationsdateien fehlen, wird die App ggf. von der Richtlinie für Codeintegrität als vertrauenswürdig eingestuft und ausgeführt, jedoch nicht installiert. Nachdem Sie die App installiert haben, sollten Sie nach Updates suchen. Wenn Updates auftreten, während die App geöffnet ist, müssen Sie die App schließen und neu starten, um sicherzustellen, dass bei der Überprüfung alles erfasst wird.
Hinweis
Da das Paketprüfungstool einen Protokolleintrag im Katalog für alle im Dateisystem enthaltenen Binärdateien erstellt, wird empfohlen, keine anderen Installationen oder Updates während des Überprüfungsvorgangs auszuführen.
Optional: Wenn Sie einen Katalog mit mehreren Apps erstellen möchten (viele Apps sind in einer einzelnen Katalogdatei enthalten), können Sie mit den Schritten 2 und 3 für jede weitere App fortfahren. Nachdem Sie alle gewünschten Apps hinzugefügt haben, können Sie mit Schritt 5 fortfahren.
Hinweis Um den Prozess zu optimieren, empfehlen wir Folgendes:
Aktive unterstützte und aktualisierte Apps. Erstellen Sie eine Katalogdatei für jede App.
Legacy-Apps, inaktive oder nicht aktualisierte Apps. Erstellen Sie eine einzelne Katalogdatei für alle Legacy-Apps.
Beenden Sie den Überprüfungsvorgang, und erstellen Sie die Dateien „.\InspectedPackage.cat“ und „InspectedPackage.cdf“ für die App im angegebenen Speicherort, indem Sie Folgendes eingeben:
PackageInspector.exe stop c:
Sie können auch den scan
-Befehl anstelle von start
und stop
verwenden, wenn Sie einen Katalog der Dateien erstellen möchten, die bereits auf Ihrer Festplatte vorhanden sind. Der scan
-Befehl scannt rekursiv ein angegebenes Verzeichnis und schließt alle zu signierenden Dateien in den Katalog ein. Sie können ein bestimmtes Verzeichnis scannen, indem Sie Folgendes eingeben:
PackageInspector.exe scan c:\<insert directory path>
In der folgenden Tabelle sind die verfügbaren Optionen für den scan
-Befehl und den stop
-Befehl aufgeführt.
Option | Beschreibung |
---|---|
stop <drive_letter>: |
Gibt an, dass eine Überprüfung des angegebenen Speicherorts abgeschlossen ist, und erstell eine Katalog- oder eine Definitionsdatei. Beispiel: C:. |
scan <path to scan> |
Gibt einen zu scannenden Verzeichnispfad an. Dieser Befehl scannt rekursiv ein angegebenes Verzeichnis und schließt alle zu signierenden Dateien in den Katalog ein. |
-out |
Gibt den Typ der Informationen an, die vom Tool erstellt werden sollen. Sie können |
-listpath |
Gibt den Speicherort an, unter dem das Installationsprogramm die Liste der Dateien für |
-cdfPath <file_name> |
Gibt an, wo das Tool die erstellte CDF-Datei platzieren soll. Wenn Sie diese Option verwenden, müssen Sie auch den Dateinamen angeben. Es wird empfohlen, einen vollständigen Dateipfad zu verwenden. Relative Pfade werden jedoch unterstützt. |
-resdir |
Diese Option wird derzeit nicht unterstützt. |
-name |
Diese Option wird derzeit nicht unterstützt. |
-ph |
Gibt an, ob Seitenhashes im Katalog aufgenommen werden sollen. Verwenden Sie |
-en |
Gibt den Codierungstyp des Katalogs an. Standardmäßig wird PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001 verwendet. |
-ca1 |
Gibt CATATTR1 im Katalog und Katalogdefinitionsdateien an. |
-ca2 |
Gibt CATATTR2 im Katalog und Katalogdefinitionsdateien an. |
Sie können darüber hinaus zusätzliche Parameter zu Ihrem Katalog hinzufügen. Weitere Informationen finden Sie im Thema MakeCat.
Signieren der Katalogdatei mit dem Signaturtool
Sie können Ihre Katalogdatei mit dem Signaturtool signieren, das im Lieferumfang des Windows Software Development Kits (SDK) unter Windows 7 oder höher enthalten ist; Sie können hierfür jedoch auch das Device Guard-Signierportal nutzen. Weitere Informationen zum Verwenden des Device Guard-Signierportals finden Sie unter Device Guard-Signatur.
Dieser Prozess veranschaulicht, wie eine kennwortgeschützte PFX-Datei (privater Informationsaustausch) zum Signieren der Katalogdatei verwendet werden kann.
Wichtig Um dieses Tool zu verwenden, benötigen Sie ein Codesignaturzertifikat einer internen Zertifizierungsstelle oder ein von einer Drittanbieter-Zertifizierungsstelle ausgestelltes Codesignaturzertifikat.
So verwenden Sie das Signaturtool
Stellen Sie sicher, dass Ihre Codesignaturzertifikate in den Zertifikatspeicher importiert wurden oder im Dateisystem enthalten sind.
Öffnen Sie die SignTool.exe-Datei, und signieren Sie die Katalogdatei auf Grundlage des Pfads, unter dem das Zertifikat gespeichert ist.
Wenn Sie die PFX-Datei aus einem Speicherort im Dateisystem verwenden:
signtool sign /f <\\SignCertLocation> /p <\\password> /fd sha256 /v
Wenn Sie das Zertifikat in Ihren Zertifikatspeicher importiert haben:
signtool sign /n <\\CertSubjectName> /fd sha256 /v <CatalogNameAndLocation>
Dabei gilt Folgendes:
Option Beschreibung signtool
Gibt den vollständigen Pfad zu SignTool.exe an.
sign
Fügt den Dateien eine digitale Signatur hinzu. Eine Liste der Optionen, die vom sign-Befehl unterstützt werden, finden Sie unter SignTool-Optionen.
/n SubjectName
Gibt den Antragstellernamen des Signaturzertifikats an. Dieser Wert kann eine Teilzeichenfolge des gesamten Antragstellernamens sein.
/f SignCertFileLocation
Gibt das Signaturzertifikat in einer Datei an.
Wenn es sich bei der Datei um eine PFX-Datei handelt und sie durch ein Kennwort geschützt ist, verwenden Sie die /p-Option, um das Kennwort anzugeben. Wenn die Datei keine privaten Schlüssel enthält, verwenden Sie die /csp- und/k-Optionen zum Angeben der CSP-Datei und des Containernamens des privaten Schlüssels.
/p Password
Gibt das beim Öffnen einer PFX-Datei zu verwendende Kennwort an. (Verwenden Sie die /f-Option zum Angeben einer PFX-Datei.)
/fd Algorithm
Gibt den Datei-Digestalgorithmus an, der zum Erstellen von Dateisignaturen verwendet wird. Der Standard lautet SHA2.
/v
Zeigt die ausführliche Ausgabe an, unabhängig davon, ob der Befehl erfolgreich ausgeführt wurde oder dabei ein Fehler aufgetreten ist, und zeigt Fehlermeldungen an.
Weitere Informationen und Beispiele für die Verwendung der verfügbaren Optionen finden Sie im Thema SignTool.exe (Signaturtool).
Klicken Sie im Datei-Explorer mit der rechten Maustaste auf die Katalogdatei, dann auf Eigenschaften und dann auf die Registerkarte Digitale Signaturen, um sicherzustellen, dass Ihre Katalogdatei über eine korrekte digitale Signatur verfügt.
Kopieren Sie die Katalogdatei in C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE}, und testen Sie die Datei.
Hinweis Zu Testzwecken können Sie die Datei manuell zu diesem Speicherort kopieren. Es wird jedoch empfohlen, die Gruppenrichtlinie zum Kopieren der Katalogdatei auf alle Geräte für umfangreiche Implementierungen zu verwenden.
Problembehandlung beim Paketprüfungstool
Wenn „Fehler 1181“ beim Beenden des Paketprüfungstools angezeigt wird, müssen Sie die Größe des USN-Journals erhöhen und dann alle zwischengespeicherten Daten löschen, bevor Sie die Überprüfung für die betroffenen Apps erneut durchführen.
Sie müssen sicherstellen, dass der Cache geleert wird, indem Sie eine neue temporäre Richtlinie erstellen und einrichten. Wenn Sie die gleiche Richtlinie wiederverwenden, tritt beim Paketprüfungstool ein Fehler auf.
So erhöhen Sie die Journalgröße
Öffnen Sie ein Eingabeaufforderungsfenster, und geben Sie Folgendes ein:
fsutil usn createjournal m=0x8000000 a=0x800000 C:
Dabei muss der Wert „m“ erhöht werden. Es wird empfohlen, den Wert mindestens auf das Vierfache des Standardwerts von m=0x2000000 zu ändern.
Führen Sie die nicht erfolgreichen App-Installation(en) erneut aus.
So löschen Sie zwischengespeicherte Daten und führen die Überprüfung für Ihre Apps erneut aus
Löschen Sie die SIPolicy.p7b-Datei aus dem Ordner C:\Windows\System32\CodeIntegrity\.
Erstellen Sie eine neue temporäre Richtlinie für Codeintegrität, um alle zwischengespeicherten Daten zu löschen. Starten Sie dazu Windows Powershell als Administrator und geben Folgendes ein:
mkdir temp cp C:\Windows\System32\PackageInspector.exe .\temp\ New-CIPolicy -l Hash -f .\DenyPackageInspector.xml -s .\temp -u -deny ConvertFrom-CIPolicy .\DenyPackageInspector.xml .\DenyPackageInspector.bin cp .\DenyPackageInspector.bin C:\Windows\System32\SIPolicy.p7b
Starten Sie das Gerät neu, und führen Sie die Schritte im Abschnitt Erstellen einer Katalogdatei für nicht signierte Apps durch