Zulassen von branchenspezifischen Win32-Apps auf Intune verwalteten S-Modus-Geräten

Hinweis

Einige Funktionen von Windows Defender Application Control (WDAC) sind nur für bestimmte Windows-Versionen verfügbar. Weitere Informationen finden Sie unter Verfügbarkeit Windows Defender Anwendungssteuerungsfeatures.

Sie können Microsoft Intune verwenden, um kritische Win32-Anwendungen und Windows-Komponenten, die normalerweise im S Modus blockiert sind, auf Ihren Intune verwalteten Windows 10 auf Geräten im S Modus bereitzustellen und auszuführen. Beispiel: PowerShell.exe.

Mit Intune können Sie verwaltete Geräte im S-Modus mithilfe einer zusätzlichen WDAC-Richtlinie (Windows Defender Application Control) konfigurieren, die die Basisrichtlinie des S-Modus erweitert, um die von Ihrem organization verwendeten Apps zu autorisieren. Dieses Feature ändert den Sicherheitsstatus des S-Modus von "Microsoft hat jede App überprüft" in "Microsoft oder Ihre organization hat jede App überprüft".

Eine Übersicht und eine kurze Demo zu diesem Feature finden Sie in diesem Video:

Richtlinienautorisierungsprozess

Grundlegendes Diagramm des Richtlinienautorisierungsflows.

Die allgemeinen Schritte zum Erweitern der S-Modus-Basisrichtlinie auf Ihren Intune verwalteten Windows 10 auf Geräten im S Modus sind das Generieren einer zusätzlichen Richtlinie, das Signieren dieser Richtlinie, das Hochladen der signierten Richtlinie in Intune und die Zuweisung zu Benutzer- oder Gerätegruppen. Da Sie Zugriff auf PowerShell-Cmdlets benötigen, um Ihre ergänzende Richtlinie zu generieren, sollten Sie Ihre Richtlinien auf einem Gerät erstellen und verwalten, das nicht im S Modus ist. Nachdem die Richtlinie in Intune hochgeladen wurde, weisen Sie sie vor der allgemeineren Bereitstellung der Richtlinie einem einzelnen Test Windows 10 im S Modus-Gerät zu, um die erwartete Funktion zu überprüfen.

  1. Generieren Sie eine zusätzliche Richtlinie mit WDAC-Tools.

    Diese Richtlinie erweitert die Basisrichtlinie für den S-Modus, um weitere Anwendungen zu autorisieren. Alles, was durch die S-Modus-Basisrichtlinie oder Ihre ergänzende Richtlinie autorisiert wurde, darf ausgeführt werden. Ihre zusätzlichen Richtlinien können Dateipfadregeln, vertrauenswürdige Herausgeber und vieles mehr angeben.

    Weitere Informationen zum Erstellen zusätzlicher Richtlinien finden Sie unter Bereitstellen mehrerer WDAC-Richtlinien. Weitere Informationen zum richtigen Typ von Regeln, die für Ihre Richtlinie erstellt werden sollen, finden Sie unter Bereitstellen von WDAC-Richtlinienregeln und Dateiregeln.

    Die folgenden Anweisungen sind ein grundlegender Satz zum Erstellen einer ergänzenden S Modus-Richtlinie:

    • Erstellen Sie mithilfe von New-CIPolicy eine neue Basisrichtlinie.

      New-CIPolicy -MultiplePolicyFormat -ScanPath <path> -UserPEs -FilePath "<path>\SupplementalPolicy.xml" -Level FilePublisher -Fallback SignedVersion,Publisher,Hash
      
    • Ändern Sie sie mithilfe von Set-CIPolicyIdInfo in eine ergänzende Richtlinie.

      Set-CIPolicyIdInfo -SupplementsBasePolicyID 5951A96A-E0B5-4D3D-8FB8-3E5B61030784 -FilePath "<path>\SupplementalPolicy.xml"
      

      Verwenden Sie -SupplementsBasePolicyID 5951A96A-E0B5-4D3D-8FB8-3E5B61030784für Richtlinien, die die Basisrichtlinie im S-Modus ergänzen. Diese ID ist die Richtlinien-ID im S-Modus.

    • Versetzen Sie die Richtlinie mithilfe von Set-RuleOption in den Erzwingungsmodus.

      Set-RuleOption -FilePath "<path>\SupplementalPolicy.xml>" -Option 3 -Delete
      

      Dieser Befehl löscht den Qualifizierer "Überwachungsmodus".

    • Da Sie Ihre Richtlinie signieren, müssen Sie das Signaturzertifikat autorisieren, das Sie zum Signieren der Richtlinie verwenden. Autorisieren Sie optional auch einen oder mehrere zusätzliche Signaturgeber, die verwendet werden können, um zukünftige Updates der Richtlinie zu signieren. Im nächsten Schritt des allgemeinen Prozesses, Signieren der Richtlinie, wird dies ausführlicher beschrieben.

      Verwenden Sie Add-SignerRule, um das Signaturzertifikat der WDAC-Richtlinie hinzuzufügen.

      Add-SignerRule -FilePath <policypath> -CertificatePath <certpath> -User -Update
      
    • Konvertieren Sie mithilfe .binvon ConvertFrom-CIPolicy in.

      ConvertFrom-CIPolicy -XmlFilePath "<path>\SupplementalPolicy.xml" -BinaryFilePath "<path>\SupplementalPolicy.bin>
      
  2. Signieren Sie die Richtlinie.

    Zusätzliche S-Modus-Richtlinien müssen digital signiert werden. Verwenden Sie zum Signieren Ihrer Richtlinie die benutzerdefinierte Public Key-Infrastruktur (PKI) Ihrer organization. Weitere Informationen zum Signieren mit einer internen Zertifizierungsstelle finden Sie unter Erstellen eines Codesignaturzertifikats für WDAC.

    Nachdem Sie sie signiert haben, benennen Sie Ihre Richtlinie in um {PolicyID}.p7b. Rufen Sie die PolicyID aus der ergänzenden Richtlinien-XML ab.

  3. Stellen Sie die signierte ergänzende Richtlinie mithilfe von Microsoft Intune bereit.

    Wechseln Sie zum Microsoft Intune-Portal, wechseln Sie zur Seite Client-Apps, und wählen Sie ergänzende S Modus-Richtlinien aus. Laden Sie die signierte Richtlinie in Intune hoch, und weisen Sie sie Benutzer- oder Gerätegruppen zu. Intune generiert Autorisierungstoken für den Mandanten und bestimmte Geräte. Intune stellt dann das entsprechende Autorisierungstoken und die ergänzende Richtlinie für jedes Gerät in der zugewiesenen Gruppe bereit. Zusammen erweitern diese Token und Richtlinien die S-Modus-Basisrichtlinie auf dem Gerät.

