Freigeben über


Verwenden von signierten Richtlinien zum Schutz von App Control for Business vor Manipulationen

Hinweis

Einige Funktionen von App Control for Business sind nur für bestimmte Windows-Versionen verfügbar. Erfahren Sie mehr über die Verfügbarkeit von App Control-Features.

Signierte App Control for Business-Richtlinien bieten Organisationen die höchste Schutzebene, die in Windows verfügbar ist. Diese Richtlinien sind darauf ausgelegt, administrative Manipulationen der Richtlinie zu erkennen, z. B. durch Schadsoftware, die als Administrator ausgeführt wird, und führen zu einem Startfehler oder bluescreen. Mit diesem Ziel ist es viel schwieriger, signierte App-Steuerungsrichtlinien zu entfernen. SecureBoot muss aktiviert sein, um diesen Schutz für signierte App-Steuerungsrichtlinien bereitzustellen.

Wenn Sie derzeit nicht über ein Codesignaturzertifikat verfügen, das Sie zum Signieren Ihrer Richtlinien verwenden können, finden Sie weitere Informationen unter Abrufen von Codesignaturzertifikaten für ihre eigene Verwendung.

Warnung

Ein Startfehler oder bluescreen kann auftreten, wenn Ihr Signaturzertifikat nicht den folgenden Regeln entspricht:

  • Alle Richtlinien, einschließlich Basis und Ergänzung, müssen gemäß pkcs 7 Standard unterzeichnet werden.
  • Verwenden Sie RSA-Schlüssel nur mit einer Schlüsselgröße von 2K, 3K oder 4K. ECDSA wird nicht unterstützt.
  • Sie können SHA-256, SHA-384 oder SHA-512 als Digestalgorithmus für Windows 11 sowie Windows 10 und Windows Server 2019 und höher verwenden, nachdem Sie das kumulative Sicherheitsupdate vom November 2022 angewendet haben. Alle anderen Geräte unterstützen nur SHA-256.

Bevor Sie versuchen, eine signierte Richtlinie bereitzustellen, sollten Sie zunächst eine nicht signierte Version der Richtlinie bereitstellen, um Probleme mit den Richtlinienregeln aufzudecken. Es wird auch empfohlen, die Regeloptionen 9 – Aktiviert:Menü "Erweiterte Startoptionen " und 10 – Aktiviert:Startüberwachung bei Fehler zu aktivieren, um Die Problembehandlungsoptionen für Administratoren zur Verfügung zu stellen. Um sicherzustellen, dass eine Regeloption aktiviert ist, können Sie einen Befehl wie Set-RuleOption -FilePath <PathAndFilename> -Option 9ausführen, auch wenn Sie nicht sicher sind, ob die Option bereits aktiviert ist. Wenn ja, hat der Befehl keine Auswirkung. Wenn die Richtlinien überprüft wurden und für die Unternehmensbereitstellung bereit sind, können Sie diese Optionen entfernen. Weitere Informationen zu Regeloptionen finden Sie unter App Control for Business-Richtlinienregeln.

Hinweis

Wenn Sie eine Basisrichtlinie signieren, die über zusätzliche Richtlinien verfügt, müssen Sie auch zur signierten Richtlinie für alle Ergänzungen wechseln. Autorisieren Sie die signierten ergänzenden Richtlinien, indem Sie der Basisrichtlinie eine <SupplementalPolicySigner> Regel hinzufügen.

Vorbereiten der App-Steuerungsrichtlinie für die Signierung

  1. Öffnen Sie eine sitzung mit erhöhten Windows PowerShell, und initialisieren Sie die zu verwendenden Variablen:

    $PolicyPath=$env:userprofile+"\Desktop\"
    $PolicyName="FixedWorkloadPolicy_Enforced"
    $LamnaServerPolicy=$PolicyPath+$PolicyName+".xml"
    

    Hinweis

    In diesem Beispiel wird eine erzwungene Version der App-Steuerungsrichtlinie verwendet, die Sie im Artikel Erstellen einer App Control for Business-Richtlinie von einem Referenzcomputer erstellt haben. Wenn Sie eine andere Richtlinie signieren, müssen Sie die $PolicyPath und $PolicyName Variablen mit den richtigen Informationen aktualisieren.

  2. Navigieren Sie zu Ihrem Desktop als das Arbeitsverzeichnis.

    cd $PolicyPath
    
  3. Wenn Ihre App Control-Richtlinie noch keine Regel für Ihr Richtliniensignaturzertifikat enthält <UpdatePolicySigner> , müssen Sie sie hinzufügen. Es muss mindestens eine <UpdatePolicySigner> Regel vorhanden sein, um ihre Richtlinien-XML mit ConvertFrom-CiPolicy zu konvertieren.

    Verwenden Sie Add-SignerRule , und erstellen Sie eine <UpdatePolicySigner> Regel aus Ihrer Zertifikatdatei (.cer). Wenn Sie ein Codesignaturzertifikat erworben oder eines von Ihrer eigenen Public Key-Infrastruktur (PKI) ausgestellt haben, können Sie die Zertifikatdatei exportieren.

    Hinweis

    Wenn Ihre Richtlinie keine zusätzlichen Richtlinien zulässt, sollten Sie den Schalter -Supplemental aus dem folgenden Befehl weglassen:

    Add-SignerRule -FilePath $LamnaServerPolicy -CertificatePath <Path to exported .cer certificate> -Update -Supplemental
    

    Wichtig

    Wenn Sie diesen Schritt nicht ausführen, können Sie diese Richtlinie nicht ändern oder deaktivieren, was zu einem Startfehler führt. Weitere Informationen zum Deaktivieren signierter Richtlinien, die zu Startfehlern führen, finden Sie unter Entfernen von App Control for Business-Richtlinien, die Startstoppfehler verursachen.

  4. Verwenden Sie Set-RuleOption, um die Option für die nicht signierte Richtlinienregel zu entfernen:

    Set-RuleOption -FilePath $LamnaServerPolicy -Option 6 -Delete
    
  5. (Optional) Verwenden Sie Set-CIPolicyIdInfo , um die Richtlinien-ID zurückzusetzen und den Richtliniennamen zu ändern.

  6. (Optional) Verwenden Sie Set-CIPolicyVersion , um die Richtlinie VersionEx zu ändern.

    Wichtig

    Beim Aktualisieren einer signierten Richtlinie muss die VersionEx der aktualisierten Richtlinie größer oder gleich der aktuellen Richtlinie sein. Das Ersetzen einer signierten Richtlinie durch eine niedrigere Version führt zu einem Startfehler.

  7. Verwenden Sie ConvertFrom-CIPolicy, um die Richtlinie ins binäre Format zu konvertieren:

    $PolicyID= Set-CIPolicyIdInfo -FilePath $LamnaServerPolicy  -ResetPolicyID
    $PolicyID = $PolicyID.Substring(11)
    $CIPolicyBin = $env:userprofile + "\Desktop\" + $PolicyID + ".cip"
    ConvertFrom-CIPolicy $LamnaServerPolicy $CIPolicyBin
    

