Freigeben über


PowerShell-Sicherheitsfeatures

PowerShell verfügt über mehrere Features, die zur Verbesserung der Sicherheit Ihrer Skriptumgebung entwickelt wurden.

Ausführungsrichtlinie

Die Ausführungsrichtlinie von PowerShell ist ein Sicherheitsfeature, das die Bedingungen steuert, unter denen PowerShell Konfigurationsdateien lädt und Skripts ausführt. Dieses Feature hilft, die Ausführung schädlicher Skripts zu verhindern. Sie können eine Gruppenrichtlinieneinstellung verwenden, um Ausführungsrichtlinien für Computer und Benutzer festzulegen. Ausführungsrichtlinien gelten nur für die Windows-Plattform.

Weitere Informationen finden Sie unter Informationen zu Ausführungsrichtlinien.

Verwendung der SecureString-Klasse

PowerShell verfügt über mehrere Cmdlets, die die Verwendung der Klasse System.Security.SecureString unterstützen. Wie bei jeder .NET-Klasse können Sie SecureString in Ihren eigenen Skripts verwenden. Microsoft empfiehlt jedoch nicht die Verwendung von SecureString für die neue Entwicklung. Microsoft empfiehlt, die Verwendung von Kennwörtern zu vermeiden und andere Methoden zur Authentifizierung zu verwenden (z. B. Zertifikate oder die Windows-Authentifizierung).

PowerShell unterstützt weiterhin die SecureString-Klasse zur Abwärtskompatibilität. Die Verwendung der SecureString-Klasse ist immer noch sicherer als die Verwendung einer Nur-Text-Zeichenfolge. PowerShell basiert weiterhin auf dem SecureString-Typ , um versehentlich die Inhalte der Konsole oder in Protokollen verfügbar zu machen. Verwenden Sie SecureString sorgfältig, da sie problemlos in eine Nur-Text-Zeichenfolge konvertiert werden kann. Eine vollständige Erläuterung zur Verwendung von SecureString finden Sie in der Dokumentation zur System.Security.SecureString-Klasse.

Protokollierung von Modulen und Skriptblöcken

Mit der Modulprotokollierung können Sie die Protokollierung für ausgewählte PowerShell-Module aktivieren. Diese Einstellung ist in allen Sitzungen auf dem Computer gültig. PowerShell zeichnet Pipelineausführungsereignisse für die angegebenen Module im Windows PowerShell-Ereignisprotokoll auf.

Die Skriptblockprotokollierung ermöglicht die Protokollierung der Verarbeitung von Befehlen, Skriptblöcken, Funktionen und Skripts – unabhängig davon, ob diese interaktiv oder durch Automatisierung aufgerufen werden. Diese Informationen werden von PowerShell im Ereignisprotokoll Microsoft-Windows-PowerShell/Operational protokolliert.

Weitere Informationen finden Sie in den folgenden Artikeln:

AMSI-Unterstützung

Windows Antimalware Scan Interface (AMSI) ist eine API, mit der Anwendungen Aktionen an einen Antischadsoftwarescanner wie Windows Defender übergeben können, damit schädliche Payloads erkannt werden. Ab PowerShell 5.1 übergibt PowerShell unter Windows 10 (und höher) alle Skriptblöcke an AMSI.

PowerShell 7.3 erweitert die Daten, die sie zur Inspektion an AMSI sendet. Sie enthält jetzt alle .NET-Methodenaufrufe.

Weitere Informationen zu AMSI finden Sie unter Wie AMSI hilft.

Eingeschränkter Sprachmodus

Der ConstrainedLanguage-Modus schützt Ihr System, indem die Cmdlets und .NET-Typen eingeschränkt werden, die in einer PowerShell-Sitzung verwendet werden dürfen. Eine vollständige Beschreibung finden Sie unter about_Language_Modes.

Anwendungssteuerelement

Windows 10 enthält zwei Technologien: App Control for Business und AppLocker , die Sie zum Steuern von Anwendungen verwenden können. PowerShell erkennt, ob eine systemweite Anwendungssteuerungsrichtlinie erzwungen wird. Die Richtlinie wendet bestimmte Verhaltensweisen beim Ausführen von Skriptblöcken, Skriptdateien oder Laden von Moduldateien an, um eine beliebige Codeausführung auf dem System zu verhindern.

App Control for Business ist als Sicherheitsfeature unter den vom Microsoft Security Response Center (MSRC) definierten Wartungskriterien konzipiert. App Control ist das bevorzugte Anwendungssteuerungssystem für Windows.

Weitere Informationen dazu, wie PowerShell AppLocker und App Control unterstützt, finden Sie unter Verwenden von App-Steuerelementen zum Sichern von PowerShell.

Software-Stückliste (Software Bill of Materials, SBOM)

Ab PowerShell 7.2 enthalten alle Installationspakete eine Software-Stückliste (SBOM). Das PowerShell-Team erstellt auch SBOMs für Module, die sich in seinem Besitz befinden, die aber unabhängig von PowerShell geliefert werden.

Die SBOM-Dateien finden Sie im folgenden Verzeichnissen:

  • In PowerShell befindet sich das SBOM unter $PSHOME/_manifest/spdx_2.2/manifest.spdx.json.
  • Für Module befindet sich die SBOM im Ordner des Moduls unter _manifest/spdx_2.2/manifest.spdx.json.

Die Erstellung und Veröffentlichung der SBOM ist der erste Schritt zur Modernisierung der Cybersicherheit der Bundesregierung und zur Verbesserung der Sicherheit der Software-Lieferkette. Weitere Informationen zu dieser Initiative finden Sie im Blogbeitrag Generating Software Bills of Materials (SBOMs) with SPDX at Microsoft (Erstellen von Software-Stücklisten (SBOMs) mit SPDX bei Microsoft).

Kriterien für die Sicherheitswartung

PowerShell folgt den Microsoft-Kriterien für die Sicherheitswartung für Windows. Nur Sicherheitsfeatures erfüllen die Kriterien für die Wartung.

Sicherheitsfeatures

  • Systemsperrung mit App-Steuerelement für Unternehmen
  • Eingeschränkter Sprachmodus mit App-Steuerelement für Unternehmen

Defense-in-Depth-Features

  • Systemsperrung mit AppLocker
  • Eingeschränkter Sprachmodus mit AppLocker
  • Ausführungsrichtlinie