Verwalten des Just-in-Time-Zugriffs (JIT) für Azure Virtual Machines
10.01.2024
Dieser technische und lehrreiche Artikel soll Sicherheitsanalysten, IT-Administratoren und Systemingenieure bei der Implementierung und Verwaltung des Just-in-Time-Zugriffs (JIT) für Azure Virtual Machines (VMs) anleiten. JIT ist eine grundlegende Sicherheitsfunktion von Microsoft Defender for Cloud, die dazu beiträgt, VMs vor unbefugten Zugriffsangriffen zu schützen und die Angriffsfläche des Netzwerks drastisch zu reduzieren, indem der Zugriff auf Verwaltungsports nur dann und so lange wie unbedingt erforderlich eingeschränkt wird [1].
Einführung
In Cloud-Umgebungen sind virtuelle Maschinen häufig das Ziel von Brute-Force-Angriffen und Port-Scans, insbesondere solche mit Verwaltungsports (wie RDP 3389 und SSH 22), die über das Internet zugänglich sind. Das ständige Offenhalten dieser Ports schafft eine unnötig große Angriffsfläche und erhöht das Risiko einer Kompromittierung. JIT Access löst dieses Problem, indem es Sicherheitsteams ermöglicht, eingehenden Datenverkehr zu VMs standardmäßig zu blockieren und Verwaltungsports nur bei Bedarf, für einen begrenzten Zeitraum und von bestimmten IP-Adressen zu öffnen. Dieser Ansatz folgt dem Prinzip der geringsten Privilegien und des Zero Trust und stellt sicher, dass der Zugriff nur in begründeten Fällen und für die kürzestmögliche Zeit gewährt wird [2].
In diesem praktischen Leitfaden werden die Voraussetzungen für die Aktivierung von JIT, der Konfigurationsprozess über Microsoft Security Center, das Anfordern und Genehmigen von JIT-Zugriff, die Integration mit Sicherheitswarnungen und Best Practices für eine effektive Verwaltung behandelt. Es werden Schritt-für-Schritt-Anleitungen, beispielhafte Azure CLI-Befehle und Anweisungen bereitgestellt, damit der Leser das JIT implementieren und validieren kann, wodurch die Sicherheit seiner Azure-VMs gestärkt und sie vor Bedrohungen durch unbefugten Zugriff geschützt werden.
Warum ist der Just-in-Time-Zugriff (JIT) für Azure-VMs von entscheidender Bedeutung?
- Reduzierung der Angriffsfläche: Schließt VM-Verwaltungsports standardmäßig und macht sie nur dann und so lange wie nötig verfügbar, wodurch die Möglichkeiten für Angreifer minimiert werden.
- Granulare Zugriffskontrolle: Ermöglicht Ihnen festzulegen, welche Benutzer Zugriff anfordern können, welche Ports wie lange und von welchen Quell-IP-Adressen aus geöffnet werden können.
- Compliance: Hilft bei der Erfüllung von Compliance-Anforderungen, die eine strenge Kontrolle des Zugriffs auf kritische Ressourcen erfordern.
- Sichtbarkeit und Prüfung: Bietet detaillierte Protokolle aller JIT-Zugriffsanfragen, Genehmigungen und Portöffnungen/-schließungen und erleichtert so die Sicherheitsüberprüfung und -untersuchung.
- Integration mit Defender for Cloud: Vollständig in Microsoft Defender for Cloud integriert und nutzt dessen Funktionen zur Verwaltung des Sicherheitsstatus und zum Schutz vor Bedrohungen.
- Automatisierung: Kann automatisiert werden, um den Zugriff in bestimmten Szenarien zu genehmigen, z. B. bei der Reaktion auf Vorfälle oder bei geplanten Wartungsarbeiten.
Voraussetzungen
Um JIT Access für Azure Virtual Machines zu implementieren, benötigen Sie die folgenden Elemente:
- Aktives Azure-Abonnement: Ein Azure-Abonnement zum Erstellen und Verwalten von Ressourcen.
- Administratorzugriff: Ein Konto mit der Rolle „Besitzer“, „Mitwirkender“ oder „Sicherheitsadministrator“ im Azure-Abonnement oder in der Ressourcengruppe, in der sich die VMs befinden.
- Microsoft Defender für Cloud Standard (oder Defender für Server): JIT ist eine Premium-Funktion von Microsoft Defender für Cloud und erfordert die Aktivierung des Defender für Server-Plans auf dem Abonnement, das die VMs enthält [3].
- Vorhandene Azure Virtual Machines: Azure-VMs, die Sie mit JIT schützen möchten. Für dieses Tutorial gehen wir davon aus, dass Sie bereits VMs bereitgestellt haben.
- Azure CLI oder Azure PowerShell: Installierte und konfigurierte Befehlszeilentools für die Interaktion mit Azure.
Schritt für Schritt: JIT-Zugriff aktivieren und verwalten
Lassen Sie uns die JIT für Ihre Azure-VMs konfigurieren.
1. Aktivieren des Defender für Server-Plans
Wie in den Voraussetzungen erwähnt, erfordert JIT die Aktivierung des Defender for Servers-Plans.
- Öffnen Sie Ihren Browser und navigieren Sie zum Azure-Portal: „https://portal.azure.com“.
- Melden Sie sich mit einem Konto an, das über die erforderlichen Berechtigungen verfügt.
- Geben Sie im oberen Suchfeld „Defender for Cloud“ ein und wählen Sie es aus den Ergebnissen aus.
- Wählen Sie im Defender for Cloud-Dashboard Umgebungseinstellungen ausund im linken Navigationsbereich.
- Wählen Sie das Azure-Abonnement aus, das Ihre VMs enthält.
- Stellen Sie auf der Seite „Defender-Pläne“ sicher, dass der Plan Defender für Server „Aktiviert“ ist. Ist dies nicht der Fall, klicken Sie auf „Aktivieren“ und befolgen Sie die Anweisungen, um es zu aktivieren.
2. JIT-Zugriff für VMs aktivieren
Sie können JIT für einzelne VMs oder für mehrere VMs gleichzeitig aktivieren.
- Wählen Sie im Defender for Cloud-Dashboard im linken Navigationsbereich Workload Protection aus.
- Scrollen Sie nach unten zum Abschnitt „Erweiterter Schutz“ und klicken Sie auf Just-in-Time-VM-Zugriff.
-
Unter der Registerkarte „Virtuelle Maschinen“ sehen Sie drei Unterregisterkarten: „Konfiguriert“, „Empfohlen“ und „Nicht konfiguriert“.
- „Empfohlen“: Listet die VMs auf, die Security Center zum Schutz mit JIT empfiehlt.
- „Nicht konfiguriert“: Listet VMs auf, die nicht JIT-geschützt, aber berechtigt sind.
-
Wählen Sie auf der Registerkarte „Empfohlen“ oder „Nicht konfiguriert“ die VMs aus, für die Sie JIT aktivieren möchten.
-
Klicken Sie auf JIT auf VM aktivieren.
-
JIT-Richtlinie konfigurieren: Für jede ausgewählte VM können Sie die folgenden Optionen konfigurieren:
- Ports: Die Verwaltungsports, die geschützt werden (z. B. 22, 3389, 5985, 5986). Sie können benutzerdefinierte Ports hinzufügen.
- Protokoll: Das Protokoll für jeden Port (z. B. TCP, UDP).
- Maximale Anfragezeit: Die maximale Zeit (in Stunden), die eine Tür nach einer genehmigten Anfrage geöffnet sein kann. Der Standardwert beträgt 3 Stunden.
- Zugelassene Quell-IP-Adressen: Optional, aber dringend empfohlen. Beschränkt den Zugriff auf bestimmte IPs oder IP-Blöcke. Standardmäßig ist es „Any“ („*“), was bedeutet, dass jede IP Zugriff anfordern kann.
-
Klicken Sie auf Speichern, um die JIT-Richtlinie auf die ausgewählten VMs anzuwenden.
3. Anfordern von Just-in-Time-Zugriff auf eine VM
Wenn ein Benutzer oder Administrator auf eine JIT-geschützte VM zugreifen muss, muss er den Zugriff anfordern.
- Wählen Sie im Security Center-Dashboard Workload-Schutz > Just-in-Time-VM-Zugriff aus.
- Wählen Sie auf der Registerkarte „Virtuelle Maschinen“ die VM aus, auf die Sie zugreifen möchten (sie sollte sich auf der Registerkarte „Konfiguriert“ befinden).
-
Klicken Sie auf Zugriff anfordern.
-
Geben Sie im Fenster „Zugriff anfordern“ Folgendes an:
- Türen: Die Türen, die Sie öffnen müssen.
- Quell-IP-Adresse: Die öffentliche IP-Adresse, von der aus Sie eine Verbindung herstellen. Sie können „Meine IP-Adresse“ (die aktuelle öffentliche IP Ihres Geräts) oder „Benutzerdefiniert“ auswählen, um eine IP oder CIDR anzugeben.
- Zeitraum: Die Dauer des Zugriffs (begrenzt durch die in der JIT-Richtlinie konfigurierte „Maximale Anforderungszeit“).
- Begründung: Eine kurze Beschreibung des Grundes für die Zugriffsanfrage.
-
Klicken Sie auf Ports öffnen.
- Hinweis: Wenn die JIT-Richtlinie eine Genehmigung erfordert, wird die Anfrage an die konfigurierten Genehmiger gesendet, bevor die Ports geöffnet werden.
4. Genehmigen von JIT-Zugriffsanfragen (falls konfiguriert)
Für Szenarien, in denen eine Genehmigung erforderlich ist (über Azure Logic Apps oder Azure Functions), kann der Prozess variieren. Standardmäßig öffnet JIT Ports sofort auf Anfrage, sofern keine Workflow-Automatisierung konfiguriert ist.
- Tipp: Für Genehmigungsworkflows können Sie Azure Logic Apps verwenden, um Azure-Überwachungsprotokolle oder Azure Security Center-Ereignisse zu überwachen und einen Genehmigungsprozess auszulösen (z. B. eine E-Mail an eine Sicherheitsgruppe zur manuellen Genehmigung senden).
5. JIT-Zugriffsstatus prüfen
Nachdem Sie den Zugang beantragt haben, können Sie den Status im Portal überprüfen.
- Wählen Sie im Security Center-Dashboard Workload-Schutz > Just-in-Time-VM-Zugriff aus.
- Auf der Registerkarte „Virtuelle Maschinen“ sollte die VM, auf die Sie Zugriff angefordert haben, einen Status anzeigen, der angibt, dass der Zugriff „Aktiv“ oder „Ausstehend“ ist (falls genehmigt).
- In der Spalte „Verbleibende Zeit“ wird angezeigt, wie viel Zugriffszeit noch verbleibt.
6. JIT-Zugriff deaktivieren (optional)
Wenn Sie JIT für eine VM deaktivieren müssen, gehen Sie folgendermaßen vor:
- Wählen Sie im Security Center-Dashboard Workload-Schutz > Just-in-Time-VM-Zugriff aus.
- Wählen Sie auf der Registerkarte „Virtuelle Maschinen“ die konfigurierte VM aus.
- Klicken Sie auf JIT auf VM deaktivieren.
Validierung und Tests
Die Validierung der Wirksamkeit von JIT Access ist entscheidend, um sicherzustellen, dass Ihre VMs geschützt sind und der Zugriff bei Bedarf gewährt werden kann.
1. D-Block testenund Standardzugriff
- Versuchen Sie, von einer JIT-geschützten VM aus auf einen Verwaltungsport (z. B. RDP 3389 oder SSH 22) zuzugreifen, ohne JIT-Zugriff anzufordern.
- Erwartetes Ergebnis: Die Verbindung sollte abgelehnt werden oder eine Zeitüberschreitung auftreten, da Ports standardmäßig geschlossen sind.
2. Testen des genehmigten JIT-Zugriffs
- Fordern Sie JIT-Zugriff auf die gewünschte VM und den gewünschten Port unter Verwendung der öffentlichen IP-Adresse an.
-
Versuchen Sie nach der Genehmigung (oder dem sofortigen Öffnen, wenn keine Genehmigung konfiguriert ist), über RDP oder SSH von derselben öffentlichen IP-Adresse aus auf die VM zuzugreifen.
- Erwartetes Ergebnis: Die Verbindung sollte erfolgreich sein.
-
Warten Sie, bis die JIT-Zugriffszeit abgelaufen ist (oder brechen Sie den Zugriff manuell ab).
- Versuchen Sie erneut, auf die VM zuzugreifen.
- Erwartetes Ergebnis: Die Verbindung sollte erneut abgelehnt werden.
3. Audit-Logs prüfen
Alle JIT-Vorgänge werden in Azure-Überwachungsprotokollen protokolliert und bieten einen vollständigen Überblick darüber, wer was, wann und von wo angefordert hat.
- Navigieren Sie im Azure-Portal zu Ihrer Ressourcengruppe oder bestimmten VM.
- Wählen Sie im linken Navigationsbereich Aktivitätsprotokoll aus.
- Filtern Sie nach Ereignissen im Zusammenhang mit „Just-in-Time-VM-Zugriff“ oder „Microsoft.Security/locations/jitNetworkAccessPolicies“.
- Sie sehen Ereignisse wie „JIT-Netzwerkzugriffsrichtlinie erstellt“, „JIT-Netzwerkzugriffsrichtlinie angefordert“, „JIT-Netzwerkzugriffsrichtlinie genehmigt“ (falls zutreffend) und „JIT-Netzwerkzugriffsrichtlinie geschlossen“.
Sicherheitstipps und Best Practices
- Prinzip der geringsten Privilegien: Konfigurieren Sie JIT-Richtlinien, um die geringstmöglichen Privilegien zu gewähren – genau die benötigten Ports, für die kürzestmögliche Zeit und von den am stärksten eingeschränkten Quell-IPs.
- Quell-IP-Adressen einschränken: Geben Sie nach Möglichkeit Quell-IP-Adressen in der JIT-Richtlinie und den Zugriffsanfragen an. Vermeiden Sie die Verwendung von „Any“ („*“) für Quell-IPs.
- Kurze Zeiträume: Stellen Sie die maximale Anforderungszeit auf den kürzesten angemessenen Zeitraum ein (z. B. 1–2 Stunden), wodurch Benutzer gezwungen werden, die Notwendigkeit des Zugriffs neu zu bewerten.
- Überwachung und Warnungen: Konfigurieren Sie Warnungen in Azure Monitor für JIT-Zugriffsanforderungen, insbesondere für kritische Ports oder unerwartete IPs. Integrieren Sie diese Warnungen in Ihr SIEM (z. B. Microsoft Sentinel).
- Workflow-Automatisierung: Verwenden Sie für Umgebungen mit strengen Genehmigungsanforderungen Azure Logic Apps oder Azure Functions, um benutzerdefinierte Genehmigungsworkflows für JIT-Anfragen zu erstellen.
- Dokumentation und Schulung: Dokumentieren Sie JIT-Zugriffsrichtlinien klar und schulen Sie Benutzer darin, wie sie Zugriff anfordern und wie wichtig es ist, bewährte Sicherheitspraktiken einzuhalten.
- Periodische Überprüfung: Überprüfen Sie regelmäßig JIT-Richtlinien und Zugriffsprotokolle, um sicherzustellen, dass sie relevant und wirksam bleiben.
- Kombination mit NSGs und Azure Firewall: JIT ergänzt andere Ebenen der Netzwerksicherheit, wie z. B. Netzwerksicherheitsgruppen (NSGs) und Azure Firewall. Verwenden Sie sie zusammen für eine tiefgreifende Verteidigung.
Allgemeine Fehlerbehebung
- JIT kann für eine VM nicht aktiviert werden: Stellen Sie sicher, dass der Defender für Server-Plan für das VM-Abonnement aktiviert ist. Stellen Sie sicher, dass sich die VM nicht in einem ungültigen Zustand befindet oder dass keine widersprüchlichen Einstellungen vorliegen.
- JIT-Zugriff kann nicht angefordert werden: Stellen Sie sicher, dass Sie über die erforderlichen Berechtigungen (z. B. „Mitarbeiter“ oder „Just-in-Time-Zugriffsoperator für virtuelle Maschinen“) verfügen, um Zugriff anzufordern. Stellen Sie sicher, dass die VM für JIT konfiguriert ist und die Ports in der Richtlinie definiert sind.
- Verbindung nach JIT-Anfrage abgelehnt: Überprüfen Sie, ob die Quell-IP-Adresse, die Sie in der JIT-Anfrage angegeben haben, mit der öffentlichen IP Ihres Geräts übereinstimmt. Bestätigen Sie, dass der Zeitraum nicht abgelaufen ist. Stellen Sie sicher, dass nach dem Öffnen des JIT-Ports keine zusätzlichen NSGs oder Firewallregeln den Datenverkehr blockieren.
- Falsche Ports geöffnet: Überprüfen Sie die für die VM konfigurierte JIT-Richtlinie, um sicherzustellen, dass die richtigen Ports aufgelistet sind. Wenn Sie die Azure CLI verwenden, überprüfen Sie die Portparameter.
- JIT-Zugriffssicherheitswarnungen: Untersuchen Sie alle JIT-bezogenen Sicherheitswarnungen. Dies kann auf einen unbefugten Zugriffsversuch oder eine falsche Konfiguration hinweisen.
- Beeinträchtigte VM-Leistung: Das JIT selbst sollte die VM-Leistung nicht beeinträchtigen. Wenn es Probleme gibt, untersuchen Sie andere Komponenten der VM oder des Netzwerks.
Fazit
ODie Just-in-Time-Zugriffsverwaltung (JIT) für Azure Virtual Machines ist eine wesentliche Sicherheitsstrategie zum Schutz Ihrer Cloud-Ressourcen vor Bedrohungen durch unbefugten Zugriff. Indem Verwaltungsports standardmäßig geschlossen und nur bei Bedarf geöffnet werden, reduziert JIT die Angriffsfläche erheblich, stärkt Ihre Sicherheitslage und hilft Ihnen, Compliance-Anforderungen zu erfüllen. Durch die effektive Implementierung von JIT in Kombination mit bewährten Sicherheitspraktiken und kontinuierlicher Überwachung wird sichergestellt, dass Ihre VMs sicher und nur für legitime Benutzer und Zwecke zugänglich bleiben. Mit diesem praktischen Leitfaden sind Sicherheitsexperten bestens gerüstet, um JIT-Zugriff zu konfigurieren, zu validieren und zu verwalten und so ihre Azure Virtual Machines widerstandsfähiger und geschützter zu machen.
Referenzen:
[1] Microsoft Learn. Was ist JIT-Zugriff (Just-in-Time) auf die VM?. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-overview [2] Microsoft Learn. Aktivieren Sie den Just-in-Time-Zugriff auf VMs. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-usage [3] Microsoft Learn. Verwalten Sie die Serversicherheit mit Microsoft Defender for Cloud. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/tutorial-enable-servers-plan [4] Microsoft Learn. Verwalten Sie den JIT-Zugriff (Just-in-Time) auf Ihre VMs mit PowerShell. Verfügbar unter: https://learn.microsoft.com/pt-br/azure/defender-for-cloud/just-in-time-access-powershell