Signieren Ihrer Richtlinie

Richtliniensignatur mit signtool.exe

Wenn Sie ein Codesignaturzertifikat erworben oder eines von Ihrer eigenen PKI ausgestellt haben, können Sie SignTool.exe verwenden, um Ihre App Control-Richtliniendateien zu signieren:

  1. Importieren Sie das PFX-Codesignaturzertifikat in den persönlichen Speicher des Benutzers auf dem Computer, auf dem die Signierung erfolgt. In diesem Beispiel verwenden Sie das Zertifikat, das unter Optional: Erstellen eines Codesignaturzertifikats für App Control for Business erstellt wurde.

  2. Signieren Sie die App Control-Richtlinie mit SignTool.exe:

    <Path to signtool.exe> sign -v -n "ContosoSigningCert" -p7 . -p7co 1.3.6.1.4.1.311.79.1 -fd sha256 $CIPolicyBin
    

    Hinweis

    Bei der Variablen <Path to signtool.exe> muss es sich um den vollständigen Pfad zum Hilfsprogramm „SignTool.exe“ handeln. ContosoSigningCert ist der Antragstellername des Zertifikats, das zum Signieren der Richtlinie verwendet wird. Sie sollten dieses Zertifikat in Ihren persönlichen Zertifikatsspeicher auf dem Computer importieren, den Sie zum Signieren der Richtlinie verwenden.

Nach Abschluss des Vorgangs sollten die Befehle eine signierte Richtliniendatei mit einer .p7 Erweiterung ausgeben. Sie müssen die Datei in {GUID}.cip umbenennen, wobei "{GUID}" die <PolicyId> aus Dem ursprünglichen XML-Code der App Control-Richtlinie ist.

Überprüfen und Bereitstellen der signierten Richtlinie

Sie können certutil.exe oder PowerShell verwenden, um die signierte Datei zu überprüfen. Überprüfen Sie die Ausgabe, um den Signaturalgorithmus zu bestätigen, wie in der Warnung oben in diesem Artikel beschrieben.

certutil.exe -asn <path to signed policy file>
$CIPolicyBin = 'path to signed policy file'
Add-Type -AssemblyName 'System.Security'
$SignedCryptoMsgSyntax = New-Object -TypeName System.Security.Cryptography.Pkcs.SignedCms
$SignedCryptoMsgSyntax.Decode([System.IO.File]::ReadAllBytes($CIPolicyBin))
$SignedCryptoMsgSyntax.Certificates | Format-List -Property *

Testen Sie die signierte Richtlinie gründlich auf einer repräsentativen Gruppe von Computern, bevor Sie mit der Bereitstellung fortfahren. Stellen Sie sicher, dass Sie die Testcomputer mindestens zweimal neu starten, nachdem Sie die signierte App Control-Richtlinie angewendet haben, um sicherzustellen, dass kein Startfehler auftritt.

Nachdem Sie die signierte Richtlinie überprüft haben, stellen Sie sie mit Ihrer bevorzugten Bereitstellungsmethode bereit. Weitere Informationen zum Bereitstellen von Richtlinien finden Sie unter Bereitstellen von App Control for Business-Richtlinien.

Hinweis

Der Manipulationsschutz für signierte Richtlinien wird nach dem ersten Neustart wirksam, sobald die signierte Richtlinie auf einen Computer angewendet wurde. Dieser Schutz gilt nur für Computer, auf denen der sichere UEFI-Start aktiviert ist.