Hinweis

Wenn Sie Ihre ergänzende Richtlinie aktualisieren, stellen Sie sicher, dass die neue Versionsnummer streng größer als die vorherige ist. Intune lässt die Verwendung derselben Versionsnummer nicht zu. Weitere Informationen zum Festlegen der Versionsnummer finden Sie unter Set-CIPolicyVersion.

Standardprozess für die Bereitstellung von Apps über Intune

Einfaches Diagramm für die Bereitstellung von Apps über Intune.

Weitere Informationen zum vorhandenen Verfahren zum Packen signierter Kataloge und zur App-Bereitstellung finden Sie unter Win32-App-Verwaltung in Microsoft Intune.

Optional: Prozess zum Bereitstellen von Apps mithilfe von Katalogen

Einfaches Diagramm für die Bereitstellung von Apps mithilfe von Katalogen.

Ihre ergänzende Richtlinie kann verwendet werden, um die S-Modus-Basisrichtlinie erheblich zu lockern, aber es gibt Sicherheitsabwägungen, die Sie dabei berücksichtigen müssen. Beispielsweise können Sie eine Signaturgeberregel verwenden, um einem externen Signaturgeber zu vertrauen, die jedoch alle apps autorisiert, die von diesem Zertifikat signiert wurden, einschließlich Apps, die Sie nicht zulassen möchten.

Anstatt Signierer außerhalb Ihrer organization zu autorisieren, verfügt Intune über Funktionen, die die Autorisierung vorhandener Anwendungen mithilfe signierter Kataloge vereinfachen. Dieses Feature erfordert kein erneutes Packen oder Zugriff auf den Quellcode. Dies funktioniert für Apps, die möglicherweise nicht signierte oder sogar signierte Apps sind, wenn Sie nicht allen Apps vertrauen möchten, die möglicherweise dasselbe Signaturzertifikat verwenden.

