Verwenden des App-Steuerelements zum Sichern von PowerShell
Windows 10 enthält zwei Technologien, App Control for Business und AppLocker, die Sie zum Steuern von Anwendungen verwenden können. Sie ermöglichen es Ihnen, eine Sperrumgebung zu erstellen, um Ihre PowerShell-Umgebung zu schützen.
AppLocker basiert auf den Anwendungssteuerungsfeatures der Richtlinien für Softwareeinschränkungen. Mit AppLocker können Sie Regeln erstellen, um Apps für bestimmte Benutzer oder Gruppen zuzulassen oder zu verweigern. Sie identifizieren die Apps basierend auf eindeutigen Eigenschaften der Dateien.
Mit der in Windows 10 eingeführten Anwendungssteuerung (Application Control, WDAC) können Sie steuern, welche Treiber und Anwendungen unter Windows ausgeführt werden dürfen.
Erkennung von Sperrmodusrichtlinien
PowerShell erkennt sowohl AppLocker als auch App Control for Business systemweite Richtlinien. AppLocker hat keine Möglichkeit, den Richtlinienerzwingungsstatus abzufragen. Um zu erkennen, ob eine systemweite Anwendungssteuerungsrichtlinie von AppLocker erzwungen wird, erstellt PowerShell zwei temporäre Dateien und Tests, wenn sie ausgeführt werden können. Die Dateinamen verwenden das folgende Namensformat:
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.ps1
$env:TEMP/__PSAppLockerTest__<random-8dot3-name>.psm1
App Control for Business ist das bevorzugte Anwendungssteuerungssystem für Windows. App Control stellt APIs bereit, mit denen Sie die Richtlinienkonfiguration ermitteln können. App Control ist als Sicherheitsfeature unter den vom Microsoft Security Response Center (MSRC) definierten Wartungskriterien konzipiert. Weitere Informationen finden Sie unter Anwendungssteuerelemente für Windows - und App-Steuerelement und AppLocker-Featureverfügbarkeit.
Hinweis
Bei der Auswahl zwischen App-Steuerelement oder AppLocker wird empfohlen, anwendungssteuerung mithilfe von App Control for Business anstelle von AppLocker zu implementieren. Microsoft investiert nicht mehr in AppLocker. Auch wenn AppLocker ständig Sicherheitskorrekturen erhält, erhält es keine Funktionserweiterungen.
Erzwingung der App-Steuerungsrichtlinie
Wenn PowerShell unter einer App-Steuerelementrichtlinie ausgeführt wird, ändert sich das Verhalten basierend auf der definierten Sicherheitsrichtlinie. Unter einer App-Steuerelementrichtlinie führt PowerShell vertrauenswürdige Skripts und Module aus, die von der Richtlinie im FullLanguage
Modus zulässig sind. Alle anderen Skripts und Skriptblöcke sind nicht vertrauenswürdig und werden im ConstrainedLanguage
-Modus ausgeführt. PowerShell löst Fehler aus, wenn die nicht vertrauenswürdigen Skripts versuchen, Aktionen auszuführen, die im ConstrainedLanguage
-Modus nicht zulässig sind. Es kann schwierig sein herauszufinden, warum ein Skript im ConstrainedLanguage
-Modus nicht ordnungsgemäß ausgeführt werden kann.
Überwachung von App-Steuerelementrichtlinien
PowerShell 7.4 hat ein neues Feature zur Unterstützung von App-Steuerelementrichtlinien im Überwachungsmodus hinzugefügt. Im Überwachungsmodus führt PowerShell die nicht vertrauenswürdigen Skripts im ConstrainedLanguage
-Modus ohne Fehler aus, protokolliert jedoch Meldungen im Ereignisprotokoll. In den Protokollmeldungen wird beschrieben, welche Einschränkungen gelten, wenn sich die Richtlinie im Erzwingungsmodus befindet.
Änderungsverlauf
Windows PowerShell 5.1 war die erste Version von PowerShell zur Unterstützung der App-Steuerung. Die Sicherheitsfeatures von App Control und AppLocker verbessern sich mit jeder neuen Version von PowerShell. In den folgenden Abschnitten wird beschrieben, wie sich diese Unterstützung in jeder Version von PowerShell geändert hat. Die Änderungen sind kumulativ, sodass die in den späteren Versionen beschriebenen Features auch diejenigen aus früheren Versionen enthalten.
Änderungen in PowerShell 7.4
Wenn PowerShell unter einer App-Steuerelementrichtlinie ausgeführt wird, ändert sich das Verhalten basierend auf der definierten Sicherheitsrichtlinie. Unter einer App-Steuerelementrichtlinie führt PowerShell vertrauenswürdige Skripts und Module aus, die von der Richtlinie im FullLanguage
Modus zulässig sind. Alle anderen Skripts und Skriptblöcke sind nicht vertrauenswürdig und werden im ConstrainedLanguage
-Modus ausgeführt. PowerShell löst Fehler aus, wenn die nicht vertrauenswürdigen Skripts versuchen, nicht zulässige Aktionen auszuführen. Es ist schwierig herauszufinden, warum ein Skript im ConstrainedLanguage
-Modus nicht ordnungsgemäß ausgeführt werden kann.
PowerShell 7.4 unterstützt jetzt App-Steuerungsrichtlinien im Überwachungsmodus . Im Überwachungsmodus führt PowerShell die nicht vertrauenswürdigen Skripts im ConstrainedLanguage
-Modus aus, protokolliert jedoch Meldungen im Ereignisprotokoll, anstatt Fehler auszulösen. In den Protokollmeldungen wird beschrieben, welche Einschränkungen gelten, wenn sich die Richtlinie im Erzwingungsmodus befindet.
Änderungen in PowerShell 7.3
- PowerShell 7.3 unterstützt jetzt die Möglichkeit, PowerShell-Skriptdateien über die App-Steuerelement-API zu blockieren oder zuzulassen.
Änderungen in PowerShell 7.2
Es gab ein Nischenszenario in AppLocker, in dem Sie nur über Regeln zum Verweigern verfügten und der eingeschränkte Modus nicht zur Erzwingung der Richtlinie verwendet wurde, mit der Sie die Ausführungsrichtlinie umgehen konnten. Ab PowerShell 7.2 wurde eine Änderung vorgenommen, um sicherzustellen, dass AppLocker-Regeln Vorrang vor einem
Set-ExecutionPolicy -ExecutionPolicy Bypass
-Befehl haben.PowerShell 7.2 verbietet jetzt die Verwendung des
Add-Type
Cmdlets in einer PowerShell-Sitzung imNoLanguage
-Modus auf einem gesperrten Computer.PowerShell 7.2 lässt jetzt nicht mehr zu, dass Skripts COM-Objekte in AppLocker-Systemsperrbedingungen verwenden. Cmdlets, die intern COM oder DCOM verwenden, sind nicht betroffen.
Weitere Informationen
- Weitere Informationen zur Funktionsweise des App-Steuerelements und zu den von ihr erzwungenen Einschränkungen finden Sie unter Funktionsweise von App-Steuerelementen mit PowerShell.
- Weitere Informationen zum Sichern von PowerShell mit App-Steuerelement finden Sie unter Verwenden des App-Steuerelements.