Skip to the main content.

ScriptRunner Blog

PowerShell – aber sicher! Unsere Security Praxistipps

Inhaltsverzeichnis

Post Featured Image

In der komplexen und dynamischen Welt des IT-Infrastrukturmanagements ist es unerlässlich, PowerShell-Skripte zu sichern. Dieser Artikel stellt die wichtigsten integrierten Sicherheitsmaßnahmen der PowerShell vor.

PowerShell ist eine leistungsstarke Skripting-Technologie, mit der Aufgaben auf vielen verschiedenen Plattformen und Systemen automatisiert und verwaltet werden können. Ihre Funktionen bergen jedoch auch erhebliche Sicherheitsrisiken, wenn sie nicht ordnungsgemäß verwaltet werden. Um diese Risiken zu mindern, enthält die PowerShell mehrere integrierte Sicherheitsfunktionen, die dazu beitragen können, eine sicherere Umgebung zu schaffen. In diesem Artikel stellen wir die wichtigsten PowerShell-Sicherheitsfunktionen vor und beschreiben Szenarien aus der Praxis, in denen diese Funktionen nützlich sein können.

 

Ausführungsrichtlinien – execution policies

Die Ausführungsrichtlinien in der PowerShell helfen dabei, die Bedingungen zu kontrollieren, unter denen PowerShell Konfigurationsdateien lädt und Skripte ausführt. So kann die Ausführung von potenziell schädlichen Skripten verhindert werden.

Es gibt verschiedene Arten von Ausführungsrichtlinien:

  • Eingeschränkt – Restricted: Es können keine Skripte ausgeführt werden.
  • AllSigned: Nur Skripte, die von einem vertrauenswürdigen Herausgeber signiert wurden, können ausgeführt werden.
  • RemoteSigned: Skripte, die auf dem lokalen Rechner erstellt wurden, können ausgeführt werden, ohne signiert zu sein, aber Skripte aus dem Internet müssen von einem vertrauenswürdigen Herausgeber signiert werden.
  • Uneingeschränkt – Unrestricted: Führt Skripte unabhängig von ihrem Signierstatus aus, warnt aber, wenn das Skript aus dem Internet stammt.

Die Ausführungsrichtlinien sind keine Sicherheitsgrenze, sondern eine Sicherheitsebene, die die versehentliche Ausführung von Skripten verhindert. Sie können von einem Administrator außer Kraft gesetzt oder umgangen werden.

 

PowerShell-Logging

PowerShell bietet robuste Protokollierungsfunktionen, die eine detaillierte Verfolgung der Skriptausführung ermöglichen, einschließlich Transkription und Modulprotokollierung. Diese Protokolle können für forensische Untersuchungen und die Überwachung von Systemaktivitäten von entscheidender Bedeutung sein.

  • Unbegrenzt – unrestricted: Führt Skripte unabhängig von ihrem signierten Status aus, warnt jedoch, wenn das Skript aus dem Internet stammt..
  • Transkription: Startet eine Aufzeichnung aller PowerShell-Befehle und deren Ausgabe in eine textbasierte Protokolldatei. Dies hilft bei Audits und der Analyse nach einem Vorfall.
  • Modulprotokollierung – module logging: Zeichnet Details der Pipelineausführung auf, einschließlich der ausgeführten Befehle, des Aufrufs von Providern und der Ausgabe dieser Befehle.

Protokolle sind wichtig, um Aktivitäten in der PowerShell zu erfassen und helfen Administratoren und Sicherheitsexperten, jede Aktion zu verstehen und zu analysieren.

 

PowerShell ConstrainedLanguage-Modus

Der Sprachmodus ConstrainedLanguage schränkt PowerShell auf eine bestimmte Untermenge der Sprachfunktionen ein und deaktiviert unter anderem erweiterte Skriptfunktionen und den Zugriff auf COM- und WMI-Objekte. Dieser Sprachmodus ist in Umgebungen nützlich, in denen Nutzer zwar PowerShell-Zugriff benötigen, aber daran gehindert werden sollen, potenziell schädliche, komplexe Skripte auszuführen.

Constrained Language mode restricts PowerShell to a subset of its language features, disabling advanced scripting capabilities and access to COM and WMI objects, among others. This mode is useful in environments where users require PowerShell access but should be prevented from executing potentially harmful sophisticated scripts.

Dieser Sprachmodus wird häufig zusammen mit Application Control-Richtlinien wie Windows Defender Application Control (WDAC) verwendet, um eine umfassendere Sicherheitslösung bereitzustellen.

 

Just Enough Administration (JEA)

JEA ist eine Sicherheitstechnologie, die den Zugriff mit eingeschränkten Rechten für bestimmte Aufgaben ermöglicht. Administratoren können Endpunkte so konfigurieren, dass genau festgelegt wird, welche Befehle, Module und Parameter die Nutzer entsprechend ihrer Rolle ausführen dürfen.