Der grundlegende Prozess besteht darin, eine Katalogdatei für jede App mithilfe des Paketinspektors zu generieren und dann die Katalogdateien mit einer benutzerdefinierten PKI zu signieren. Um das Katalogsignaturzertifikat in der ergänzenden Richtlinie zu autorisieren, verwenden Sie das PowerShell-Cmdlet Add-SignerRule , wie weiter oben in Schritt 1 des Richtlinienautorisierungsprozesses gezeigt. Verwenden Sie anschließend den Standardprozess zum Bereitstellen von Apps über Intune weiter oben beschrieben. Weitere Informationen zum Generieren von Katalogen finden Sie unter Bereitstellen von Katalogdateien zur Unterstützung von WDAC.

Hinweis

Jedes Mal, wenn eine App aktualisiert wird, müssen Sie einen aktualisierten Katalog bereitstellen. Vermeiden Sie die Verwendung von Katalogdateien für Anwendungen, die automatisch aktualisiert werden, und weisen Sie Benutzer an, Anwendungen nicht selbst zu aktualisieren.

Beispielrichtlinie

Die folgende Richtlinie ist ein Beispiel, das Kerneldebugger, PowerShell ISE und Registrierungs-Editor zulässt. Außerdem wird veranschaulicht, wie Sie die Codesignatur- und Richtliniensignaturzertifikate Ihrer organization angeben.

<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy" PolicyType="Supplemental Policy">
  <VersionEx>10.0.0.0</VersionEx>
  <PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
  <!--Standard S mode GUID-->
  <BasePolicyID>{5951A96A-E0B5-4D3D-8FB8-3E5B61030784}</BasePolicyID>
  <!--Unique policy GUID-->
  <PolicyID>{52671094-ACC6-43CF-AAF1-096DC69C1345}</PolicyID>
  <!--EKUS-->
  <EKUs />
  <!--File Rules-->
  <FileRules>
    <!--Allow kernel debuggers-->
    <Allow ID="ID_ALLOW_CBD_0" FriendlyName="cdb.exe" FileName="CDB.Exe" />
    <Allow ID="ID_ALLOW_KD_0" FriendlyName="kd.exe" FileName="kd.Exe" />
    <Allow ID="ID_ALLOW_WINDBG_0" FriendlyName="windbg.exe" FileName="windbg.Exe" />
    <Allow ID="ID_ALLOW_MSBUILD_0" FriendlyName="MSBuild.exe" FileName="MSBuild.Exe" />
    <Allow ID="ID_ALLOW_NTSD_0" FriendlyName="ntsd.exe" FileName="ntsd.Exe" />
    <!--Allow PowerShell ISE and Registry Editor-->
    <Allow ID="ID_ALLOW_POWERSHELLISE_0" FriendlyName="powershell_ise.exe" FileName="powershell_ise.exe" />
    <Allow ID="ID_ALLOW_REGEDIT_0" FriendlyName="regedit.exe" FileName="regedit.exe" />
  </FileRules>
  <!--Signers-->
  <Signers>
    <!--info of the certificate you will use to do any code/catalog signing-->
    <Signer ID="EXAMPLE_ID_SIGNER_CODE" Name="Example Code Signing Certificate Friendly Name">
      <CertRoot Type="TBS" Value="<value>" />
    </Signer>
    
    <!--info of the certificate you will use to sign your policy-->
    <Signer ID="EXAMPLE_ID_SIGNER_POLICY" Name="Example Policy Signing Certificate Friendly Name">
      <CertRoot Type="TBS" Value="<value>" />
    </Signer>
  </Signers>
  <!--Driver Signing Scenarios-->
  <SigningScenarios>
    <SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_KMCI" FriendlyName="Example Name">
      <ProductSigners />
    </SigningScenario>
    <SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_UMCI" FriendlyName="Example Name">
      <ProductSigners>
        <AllowedSigners>
          <AllowedSigner SignerId="EXAMPLE_ID_SIGNER_CODE" />
        </AllowedSigners>
        <FileRulesRef>
          <FileRuleRef RuleID="ID_ALLOW_CBD_0" />
          <FileRuleRef RuleID="ID_ALLOW_KD_0" />
          <FileRuleRef RuleID="ID_ALLOW_WINDBG_0" />
          <FileRuleRef RuleID="ID_ALLOW_MSBUILD_0" />
          <FileRuleRef RuleID="ID_ALLOW_NTSD_0" />
          <FileRuleRef RuleID="ID_ALLOW_POWERSHELLISE_0" />
          <FileRuleRef RuleID="ID_ALLOW_REGEDIT_0" />
        </FileRulesRef>
      </ProductSigners>
    </SigningScenario>
  </SigningScenarios>
  <!--Specify one or more certificates that can be used to sign updated policy-->
  <UpdatePolicySigners>
    <UpdatePolicySigner SignerId="EXAMPLE_ID_SIGNER_POLICY" />
  </UpdatePolicySigners>
  <!--Specify one or more codesigning certificates to trust-->
  <CiSigners>
    <CiSigner SignerId="EXAMPLE_ID_SIGNER_CODE" />
  </CiSigners>
  <!-- example remove core isolation a.k.a. Hypervisor Enforced Code Integrity (HVCI) options, consider enabling if your system supports it-->
  <HvciOptions>0</HvciOptions>
  <Settings>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
      <Value>
        <String>Example Policy Name</String>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
      <Value>
        <String>Example-Policy-10.0.0.0</String>
      </Value>
    </Setting>
  </Settings>
