- JEA wendet das Prinzip der minimalen Privilegien an in Powershell Remoting, Reduzierung der Anzahl von Konten mit erhöhten Berechtigungen und Einschränkung der für jede Rolle verfügbaren Cmdlets.
- Die Kombination aus .psrc- und .pssc-Dateien ermöglicht es Ihnen, Rollenberechtigungen, eingeschränkte Endpunkte, virtuelle Konten und detaillierte Protokolle für ein vollständiges Audit zu definieren.
- Im Vergleich zu Ansätzen wie GPO, AppLocker oder generischen Endpunkten bietet JEA eine wesentlich feinere Steuerung und ein robustes RBAC-Modell zur Delegierung von Aufgaben, ohne privilegierte Anmeldeinformationen preiszugeben.
- Für die korrekte Implementierung sind eine sorgfältige Rollenplanung, Tests und kontinuierliche Wartung erforderlich, aber sie bietet einen deutlichen Sicherheitszuwachs, ohne die Produktivität zu beeinträchtigen.
Die Verwendung von PowerShell-Remoting ist in jeder Umgebung nahezu unverzichtbar geworden. Windows Modern, aber Fernzugriff ohne Kontrolle zu gewähren, ist, als würde man die Schlüssel zum Rechenzentrum einfach auf dem Tisch liegen lassen. Genau hier setzt das Spiel an. Just-Enough-Administration (JEA), eine Sicherheitsebene, die es Ihnen ermöglicht, Aufgaben zu delegieren, ohne dabei überall Administratorrechte preiszugeben.
Mit JEA können Sie sehr eingeschränkte Remote-Zugriffspunkte einrichten, auf denen nur bestimmte Benutzer die Anwendung ausführen. Befehle die Sie unter Konten mit mehr Berechtigungen autorisiert haben, aber ohne die wahren Referenzen zu kennen oder vom Drehbuch abweichen zu könnenUnd all dies wurde in Abschriften festgehalten und Protokolle detaillierte Informationen, die es Ihnen dann ermöglichen, zu überprüfen, wer was wann und von wo aus getan hat.
Was ist Just-Enough-Administration (JEA) und warum ist sie wichtig?
Just-Enough-Administration ist eine PowerShell-basierte Sicherheitstechnologie. JEA implementiert ein delegiertes Administrationsmodell mit minimalen Berechtigungen. In der Praxis ermöglicht JEA die Bereitstellung von Remote-Endpunkten, auf denen nur ein begrenzter Satz von Cmdlets, Funktionen, Skripten und externen Befehlen verfügbar ist, die Sie selbst definieren.
Dank dieses Ansatzes können Sie die Anzahl der Konten mit erhöhten Berechtigungen drastisch reduzieren Auf Ihren Servern können Sie virtuelle Konten oder gruppenverwaltete Dienstkonten (gMSAs) verwenden, die im Namen von Standardbenutzern privilegierte Aktionen ausführen. Der Benutzer meldet sich mit seinen üblichen Anmeldeinformationen an und startet über die JEA-Sitzung Befehle, die im Hintergrund mit höheren Berechtigungen ausgeführt werden.
Ein weiterer wichtiger Pfeiler von JEA ist die Fähigkeit, genau definieren, was jede Rolle leisten kannRollenberechtigungsdateien definieren, welche Cmdlets, benutzerdefinierten Funktionen, externen Befehle oder PowerShell-Anbieter sichtbar sind. Der Rest ist für den Benutzer nicht verfügbar: Er kann keine Skripte improvisieren, nicht frei im Dateisystem navigieren und nicht auf Dienste oder Prozesse zugreifen, die Sie nicht angegeben haben.
Darüber hinaus können alle JEA-Sitzungen so konfiguriert werden, dass sie generieren vollständige Protokolle und PrüfungsereignisseDas Erfassen von Befehlen, Parametern, Ausgaben, Fehlern, Benutzeridentität und Ausführungszeiten hilft nicht nur bei der Erfüllung regulatorischer Anforderungen, sondern ist auch bei der Untersuchung eines Sicherheitsvorfalls oder eines Betriebsausfalls von unschätzbarem Wert.
Risiken privilegierter Konten und wie JEA diese mindert
Lokale, Domänen- oder Anwendungsadministratorkonten mit erhöhten Berechtigungen implizieren einer der gravierendsten Risikofaktoren in jeder OrganisationWenn ein Angreifer eine dieser Zugangsdaten erlangt, kann er sich lateral im Netzwerk bewegen, seine Berechtigungen ausweiten und Zugriff auf kritische Daten, wichtige Dienste oder sogar ganze Systeme erlangen.
Das Entfernen von Berechtigungen ist nicht immer trivial. Ein klassisches Beispiel ist das von ein Server, der sowohl DNS als auch einen Active Directory-Domänencontroller hostetDas DNS-Team benötigt lokale Administratorrechte, um DNS-Dienstprobleme zu beheben. Durch das Hinzufügen zur Gruppe „Domänen-Admins“ erhalten sie jedoch faktisch die Kontrolle über die gesamte Gesamtstruktur und Zugriff auf alle Ressourcen auf diesem Rechner. Dies ist ein klassisches Beispiel dafür, wie Sicherheit für mehr Bedienkomfort geopfert wird.
JEA löst dieses Dilemma durch die strikte Anwendung der Prinzip der geringsten PrivilegienAnstatt DNS-Administratoren Domänenadministratoren zu machen, können Sie einen dedizierten DNS-JEA-Endpunkt erstellen, der nur die Cmdlets bereitstellt, die zum Leeren des Caches, Neustarten des Dienstes, Überprüfen von Protokollen oder ähnlichen Aufgaben benötigt werden. Dadurch kann der Administrator seine Arbeit erledigen, ohne Active Directory untersuchen, im Dateisystem navigieren, beliebige Skripte ausführen oder potenziell gefährliche Hilfsprogramme verwenden zu müssen.
Wenn Sie JEA-Sitzungen für die Verwendung konfigurieren Virtuelle Konten mit temporären BerechtigungenNoch interessanter ist jedoch, dass sich der Benutzer mit eingeschränkten Anmeldeinformationen anmeldet und in dieser Sitzung Aufgaben ausführen kann, die normalerweise Administratorrechte erfordern. Dadurch können viele Benutzer aus lokalen oder Domänenadministratorgruppen entfernt werden, der Betrieb kann aufrechterhalten werden, während die Angriffsfläche deutlich verringert wird.
Sicherheitskonzepte, die JEA zugrunde liegen
JEA entstand nicht aus dem Nichts: Es basiert auf mehreren etablierten Sicherheitsprinzipien und -modellen. Dies verleiht dem System Kohärenz und Robustheit. Das erste Prinzip ist das bereits erwähnte Prinzip der minimalen Berechtigungen, welches besagt, dass sowohl Benutzer als auch Prozesse nur die für ihre Funktionen unbedingt notwendigen Berechtigungen besitzen sollten.
Die zweite wichtige Säule ist das Modell von Rollenbasierte Zugriffskontrolle (RBAC)JEA implementiert rollenbasierte Zugriffskontrolle (RBAC) mithilfe von Rollenfunktionsdateien. In diesen Dateien definieren Sie die Berechtigungen einer bestimmten Rolle innerhalb einer Remotesitzung. Beispielsweise kann eine Helpdesk-Rolle Dienste auflisten, Ereignisse anzeigen und einen bestimmten Dienst neu starten, während eine SQL-Server-Administratorrolle nur Cmdlets ausführen kann, die sich auf … beziehen. Datenbanken und ein bisschen mehr.
La Die technische Grundlage von JEA ist PowerShell und seine Remoting-Infrastruktur.PowerShell stellt die Sprache, Cmdlets und die Remote-Kommunikationsschicht (WinRM/WS-Management) bereit, und JEA ergänzt diese um ein System von eingeschränkten Endpunkten, virtuellen Konten und einer detaillierten Kontrolle darüber, welche Befehle verfügbar sind.
Ein weiteres wichtiges Konzept ist das eingeschränkte Verwaltungähnlich a Zugewiesener Zugriff im Windows 11-KioskmodusAnstatt dem Benutzer eine vollständige Shell zu gewähren, erstellt JEA eine Sitzung, in der die Skriptsprache eingeschränkt ist (standardmäßig „NoLanguage“), die Erstellung neuer Funktionen oder Variablen blockiert, Schleifen und Bedingungen verboten sind und nur die zugelassenen Cmdlets ausgeführt werden dürfen. Dies schränkt die Möglichkeiten eines Angreifers, der Zugriff auf diese Sitzung erlangt, erheblich ein.
Wichtige Komponenten: .psrc- und .pssc-Dateien
Das Herzstück jeder JEA-Bereitstellung bilden zwei Dateitypen: Rollenfunktionsdateien (.psrc) und Sitzungskonfigurationsdateien (.pssc)Zusammen verwandeln sie eine universelle Shell in einen perfekt auf spezifische Benutzer zugeschnittenen Endpunkt.
In einer Rollenfähigkeitsdatei definieren Sie Welche Befehle genau der Rolle zur Verfügung stehenZu den wichtigsten Elementen gehören:
- Sichtbare Cmdlets: Liste der zulässigen Cmdlets, wobei sogar die Möglichkeit besteht, Parameter einzuschränken.
- Sichtbare Funktionen: benutzerdefinierte Funktionen, die in der Sitzung geladen werden.
- Sichtbare externe Befehle: spezifische externe ausführbare Dateien, auf die zugegriffen wird.
- Sichtbare Anbieter: PowerShell-Anbieter (z. B. Dateisystem oder Registrierung), die in der Sitzung sichtbar sind.
Die .pssc-Sitzungskonfigurationsdateien hingegen Sie beschreiben den JEA-Endpunkt als solchen und verknüpfen ihn mit den Rollen.Elemente wie die folgenden werden hier deklariert:
- Rollendefinitionen: Zuordnung von Benutzern oder Sicherheitsgruppen zu Rollenberechtigungen.
- Sitzungstyp: wobei 'RestrictedRemoteServer' üblicherweise gesetzt wird, um die Sitzung abzusichern.
- Transkriptverzeichnis: Ordner, in dem die Protokolle jeder Sitzung gespeichert werden.
- RunAsVirtualAccount und verwandte Optionen, wie zum Beispiel, ob das virtuelle Konto bestimmten Gruppen hinzugefügt wird.
JEA manifestiert sich in Form von Im System registrierte PowerShell-Remoting-EndpunkteDiese Endpunkte werden mit Cmdlets wie beispielsweise erstellt und aktiviert. Neue‐PSSessionConfigurationFile, Register-PSSessionConfiguration oder grafische Tools wie das JEA Helper Tool, mit dem sich .pssc- und .psrc-Dateien einfacher generieren lassen, ohne sich so sehr mit der Syntax auseinandersetzen zu müssen.
JEA-Sitzungslebenszyklus
Beim Einrichten einer vollständigen JEA-Umgebung folgt der Prozess üblicherweise einer Reihe logischer Schritte, Sie wandeln ein offenes Fernzugriffssystem in ein streng reguliertes System um.Die typische Abfolge ist:
Zuerst erstellen Sie eine Sicherheitsgruppe oder mehrere Gruppen Diese Gruppen repräsentieren die Rollen, die Sie delegieren möchten (z. B. HelpdeskDNS, Web-Operatoren, SQL-Operatoren). Die Verwendung von Gruppen ist nicht zwingend erforderlich, vereinfacht die Administration jedoch erheblich, insbesondere bei wachsenden Umgebungen.
Dann werden ein oder mehrere vorbereitet Rollenfähigkeitsdateien .psrc Diese Liste enthält die zulässigen Aktionen: Cmdlets, Funktionen, Skripte, externe Befehle, Aliase, Provider und zusätzliche Einschränkungen (spezifische Parameter, zulässige Pfade usw.). Hier können Sie beispielsweise alle Cmdlets zulassen, die mit „Get-“ beginnen, „Restart-Service“ auf den Spooler-Dienst beschränken und nur den FileSystem-Provider autorisieren.
Folgendes wird generiert Sitzungskonfigurationsdatei .pssc Mit New-PSSessionConfigurationFile werden Optionen wie SessionType = RestrictedRemoteServer, der Pfad zum Transkriptverzeichnis, die Verwendung virtueller Konten und der Block RoleDefinitions definiert, der Gruppen mit Rollenfunktionen verknüpft, zum Beispiel 'DOMAIN\HelpdeskDNS' = @{ RoleCapabilities = 'HelpdeskDNSRole' }.
Nachdem die .pssc-Datei vorbereitet wurde, wird der Endpunkt registriert mit Register‐PSSessionConfiguration -Name JEASession Name -Path Path\File.psscAb diesem Zeitpunkt wird der neue Verbindungspunkt als bereit zum Empfangen von Verbindungen angezeigt, sofern die verfügbaren Konfigurationen mit Get-PSSessionConfiguration aufgelistet werden.
Die Benutzer verbinden sich von ihren Computern aus mit diesem Endpunkt. Enter-PSSession -ComputerName Server -ConfigurationName JEASession Name oder mit New-PSSession und anschließend Invoke-Command. Beim Eintritt in die Sitzung werden automatisch die in der zugehörigen Rollenberechtigung des Benutzers definierten Einschränkungen angewendet.
Während der Sitzung, PowerShell-Remoting verwendet WinRM mit verschlüsselten Kanälen.Die integrierte Authentifizierung (typischerweise Kerberos in der Domäne) und die für den Dienst definierten Firewall-Regeln sind erforderlich. Wenn „RunAsVirtualAccount“ aktiviert ist, wird ein temporäres virtuelles Konto erstellt, den erforderlichen Gruppen hinzugefügt und nach Beendigung der Sitzung wieder gelöscht.
Abschließend, nach dem Ende der JEA-Sitzung, Die Prüfprotokolle und Ereignisse werden gespeichert Diese Protokolle hinterlassen eine klare Spur der ausgeführten Befehle, Ergebnisse und des Benutzerkontexts. Sie können dann an ein SIEM-System gesendet oder innerhalb dieses Systems korreliert werden, um Warnmeldungen zu generieren und weitere Analysen durchzuführen.
PowerShell-Remoting, Zugriffskontrolle und Härtung
PowerShell Remoting, unterstützt vom Dienst Windows-Remoteverwaltung (WinRM) Das WS-Management-Protokoll ermöglicht die zentrale Ausführung von Befehlen und Skripten auf entfernten Computern. Es ist ein leistungsstarkes Werkzeug für Automatisierung, Massenserververwaltung, Fehlersuche und Fernwartung.
Standard, lokale Administratoren und Mitglieder der Gruppe „Benutzer der Fernverwaltung“ Sie können Standard-PowerShell-Endpunkte verwenden. In vielen Umgebungen wurde diese Funktion genutzt, um Benutzern ohne Administratorrechte die Ausführung von Remote-Aufgaben zu ermöglichen. Dies ist an sich nicht gefährlich, birgt aber bei unzureichender Kontrolle ein erhebliches Missbrauchspotenzial.
Zur Stärkung der Sicherheitslage wird folgende gemeinsame Strategie verfolgt: Der Remotezugriff auf PowerShell soll auf Administratorkonten beschränkt werden. Oder, noch besser, kombinieren Sie diese Einschränkung mit JEA-Endpunkten, die bestimmten Benutzern nur den unbedingt notwendigen Zugriff gewähren. Dies lässt sich erreichen durch:
- Gruppenrichtlinienobjekte (GPOs), die definieren, welche Gruppen WinRM und die Standardendpunkte verwenden können.
- Firewallregeln, die WinRM nur von Subnetzen oder Verwaltungscomputern zulassen.
- Die Gruppe „Remote Management Users“ wird aus den ACLs der Standardendpunkte entfernt.
Darüber hinaus können Sie sich dafür entscheiden PowerShell für Benutzer ohne Administratorrechte vollständig blockieren Mithilfe von Lösungen wie AppLocker wird verhindert, dass Standardbenutzer lokal schädliche Skripte ausführen, während privilegierte Konten weiterhin PowerShell für Verwaltungs- und Automatisierungsaufgaben nutzen können.
JEA im Vergleich zu anderen PowerShell-Einschränkungsmethoden
Es gibt mehrere Möglichkeiten, die Aktionen von Benutzern bei der PowerShell-Remoting-Verbindung einzuschränken. JEA eignet sich als dünnere und flexiblere Option. innerhalb eines Spektrums, das auch umfassendere Ansätze wie beispielsweise Folgendes umfasst:
Einerseits ist die Verwendung von Gruppenrichtlinie zur Steuerung des Zugriffs auf die Standard-PowerShell-Endpunkte.Microsoft PowerShell lässt sich auf Administratoren beschränken oder sogar für alle Benutzer deaktivieren, wodurch die Nutzung bestimmter Endpunkte erzwungen wird. Dies ist zwar nützlich, um den Zugriff auf einfache Weise einzuschränken, löst aber nicht das Problem der Granularität: Wer Zugriff erlangt, kann praktisch alles tun.
Andererseits gibt es Anwendungssteuerungswerkzeuge wie zum Beispiel AppLocker- oder SoftwarebeschränkungsrichtlinienDiese Methoden ermöglichen es, die Ausführung von PowerShell.exe oder pwsh.exe für Standardbenutzer zu unterbinden, entweder anhand des Pfads, des Herausgebers oder des Hashwerts. Dieser Ansatz eignet sich zur Absicherung von Arbeitsstationen und verhindert, dass Benutzer PowerShell starten. Er stößt jedoch an seine Grenzen, wenn Benutzer eingeschränkte administrative Aufgaben über ihr Benutzerkonto ausführen sollen.
Eine weitere Option ist die Eingeschränkte Endpunkte, ohne die vollständige JEA zu erreichenSie können benutzerdefinierte Sitzungskonfigurationen erstellen, die Cmdlets, Funktionen und Module einschränken, ohne sich dabei so stark auf das Rollenmodell, virtuelle Konten oder die strukturierte rollenbasierte Zugriffskontrolle (RBAC) von JEA zu verlassen. Dies stellt eine Art Mittelweg dar, der sich für einfache Szenarien eignet, in großen Umgebungen jedoch weniger skalierbar ist.
JEA vereint das Beste aus mehreren Welten: Strenge Befehlsbeschränkung, rollenbasierte Zugriffskontrolle (RBAC), kontrollierte Ausführung erhöhter Berechtigungen und umfassende ProtokollierungDies macht es zur empfohlenen Lösung, wenn Sie PowerShell-Remoting für Nicht-Administratoren aktivieren möchten, ohne ihnen eine vollständige Verwaltungsumgebung zur Verfügung zu stellen.
Erweiterte Funktionen: Als anderes Konto ausführen und protokollieren
Eine der leistungsstärksten Fähigkeiten von JEA ist die Führen Sie Befehle als ein anderes, privilegierteres Konto aus, ohne Ihre Anmeldeinformationen preiszugeben.Damit wird das typische Problem gelöst, dass man das Passwort für diesen Dienst erhält, damit man X tun kann, welches dann aber nie geändert wird und letztendlich ein großes Risiko darstellt.
Domänenszenarien werden häufig verwendet Gruppenverwaltete Servicekonten (gMSA) Dies ermöglicht es JEA-Endpunkten, Aktionen unter einer zentral verwalteten Dienstidentität auszuführen, mit automatischer Passwortrotation und ohne dass ein Operator jemals das Geheimnis kennt. In anderen Fällen werden temporäre virtuelle Konten lokal auf dem Rechner verwendet, die ad hoc beim Verbindungsaufbau eines Benutzers erstellt und am Ende der Sitzung gelöscht werden.
Aus Sicht der Prüfung kann jede JEA-Sitzung wie folgt konfiguriert werden: Generieren Sie sowohl PowerShell-Transkripte als auch umfangreiche Ereignisprotokolleinträge.Zu den typischerweise erfassten Informationen gehören:
- Vollständige Historie der eingegebenen Befehle und Parameter.
- Generierte Ausgaben und Fehlermeldungen.
- Zeitstempel für Beginn und Ende der Sitzung sowie deren Dauer.
- Identität des angemeldeten Benutzers und zugewiesene Rolle/Berechtigung.
Wenn Sie diese Spuren mit Funktionalitäten von PowerShell-Modulprotokollierung und Skript Blockierung der Protokollierung über GruppenrichtlinieDurch das Senden der Protokolle an ein SIEM-System erhalten Sie umfassende Einblicke in die Vorgänge auf Ihren Management-Endpunkten. Dies ist sowohl für die Einhaltung von Vorschriften (SOX-Audits, ISO 27001 usw.) als auch für die Erkennung und Reaktion auf Sicherheitsvorfälle von entscheidender Bedeutung.
Typische JEA-Anwendungsfälle in realen Umgebungen
JEA glänzt besonders dann, wenn man braucht Sehr spezifische Aufgaben an Teams zu delegieren, die keine Administratoren sein solltenEinige sehr häufige Beispiele aus der Praxis sind:
Im Bereich des technischen Supports können Sie hochqualifizierte Techniker einsetzen. JEA-Zugriff zum Neustart von Diensten, Anzeigen von Ereignisprotokollen und Überprüfen des Prozessstatus auf Servern, jedoch ohne die Möglichkeit, Software zu installieren, kritische Konfigurationen zu ändern oder auf Active Directory zuzugreifen. Eine typische Helpdesk-Rolle könnte Cmdlets wie Get-Service, Restart-Service für bestimmte Dienste, Get-EventLog im Nur-Lese-Modus und einige Netzwerkdiagnose-Cmdlets umfassen.
In Betriebs- oder Entwicklungsteams können Sie Folgendes konfigurieren: Rollen mit Schwerpunkt auf spezifischen Aufgaben wie IIS-Administration oder Website-WartungBeispielsweise wird der Zugriff auf Cmdlets zur Verwaltung von Anwendungspools, Neustarts von Websites, Abfragen von Protokollen aus einem begrenzten Verzeichnis und die Zertifikatsverwaltung für bestimmte Dienste ermöglicht, während gleichzeitig die Möglichkeit ausgeschlossen wird, den gesamten Server neu zu starten oder Sicherheitsrichtlinien zu ändern.
In Hybrid- und Cloud-Umgebungen wird JEA häufig verwendet für einschränken, was jedes Team tun kann virtuelle Maschinen, Lagerung oder NetzwerkeSie können Endpunkte bereitstellen, mit denen Sie nur die VMs einer Abteilung verwalten, die Firewall-Regeln eines bestimmten Segments ändern oder eine bestimmte Gruppe von Dienstkonten verwalten können, wobei der Zugriff vom Rest der Infrastruktur getrennt bleibt.
Gleichzeitig passt JEA sehr gut zu Strategien für das Management privilegierter Zugriffe (PAM)wobei privilegierte Sitzungen temporär gewährt, protokolliert und persönlichen Identitäten zugeordnet werden, wodurch gemeinsam genutzte Konten vermieden und das mit jeder privilegierten Aktion verbundene Risiko minimiert wird.
Leidenschaftlicher Autor über die Welt der Bytes und der Technologie im Allgemeinen. Ich liebe es, mein Wissen durch Schreiben zu teilen, und genau das werde ich in diesem Blog tun und Ihnen die interessantesten Dinge über Gadgets, Software, Hardware, technologische Trends und mehr zeigen. Mein Ziel ist es, Ihnen dabei zu helfen, sich auf einfache und unterhaltsame Weise in der digitalen Welt zurechtzufinden.