JEA unterstützt Unternehmen bei der Umsetzung des Least Privilege-Prinzips und stellt sicher, dass Nutzer nur so viel Zugriff haben, wie sie für ihre Aufgaben benötigen, ohne sensible Teile des Systems preiszugeben.

 

PowerShell Remoting mit SSL

PowerShell Remoting ermöglicht die Ausführung von Befehlen auf entfernten Systemen. Die Absicherung dieses Remotings mit SSL (Secure Socket Layer) oder TLS (Transport Layer Security) verschlüsselt den Kommunikationskanal und stellt sicher, dass alle während der Remote-Sitzung ausgetauschten Daten vertraulich und vor Manipulation geschützt bleiben.

Diese Funktion ist besonders wichtig in räumlich verteilten Umgebungen, in denen Befehle und potenziell sensible Daten über potenziell unsichere Netzwerke übertragen werden müssen.

 

Signierte Skripte

Signierte Skripte verwenden eine digitale Signatur, um die Integrität und Herkunft eines Skripts zu verifizieren. Ein signiertes Skript trägt die Identität seines Herausgebers und einen Hash, um seine Integrität zu überprüfen. Wird das Skript nach dem Signieren verändert, ist die digitale Signatur nicht mehr gültig.

Diese Sicherheitsfunktion stellt sicher, dass Skripte nicht unbemerkt manipuliert werden können und dass Skripte so ausgeführt werden, wie es der ursprüngliche Autor beabsichtigt hat.

 

PowerShell SecretManagement-Modul 

Das SecretManagement-Modul ist eine einheitliche Schnittstelle zur Verwaltung von Secrets und Credentials. Es bietet Cmdlets zum Setzen, Abrufen und Entfernen von Geheimnissen und unterstützt eine Vielzahl von Vault-Erweiterungen, die sich mit verschiedenen Backend-Geheimnistresoren wie Azure Key Vault, HashiCorp Vault oder sogar benutzerdefinierten Lösungen verbinden können.

Das Modul abstrahiert die Besonderheiten der Speicherung und des Abrufs von Geheimnissen, so dass Skripte sicher auf Secrets zugreifen können, ohne dass Anmeldeinformationen oder sensible Informationen fest verschlüsselt werden müssen.

 

Fazit

Jede dieser Funktionen spielt eine wichtige Rolle bei der Sicherung der PowerShell-Umgebung, indem sie die Ausführung von Skripten auf vertrauenswürdige Quellen beschränkt, die Aktivitäten der Nutzer überwacht und einschränkt und den sicheren Umgang mit vertraulichen Daten gewährleistet. Zusammen bilden sie einen robusten Rahmen, um PowerShell sowohl vor externen Bedrohungen als auch vor internem Missbrauch zu schützen.

Erfahre mehr über die Best Practices für mehr PowerShell-Security in unserem Webinar: "Automatisieren mit PowerShell – aber sicher!"

 

Good2know

Webinar: Automatisieren mit PowerShell – aber sicher!

In der komplexen und dynamischen Welt der IT-Infrastrukturverwaltung ist die Sicherheit von PowerShell-Skripten unabdingbar. Mit den richtigen Werkzeugen und Techniken kannst du die Sicherheit deiner Abläufe erhöhen und sensible Anmeldeinformationen vor potenziellen Bedrohungen schützen.

Nimm an einem informativen Webinar teil, in dem wir die soliden Sicherheitsfunktionen von PowerShell vorstellen, die durch die fortschrittlichen Funktionen von ScriptRunner für die sichere Delegation und die zentrale Skript- und Credentialsverwaltung ergänzt werden.

Ganz gleich, ob du Administrator, Systems Engineer, IT- oder DevOps-Profi, PowerShell-Entwickler oder IT-Manager bist, diese Session wird dich mit dem Wissen ausstatten, um PowerShell sicher und effizient zu nutzen.

Verpasse nicht die Gelegenheit, deine Sicherheit mit Expertentipps und Best Practices der Branche zu verbessern
.  

2024_04_PowerShell-Security-Webinar-Deutsch-Website

 

In diesem Webinar erfährst du:


  • Wie du das PowerShell SecretManagement-Modul verwendest
  • Mit 'Execution Policies' arbeitest
  • Sicheres Credential Management
  • Passwort Server Integration
  • Delegation einzelner parametrisierbarer PowerShell Skripte – ohne Administrationsrechte vergeben zu müssen
  • Sichere browserbasierte Ausführung von PowerShell Skripten

 

Mittwoch, 22. Mai | 10:00 - 11:00 Uhr   

Der Termin passt nicht, oder du kannst kurzfristig nicht teilnehmen? Kein Problem: Melde dich an und wir senden dir im Nachgang einen Link zur Webinar-Aufzeichnung.

 

Registriere dich hier für das Webinar!

 


Bitte gleich ins Postfach schauen, damit wir im Nachgang die Aufzeichnung oder Folien senden dürfen, muss die E-Mail-Adresse bestätigt sein. 
 
Die Teilnahme an all unseren Webinaren ist kostenlos.

 

Weiterführende Links

Zusammenhängende Posts

Über den Autor: