Weitere Informationen zur sicheren Verwendung von PowerShell-Skripts

Gilt für: Configuration Manager (Current Branch)

Es liegt in der Verantwortung des Administrators, die vorgeschlagene Verwendung von PowerShell- und PowerShell-Parametern in seiner Umgebung zu überprüfen. Im Folgenden finden Sie einige hilfreiche Ressourcen, mit denen Administratoren über die Leistungsfähigkeit von PowerShell und potenzielle Risikooberflächen informiert werden können. Dieser Leitfaden soll Ihnen helfen, potenzielle Risikooberflächen zu minimieren und die Verwendung sicherer Skripts zu ermöglichen.

PowerShell-Skriptsicherheit

Mit Configuration Manager-Skripts können Sie Skripts visuell überprüfen und genehmigen. Ein anderer Administrator kann anfordern, dass sein Skript zulässig ist. Administratoren sollten wissen, dass PowerShell-Skripts verschleierte Skripts haben können. Ein verschleiertes Skript kann bösartig sein und bei der visuellen Überprüfung während des Skriptgenehmigungsprozesses schwer zu erkennen sein. Überprüfen Sie PowerShell-Skripts visuell, und verwenden Sie Überprüfungstools, um verdächtige Skriptprobleme zu erkennen. Diese Tools können nicht immer die Absicht des PowerShell-Autors bestimmen, sodass sie auf ein verdächtiges Skript aufmerksam machen können. Für die Tools muss der Administrator jedoch beurteilen, ob es sich um eine böswillige oder absichtliche Skriptsyntax handelt.

Empfehlungen

  • Machen Sie sich mit dem PowerShell-Sicherheitsleitfaden vertraut, indem Sie die verschiedenen Links verwenden, auf die unten verwiesen wird.
  • Signieren Sie Ihre Skripts: Eine weitere Methode zum Schützen von Skripts besteht darin, sie vor dem Importieren zur Verwendung zu überprüfen und dann zu signieren.
  • Speichern Sie keine Geheimnisse (z. B. Kennwörter) in PowerShell-Skripts, und erfahren Sie mehr über den Umgang mit Geheimnissen.

Allgemeine Informationen zur PowerShell-Sicherheit

Diese Sammlung von Links wurde ausgewählt, um Configuration Manager Administratoren einen Ausgangspunkt für Informationen zu Den Sicherheitsempfehlungen für PowerShell-Skripts zu geben.

Schutz vor PowerShell-Angriffen

Schutz vor einschleusung von schädlichem Code

PowerShell – The Blue Team, erläutert deep script block logging, protected event logging, Antimalware Scan Interface, and Secure Code Generation APIs

API für die Antischadsoftware-Scanschnittstelle

Sicherheit von PowerShell-Parametern

Die Übergabe von Parametern ist eine Möglichkeit, flexibel mit Ihren Skripts zu sein und Entscheidungen bis zur Laufzeit zu verzögern. Es öffnet auch eine weitere Risikooberfläche.

Die folgende Liste enthält Empfehlungen, um böswillige Parameter oder Skripteinschleusung zu verhindern:

  • Lassen Sie nur die Verwendung vordefinierter Parameter zu.
  • Verwenden Sie das Feature für reguläre Ausdrücke, um zulässige Parameter zu überprüfen.
    • Beispiel: Wenn nur ein bestimmter Wertebereich zulässig ist, verwenden Sie einen regulären Ausdruck, um nur die Zeichen oder Werte zu überprüfen, aus denen der Bereich bestehen kann.
    • Das Überprüfen von Parametern kann verhindern, dass Benutzer versuchen, bestimmte Zeichen zu verwenden, die mit Escapezeichen versehen werden können, z. B. Anführungszeichen. Es kann mehrere Arten von Anführungszeichen geben, sodass die Verwendung von regulären Ausdrücken, um zu überprüfen, welche Zeichen zulässig sind, oft einfacher ist als der Versuch, alle eingaben zu definieren, die nicht zulässig sind.
  • Verwenden Sie das PowerShell-Modul "Injection Hunter" im PowerShell-Katalog.
    • Es kann falsch positive Ergebnisse geben. Suchen Sie daher nach einer Absicht, wenn etwas als verdächtig gekennzeichnet ist, um festzustellen, ob es sich um ein echtes Problem handelt oder nicht.
  • Microsoft Visual Studio verfügt über ein Skriptanalysetool, das bei der Überprüfung der PowerShell-Syntax helfen kann.

Das folgende Video mit dem Titel "DEF CON 25 - Lee Holmes - Get $pwnd: Attacking Battle Hardened Windows Server" gibt einen Überblick über die Arten von Problemen, gegen die Sie sich schützen können (insbesondere die Abschnitte 12:20 bis 17:50):

Umgebungsempfehlungen

Die folgende Liste enthält allgemeine Empfehlungen für PowerShell-Administratoren:

  • Stellen Sie die neueste Version von PowerShell bereit, z. B. Version 5 oder höher, die in Windows 10 oder höher integriert ist. Sie können auch die Windows Management Framework bereitstellen.
  • Aktivieren und sammeln Sie PowerShell-Protokolle, optional einschließlich der geschützten Ereignisprotokollierung. Integrieren Sie diese Protokolle in Ihre Signaturen, Hunting- und Incident Response-Workflows.
  • Implementieren Sie Just Enough Administration auf hochwertigen Systemen, um den uneingeschränkten Administratorzugriff auf diese Systeme zu beseitigen oder zu reduzieren.
  • Stellen Sie Windows Defender Anwendungssteuerungsrichtlinien bereit, damit vorab genehmigte Verwaltungsaufgaben die volle Funktionalität der PowerShell-Sprache nutzen können, während die interaktive und nicht genehmigte Verwendung auf eine begrenzte Teilmenge der PowerShell-Sprache beschränkt wird.
  • Stellen Sie Windows 10 oder höher bereit, um Ihrem Antivirenanbieter vollen Zugriff auf alle Inhalte (einschließlich Inhalten, die zur Laufzeit generiert oder entschleiert wurden) zu gewähren, die von Windows Scripting Hosts einschließlich PowerShell verarbeitet werden.