Allow Line-of-Business Win32 Apps on Intune-Managed S Mode Devices

Gilt für:

  • Windows 10
  • Windows 11

Hinweis

Einige Funktionen von Windows Defender Anwendungssteuerung sind nur für bestimmte Windows Versionen verfügbar. Erfahren Sie mehr über die Verfügbarkeit der Windows Defender Anwendungssteuerungsfunktion.

Ab dem Windows 10 November 2019-Update (Build 18363) können Kunden mit Microsoft Intune geschäftskritische Win32-Anwendungen und Windows Komponenten bereitstellen und ausführen, die normalerweise im S-Modus blockiert sind (z. B. PowerShell.exe) auf den von Intune verwalteten Windows auf Geräten im S-Modus.

Mit Intune können IT-Spezialisten jetzt ihre verwalteten S-Modus-Geräte mithilfe einer ergänzenden WDAC-Richtlinie (Windows Defender Application Control) konfigurieren, die die S-Modus-Basisrichtlinie erweitert, um die Apps zu autorisieren, die ihr Unternehmen verwendet. Dieses Feature ändert den Sicherheitsstatus des S-Modus von "Jede App wird von Microsoft überprüft" in "Jede App wird von Microsoft oder Ihrer Organisation überprüft".

Eine Übersicht und eine kurze Demo finden Sie im folgenden Video.

Richtlinienautorisierungsprozess

Richtlinienautorisierung. Die allgemeinen Schritte zum Erweitern der Basisrichtlinie für den S-Modus auf Ihren von Intune verwalteten Geräten sind das Generieren einer ergänzenden Richtlinie, das Signieren dieser Richtlinie und das anschließende Hochladen der signierten Richtlinie in Intune und das Zuweisen dieser Richtlinie zu Benutzer- oder Gerätegruppen. Da Sie Zugriff auf WDAC 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 ausgeführt wird. Nachdem die Richtlinie in Intune hochgeladen wurde, empfehlen wir, sie einem einzelnen Testgerät für den S-Modus zuzuweisen, um die erwartete Funktionsweise zu überprüfen, bevor Sie die Richtlinie umfassender bereitstellen.

  1. Generieren einer zusätzlichen Richtlinie mit WDAC-Tools

    Mit dieser Richtlinie wird die S-Modus-Basisrichtlinie erweitert, um zusätzliche Anwendungen zu autorisieren. Alle Von der S-Modus-Basisrichtlinie oder Ihrer ergänzenden Richtlinie autorisierten Elemente dürfen ausgeführt werden. Ihre ergänzenden Richtlinien können Dateipfadregeln, vertrauenswürdige Herausgeber und vieles mehr angeben.

    Informationen zum Erstellen zusätzlicher Richtlinien und zum Bereitstellen Windows Defender Richtlinienregeln und Dateiregeln für die Anwendungssteuerung finden Sie unter "Bereitstellen mehrerer Windows Defender Anwendungssteuerungsrichtlinien", um den richtigen Typ von Regeln auszuwählen, die sie für Ihre Richtlinie erstellen möchten.

    Nachfolgend finden Sie eine grundlegende Anleitung zum Erstellen einer ergänzenden Richtlinie für den S-Modus:

    • Erstellen einer neuen Basisrichtlinie mithilfe von New-CIPolicy

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

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

      Richtlinien, die die S-Modus-Basisrichtlinie ergänzen, müssen -SupplementBasePolicyID 5951A96A-E0B5-4D3D-8FB8-3E5B61030784verwenden, da dies die S-Modus-Richtlinien-ID ist.

    • Versetzen der Richtlinie in den Erzwingungsmodus mithilfe von "Set-RuleOption"

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

      Dadurch wird der Qualifizierer für den Überwachungsmodus gelöscht.

    • Da Sie Ihre Richtlinie signieren werden, müssen Sie das Signaturzertifikat autorisieren, das Sie zum Signieren der Richtlinie verwenden, und optional einen oder mehrere zusätzliche Signierer, die in Zukunft zum Signieren von Aktualisierungen an der Richtlinie verwendet werden können. Weitere Informationen finden Sie in Abschnitt 2, Signieren der Richtlinie. Verwenden Sie Add-SignerRule, um das Signaturzertifikat der WDAC-Richtlinie hinzuzufügen:

      Add-SignerRule -FilePath <policypath> -CertificatePath <certpath> -User -Update
      
    • Konvertieren in BIN mit ConvertFrom-CIPolicy

      ConvertFrom-CIPolicy -XmlFilePath "<path>\SupplementalPolicy.xml" -BinaryFilePath "<path>\SupplementalPolicy.bin>
      
  2. Signieren von Richtlinien

    Ergänzende S-Modus-Richtlinien müssen digital signiert sein. Um Ihre Richtlinie zu signieren, können Sie den Device Guard Signing Service (DGSS) oder die benutzerdefinierte Public Key Infrastructure (PKI) Ihrer Organisation verwenden. Informationen zur Verwendung von DGSS und zum Erstellen eines Codesignaturzertifikats für WDAC finden Sie unter Verwenden des Device Guard-Signaturportals im Microsoft Store für Unternehmen.

    Benennen Sie Ihre Richtlinie nach der Anmeldung in "{PolicyID}.p7b" um. PolicyID finden Sie, indem Sie den XML-Code der ergänzenden Richtlinie überprüfen.

  3. Bereitstellen der signierten ergänzenden Richtlinie mithilfe von Microsoft Intune

    Wechseln Sie online zum Azure-Portal, navigieren Sie zur Microsoft Intune Seite, wechseln Sie zum Blatt "Client-Apps", und wählen Sie "Ergänzende Richtlinien für den S-Modus" aus. Hochladen Sie die signierte Richtlinie an Intune, und weisen Sie sie Benutzer- oder Gerätegruppen zu. Intune generiert mandanten- und gerätespezifische Autorisierungstoken. Intune stellt dann das entsprechende Autorisierungstoken und die ergänzende Richtlinie auf jedem Gerät in der zugewiesenen Gruppe bereit. Zusammen erweitern diese die S-Modus-Basisrichtlinie auf dem Gerät.

Hinweis

Stellen Sie beim Aktualisieren Ihrer ergänzenden Richtlinie sicher, dass die neue Versionsnummer streng größer ist als die vorherige. Die Verwendung derselben Versionsnummer ist von Intune nicht zulässig. Informationen zum Festlegen der Versionsnummer finden Sie unter "Set-CIPolicyVersion".

Standardprozess für die Bereitstellung von Apps über Intune

Bereitstellen von Apps über Intune. Informationen zum vorhandenen Verfahren zum Packen signierter Kataloge und der App-Bereitstellung finden Sie unter Intune Standalone – Win32 App Management.

Optional: Prozess für die Bereitstellung von Apps mithilfe von Katalogen

Bereitstellen von Apps mithilfe von Katalogen. Ihre ergänzende Richtlinie kann verwendet werden, um die S-Modus-Basisrichtlinie erheblich zu lockern, aber es gibt Sicherheitsrisiken, die Sie dabei berücksichtigen müssen. Sie können z. B. eine Signiererregel verwenden, um einem externen Signierer zu vertrauen. Dadurch werden jedoch alle von diesem Zertifikat signierten Apps autorisiert, einschließlich Apps, die Sie nicht zulassen möchten.

Anstatt Signierer außerhalb Ihrer Organisation zu autorisieren, hat Intune neue Funktionen hinzugefügt, die es einfacher machen, vorhandene Anwendungen (ohne erneutes Packen oder Zugriff auf den Quellcode) durch die Verwendung signierter Kataloge zu autorisieren. Dies funktioniert für Apps, bei denen es sich möglicherweise um nicht signierte oder sogar signierte Apps handelt, 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 Paketprüfungsobjekts zu generieren und dann die Katalogdateien mithilfe von DGSS oder einer benutzerdefinierten PKI zu signieren. Verwenden Sie das powerShell-Cmdlet Add-SignerRule wie oben gezeigt, um das Katalogsignaturzertifikat in der ergänzenden Richtlinie zu autorisieren. Danach können IT-Spezialisten den oben beschriebenen Standardmäßigbereitstellungsprozess für Intune-Apps verwenden. Ausführlichere Anleitungen zum Generieren von Katalogen finden Sie unter Bereitstellen von Katalogdateien, um Windows Defender Anwendungssteuerung zu unterstützen.

Hinweis

Jedes Mal, wenn eine App aktualisiert wird, müssen Sie einen aktualisierten Katalog bereitstellen. Aus diesem Grund sollten IT-Spezialisten versuchen, die Verwendung von Katalogdateien für Anwendungen zu vermeiden, die automatisch aktualisiert werden, und Benutzer anzuweisen, Anwendungen nicht selbst zu aktualisieren.

Beispielrichtlinie

Nachfolgend finden Sie eine Beispielrichtlinie, die Kerneldebugger, PowerShell ISE und Registrierungs-Editor zulässt. Außerdem wird gezeigt, wie Sie die Codesignatur- und Richtliniensignaturzertifikate Ihrer Organisation 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 auf eine unveränderte S-Modus-Richtlinie zurückzuversetzen, kann ein IT-Pro einen Benutzer oder Benutzer aus der Intune-Zielgruppe entfernen, die die Richtlinie erhalten hat. Dies löst eine Entfernung der Richtlinie und des Autorisierungstokens vom Gerät aus.

IT-Spezialisten haben auch die Möglichkeit, eine zusätzliche Richtlinie über Intune zu 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 S-Modus-Gerät mit einem Richtlinienautorisierungstoken und einer ergänzenden Richtlinie vom Update 1909 auf den 1903-Build zurückgesetzt wird, wird es erst nach der nächsten Richtlinienaktualisierung in den gesperrten S-Modus zurückgesetzt. Um eine sofortige Änderung an einem gesperrten S-Modus zu erreichen, sollten IT-Spezialisten alle Token in %SystemRoot%\System32\CI\Tokens\Active löschen.