Microsoft entwickelt Windows PowerShell für die Aufgabenautomatisierung und das Konfigurationsmanagement. Es basiert auf dem .NET-Framework; während es eine Befehlszeilen-Shell und eine Skriptsprache enthält. Es hilft Benutzern nicht bei der Automatisierung, aber es löst auch komplexe Verwaltungsaufgaben schnell. Trotzdem glauben viele Benutzer oft, dass PowerShell ein Werkzeug ist, das von Hackern für Sicherheitsverletzungen verwendet wird. Leider ist es wahr, dass PowerShell häufig für Sicherheitsverletzungen verwendet wird. Aus diesem Grund deaktivieren Benutzer mit geringeren oder keinen technischen Kenntnissen häufig PowerShell. Die Realität sieht jedoch so aus, dass der PowerShell-Sicherheitsansatz den besten Schutz vor Sicherheitsverletzungen auf Unternehmensebene bieten kann.
David das Neves, Premier Field Engineer für Microsoft Deutschland, erwähnt in einem seiner Beiträge, dass der PowerShell-Sicherheitsansatz eine leistungsstarke Möglichkeit ist, die Sicherheit auf Unternehmensebene einzurichten. Tatsächlich ist PowerShell laut der von RedMonk erstellten Programmiersprachen-Rangliste eine der am häufigsten verwendeten Sprachen auf GitHub.
Grundlegendes zur PowerShell-Sicherheit
Windows PowerShell wird von vielen IT-Administratoren auf der ganzen Welt verwendet. Es ist ein Framework zur Aufgabenautomatisierung und Konfigurationsverwaltung von Microsoft. Mit seiner Hilfe können Administratoren administrative Aufgaben sowohl auf lokalen als auch auf Remote-Windows-Systemen ausführen. In letzter Zeit haben jedoch einige Organisationen die Verwendung vermieden. insbesondere für Fernzugriff; Sicherheitslücken vermuten. Um diese Verwirrung um das Tool zu beseitigen, veröffentlichte Microsoft Premier Field Engineer, Ashley McGlone, einen Blog, in dem erwähnt wird, warum es sich um ein sicheres Tool und nicht um eine Schwachstelle handelt.
Organisationen betrachten PowerShell als Schwachstelle
McGlone erwähnt einige der jüngsten Trends in den Organisationen in Bezug auf dieses Tool. Einige Organisationen verbieten die Verwendung von PowerShell-Remoting; während InfoSec an anderer Stelle die Remote-Server-Verwaltung damit blockiert hat. Er erwähnt auch, dass er ständig Fragen zur Sicherheit von PowerShell Remoting erhält. Mehrere Unternehmen schränken die Möglichkeiten des Tools in ihrer Umgebung ein. Die meisten dieser Unternehmen sind besorgt über das Tool Remoting, das immer verschlüsselt ist, Single Port 5985 oder 5986.
Best Practices für die PowerShell-Sicherheit
McGlone beschreibt, warum dieses Tool keine Schwachstelle darstellt – dafür aber sehr sicher ist. Er erwähnt wichtige Punkte wie dieses Tool ist ein neutrales Verwaltungstool, keine Schwachstelle. Das Remoting des Tools respektiert alle Windows-Authentifizierungs- und Autorisierungsprotokolle. Standardmäßig ist die Mitgliedschaft in der lokalen Administratorgruppe erforderlich.
Er erwähnt weiter, warum das Tool sicherer ist, als Unternehmen denken:
„Die Verbesserungen in WMF 5.0 (oder WMF 4.0 mit KB3000850) machen PowerShell zum schlechtesten Tool der Wahl für einen Hacker, wenn Sie die Protokollierung von Skriptblöcken und die systemweite Transkription aktivieren. Anders als beliebte CMD-Dienstprogramme hinterlassen Hacker überall Fingerabdrücke.“
Aufgrund seiner leistungsstarken Tracking-Funktionen empfiehlt McGlone PowerShell als bestes Tool für die Remote-Administration. Das Tool verfügt über Funktionen, die es Organisationen ermöglichen, die Antworten auf die Fragen zu finden, wie wer, was, wann, wo und wie für Aktivitäten auf Ihren Servern.
Er gab außerdem die Links zu Ressourcen, um mehr über die Sicherung dieses Tools und seine Verwendung auf Unternehmensebene zu erfahren. Wenn die Informationssicherheitsabteilung in Ihrem Unternehmen mehr über dieses Tool erfahren möchte, stellt McGlone einen Link zu PowerShell Remoting Security Considerations bereit. Dies ist eine neue Sicherheitsdokumentation des PowerShell-Teams. Das Dokument enthält verschiedene informative Abschnitte, z. B. was Powershell Remoting ist, seine Standardeinstellungen, Prozessisolierung und -verschlüsselung sowie Transportprotokolle.
Der Blogbeitrag erwähnt mehrere Quellen und Links, um mehr über PowerShell zu erfahren. Sie können diese Quellen, einschließlich Links zur WinRMSecurity-Website und ein Whitepaper von Lee Holmes, hier in den TechNet-Blogs abrufen.
Windows PowerShell-Sicherheit auf Unternehmensebene
Bevor Sie Windows PowerShell Security einrichten, müssen Sie die Grundlagen kennen. Benutzer müssen die neueste Version von Windows PowerShell verwenden. Der Benutzer muss hier beachten, dass PowerShell Security mit der neusten Version von Windows PowerShell eingestellt werden muss. Wenn es sich um eine niedrigere Version (wie PowerShell Version 2) handelt, kann dies mehr schaden als nützen. Daher wird empfohlen, dass Benutzer PowerShell Version 2 loswerden müssen.
Neben der neuesten Version von Windows PowerShell müssen sich Benutzer auch für die neueste Version des Betriebssystems entscheiden. Um die PowerShell Security einzurichten, sind Windows 11 oder Windows 10 die am besten kompatiblen Betriebssysteme. Windows 11/10 kommt mit vielen Sicherheitsfunktionen. Daher wird empfohlen, dass Benutzer ihre älteren Windows-Computer auf Windows 11/10 migrieren und alle verwendbaren Sicherheitsfunktionen evaluieren.
Ausführungsrichtlinie: Viele Benutzer entscheiden sich nicht für den PowerShell-Sicherheitsansatz und verwenden die ExecutionPolicy als Sicherheitsgrenze. Wie David in seinem Beitrag erwähnt, gibt es jedoch mehr als 20 Möglichkeiten, die ExecutionPolicy selbst als Standardbenutzer zu übertreffen. Daher sollten Benutzer es über GPO wie RemoteSigned festlegen. ExecutionPolicy kann einige Hacker daran hindern, PowerShell-Skripte aus dem Internet zu verwenden, aber es ist kein vollständig zuverlässiges Sicherheitssetup.
Faktoren, die beim PowerShell-Sicherheitsansatz zu berücksichtigen sind
David erwähnt alle wichtigen Faktoren, die bei der Einrichtung von PowerShell Security auf Unternehmensebene zu berücksichtigen sind. Einige der Faktoren, die von David abgedeckt werden, sind wie folgt:
- PowerShell-Remoting
- Sichern des privilegierten Zugriffs
- Modernisierung der Umwelt
- Whitelisting / Signieren / ConstrainedLanguage / Applocker / Device Guard
- Protokollierung
- ScriptBlockLogging
- Erweiterte Protokollierung / WEF und JEA
Ausführlichere Informationen zum Einrichten der PowerShell-Sicherheit finden Sie in seinem Beitrag unter MSDN-Blogs.