</SiPolicy>

Entfernen von Richtlinien

Um Benutzer einer unveränderten S-Modus-Richtlinie zu rückgängig machen, entfernen Sie einen oder mehrere Benutzer aus der Zielgruppe Intune, die die Richtlinie erhalten hat. Diese Aktion löst eine Entfernung der Richtlinie und des Autorisierungstokens vom Gerät aus.

Sie können eine ergänzende Richtlinie auch über Intune löschen.

<?xml version="1.0" encoding="utf-8"?>
<SiPolicy xmlns="urn:schemas-microsoft-com:sipolicy" PolicyType="Supplemental Policy">
  <VersionEx>10.0.0.1</VersionEx>
  <PlatformID>{2E07F7E4-194C-4D20-B7C9-6F44A6C5A234}</PlatformID>
  <BasePolicyID>{5951A96A-E0B5-4D3D-8FB8-3E5B61030784}</BasePolicyID>
  <PolicyID>{52671094-ACC6-43CF-AAF1-096DC69C1345}</PolicyID>
  <Rules>
  </Rules>
  <!--EKUS-->
  <EKUs />
  <!--File Rules-->

  <!--Signers-->
  <Signers>
    <!--info of the certificate you will use to sign your policy-->
    <Signer ID="EXAMPLE_ID_SIGNER_POLICY" Name="Example Policy Signing Certificate Friendly Name">
      <CertRoot Type="TBS" Value="<value>" />
    </Signer>
  </Signers>
  <!--Driver Signing Scenarios-->
  <SigningScenarios>
    <SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_KMCI" FriendlyName="KMCI">
      <ProductSigners>
      </ProductSigners>
    </SigningScenario>
    <SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_UMCI" FriendlyName="UMCI">
      <ProductSigners>
      </ProductSigners>
    </SigningScenario>
  </SigningScenarios>
  <UpdatePolicySigners>
    <UpdatePolicySigner SignerId="EXAMPLE_ID_SIGNER_POLICY" />
  </UpdatePolicySigners>
  <!-- example remove core isolation a.k.a. Hypervisor Enforced Code Integrity (HVCI) options, consider enabling if your system is supported-->
  <HvciOptions>0</HvciOptions>
  <Settings>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Name">
      <Value>
        <String>Example Policy Name - Empty</String>
      </Value>
    </Setting>
    <Setting Provider="PolicyInfo" Key="Information" ValueName="Id">
      <Value>
        <String>Example-Policy-Empty-10.0.0.1</String>
      </Value>
    </Setting>
  </Settings>
</SiPolicy>

Errata

Wenn ein Windows 10 gerät im S-Modus mit einem Richtlinienautorisierungstoken und einer ergänzenden Richtlinie vom Update 1909 auf den Build 1903 zurückgesetzt wird, rückgängig machen es erst nach der nächsten Richtlinienaktualisierung in den gesperrten S Modus. Um eine sofortige Änderung an einem gesperrten S-Modus-Zustand zu erreichen, sollten IT-Experten alle Token in %SystemRoot%\System32\CI\Tokens\Active löschen.