Windows Server 2016 Containers
Sep 27, 2018
Windows Server 2016 führt Container-Technologie ein, um Anwendungen zu isolieren, Angriffsflächen zu reduzieren und die Skalierbarkeit zu verbessern. Windows Server-Container teilen den Kernel des Host-Betriebssystems für eine leichte Prozessisolation, während Hyper-V-Container eine VM-Ebene Trennung für erhöhte Sicherheit hinzufügen. Mit Docker-Integration und Nano Server-Unterstützung vereinfachen Container die Entwicklung und den Betrieb, während sie das Prinzip der geringsten Rechte durchsetzen und die identitätsgetriebene Sicherheit verbessern.
Sie können die Sicherheit Ihrer Anwendungsentwicklungsinfrastruktur verbessern, indem Sie die Größe und den Umfang der Anwendungs- und Rechenressourcen reduzieren. Eine Möglichkeit, dies zu tun, ist die Containerisierung von Workloads. Windows Server und Microsoft Hyper-V-Container ermöglichen es Ihnen, Workloads voneinander und vom Betriebssystem zu isolieren. Selbst wenn ein Container von einem Angreifer kompromittiert wird, wird es für den Angreifer schwierig sein, auf das Host-Betriebssystem zuzugreifen. Container bieten auch eine standardisierte Umgebung für Entwicklung, Test und Produktionsteams.
Kostenloser Leitfaden zum Herunterladen:
Container
Container bieten eine isolierte und portable Betriebsumgebung für Apps. Aus der Perspektive der App erscheint ein Container wie ein vollständiges, isoliertes Windows-Betriebssystem mit eigenem Dateisystem, Geräten und Konfiguration. Daher sind Container in vielerlei Hinsicht wie VMs, da sie ein Betriebssystem ausführen, ein Dateisystem unterstützen und man über ein Netzwerk ähnlich wie bei jeder anderen physischen Maschine oder VM auf sie zugreifen kann.
Container sind virtuelle Umgebungen, die den Kernel des Host-Betriebssystems gemeinsam nutzen, aber eine Isolation im Benutzerraum bieten, sodass sie eine ideale Umgebung darstellen, in der eine App laufen kann, ohne die restlichen Komponenten des Betriebssystems im Benutzermodus zu beeinflussen und ohne dass die anderen Komponenten im Benutzermodus die App beeinflussen. Durch die Verwendung von Containern können Entwickler Apps schnell in einer isolierten Umgebung erstellen und testen, während sie nur wenige Betriebssystemressourcen verwenden. Das bedeutet, dass Container nicht alle Prozesse und Dienste benötigen, die ein Betriebssystem auf einer VM verwenden könnte.
Windows Server 2016 unterstützt zwei Arten von Containern:
- Windows Server-Container. Diese Container bieten App-Isolation durch Prozess- und Namespace-Isolationstechnologie. Windows Server-Container teilen sich den OS-Kernel mit dem Container-Host und mit allen anderen Containern, die auf dem Host laufen.
- Hyper-V-Container. Diese Container erweitern die Isolation, die Windows Server-Container bieten, indem jeder Container in einer hoch optimierten VM ausgeführt wird.
Die Verwendung von Containern bietet mehrere Vorteile. Die reduzierte Betriebssystemgröße bedeutet, dass Sie weniger Betriebssystemkomponenten warten müssen, was wiederum zu weniger potenziellen Sicherheitsrisiken führt. Die reduzierte Betriebssystemgröße hilft auch dabei, die Skalierbarkeit zu verbessern.
Ausgewählte verwandte Inhalte:
Docker
Um eine Anwendungslast in einem Container auszuführen, müssen Sie Docker verwenden. Docker ist eine Sammlung von Open-Source-Tools und Cloud-basierten Diensten, die ein gemeinsames Modell für das Verpacken (Containerisieren) von Anwendungscode in eine standardisierte Einheit für die Softwareentwicklung bieten. Diese standardisierte Einheit, oder Docker-Container, ist eine Software, die in einem vollständigen Dateisystem verpackt ist, das alles enthält, was sie zum Ausführen benötigt, einschließlich Code, Laufzeitumgebung, Systemwerkzeuge, Systembibliotheken und alles andere, was Sie auf einem Server installieren können. Sie müssen Docker separat herunterladen; es ist nicht Teil der Installationsmedien von Windows Server 2016.
Nano Server
Microsoft Nano Server ist eine relativ neue Installationsmöglichkeit für Windows Server 2016. Es handelt sich um ein leichtgewichtiges Betriebssystem, das speziell für den Einsatz mit virtualisierten Containerinstanzen entwickelt wurde. Es gibt keine Benutzeroberfläche; Nano Server muss remote über PowerShell verwaltet werden, allerdings unterscheidet sich diese PowerShell von der Standardversion. Ab der Windows Server Version 1803 ist Nano Server nur noch als containerbasiertes Betriebssystem-Image verfügbar, und Sie müssen es als Container auf einem Container-Host, wie Docker, ausführen. Sie können diese neuen Nano-Container mit Docker diagnostizieren und in IoT Core betreiben.
Eine Nano Server-Instanz kann nicht als Active Directory-Domänencontroller fungieren. Insbesondere werden folgende Funktionen nicht unterstützt:
- Gruppenrichtlinie
- Teaming von Netzwerkkarten
- Virtuelle Host-Bus-Adapter
- Proxyserver-Zugang zum Internet
- System Center Configuration Manager
- System Center Data Protection Manager
Nano Server unterstützt die folgenden Rollen:
- Dateidienste
- Hyper-V
- IIS
- DNS-Server
FAQ
Wie sichern Sie Windows Server 2016-Container gegen Rechteausweitung ab?
Die Sicherung von Windows-Containern beginnt mit der Identität – denn Data Security That Starts with Identity bedeutet, zu kontrollieren, wer auf welcher Ebene auf Container zugreifen kann. Windows Server 2016-Container laufen standardmäßig mit Prozessisolation, was einen gewissen Schutz bietet, aber Sie benötigen mehrschichtige Sicherheitskontrollen, um Privilege Escalation-Angriffe zu verhindern.
Zuerst sollten Sie Least Privilege-Prinzipien umsetzen, indem Sie Container wann immer möglich mit Benutzerkonten ohne Administratorrechte ausführen. Verwenden Sie die USER-Direktive in Ihrem Dockerfile, um ein Konto mit geringen Privilegien zu spezifizieren, und vermeiden Sie es, Container als Local System oder Administrator auszuführen, es sei denn, es ist absolut notwendig. Konfigurieren Sie Container-Ressourcenlimits, um Ressourcenerschöpfungsangriffe zu verhindern, die zu einer Privilegienerweiterung führen könnten.
Implementieren Sie gruppenverwaltete Dienstkonten (gMSAs) für Container, die eine Domänenauthentifizierung benötigen – dies ermöglicht eine automatische Passwortverwaltung und verringert die Gefahr der Offenlegung von Anmeldeinformationen. Richten Sie Richtlinien für Windows Defender Application Control ein, um zu beschränken, welche Anwendungen in Ihren Containern ausgeführt werden können, und schaffen Sie so eine zusätzliche Barriere gegen die Ausführung bösartiger Codes.
Für verbesserte Isolation verwenden Sie Hyper-V-Container anstelle von Windows Server-Containern, wenn Sie mit sensiblen Daten umgehen. Hyper-V-Container bieten eine Hardware-Ebene Isolation, die es Angreifern wesentlich schwerer macht, sich seitwärts zu bewegen. Überwachen Sie kontinuierlich den Zugriff auf Container und Authentifizierungsereignisse – Sie können nicht verwalten, was Sie nicht sehen können, und riskantes Verhalten zu erkennen, bevor es zu einem Sicherheitsvorfall wird, erfordert Echtzeit-Einblick in die Containeraktivität.
Aktivieren Sie das Windows Event Forwarding, um Sicherheitsprotokolle von Containern zu zentralisieren, und konfigurieren Sie die Überwachung des Sicherheitsereignisprotokolls für Authentifizierungsfehler, Versuche der Rechteerweiterung und verdächtige Prozesserstellung innerhalb von Containern. Regelmäßiges Sicherheitsscannen von Containerbildern vor der Bereitstellung hilft dabei, bekannte Schwachstellen daran zu hindern, Produktionsumgebungen zu erreichen.
Welche Auswirkungen haben Windows-Container auf das Identity Management?
Windows-Container erben den Sicherheitskontext des Hosts, was einzigartige Herausforderungen für das Identity Management mit sich bringt, die Ihre Data Security Posture direkt beeinflussen. Im Gegensatz zu traditionellen VMs teilen sich Container den Kernel des Host-Betriebssystems, sodass kompromittierte Container-Anmeldeinformationen potenziell das gesamte Hostsystem beeinträchtigen können.
Container-Prozesse werden unter bestimmten Windows-Benutzerkonten ausgeführt, und diese Identitäten bestimmen, auf welche Daten und Systemressourcen jeder Container zugreifen kann. Wenn Sie Container in großem Umfang einsetzen, multiplizieren Sie im Grunde Ihre Angriffsfläche in Bezug auf Identitäten – jeder Container wird zu einem potenziellen Eintrittspunkt für den Diebstahl von Anmeldeinformationen oder Angriffe durch laterale Bewegungen.
Die praktische Auswirkung ist, dass Ihre Container-Identitätsstrategie in Ihr umfassenderes Identity Governance-Programm integriert werden muss. Verwenden Sie gruppenverwaltete Dienstkonten (gMSAs) für Containerprozesse, die eine Domänenauthentifizierung benötigen – gMSAs bieten automatisches Passwortmanagement und machen das Speichern von Anmeldeinformationen in Container-Images überflüssig. Implementieren Sie identitätsbasierte Zugriffskontrollen, die Container-Identitäten wie jedes andere privilegierte Konto in Ihrer Umgebung behandeln, mit angemessener Rotation, Überwachung und Durchsetzung des Prinzips der geringsten Rechte.
Betrachten Sie container-spezifische Identitätsherausforderungen wie die Persistenz von Anmeldeinformationen über Container-Neustarts hinweg, sichere Methoden zur Einspeisung von Anmeldeinformationen und das Verwalten von Dienstkontolebenszyklen in dynamischen Containerumgebungen. Ihre Identity Management-Lösung sollte Sichtbarkeit darüber bieten, welche Container welche Identitäten verwenden und auf welche Ressourcen sie zugreifen.
Wie prüfen Sie den Zugriff und die Berechtigungen von Windows-Containern?
Effektives Container-Auditing erfordert Sichtbarkeit sowohl auf Host-Ebene als auch auf Container-Ebene – denn Angreifer loggen sich ein, sie brechen nicht nur ein. Windows-Container generieren Sicherheitsereignisse über das standardmäßige Windows-Ereignisprotokollierungssystem, aber Sie müssen zusätzliche Protokollierung konfigurieren, um container-spezifische Aktivitäten zu erfassen.
Aktivieren Sie das Protokollieren der Container-Laufzeit, um Ereignisse wie das Erstellen, Ändern und Löschen von Containern zu verfolgen. Konfigurieren Sie das Windows-Ereignisprotokoll, um Authentifizierungsvorgänge, Versuche der Rechteerweiterung und Zugriffsmuster auf Ressourcen innerhalb von Containern zu erfassen. Konzentrieren Sie sich auf die Überwachung ungewöhnlicher Zugriffsmuster, wie zum Beispiel Container, die auf Dateien außerhalb ihrer erwarteten Datenvolumen zugreifen oder unerwartete Netzwerkverbindungen herstellen.
Der Schlüssel liegt darin, Containeraktivitäten mit Ihrer umfassenderen Sicherheitsüberwachungsstrategie zu korrelieren. Containerzugriffsereignisse sollten neben der traditionellen Benutzerkontenüberwachung in Ihr Programm für Identity and Access Governance einfließen. Richten Sie automatisierte Warnungen für hochriskante Containerverhaltensweisen ein, wie Versuche, auf sensible Datenrepositories zuzugreifen oder Berechtigungen über den beabsichtigten Umfang des Containers hinaus zu eskalieren. Dieser proaktive Ansatz hilft Ihnen, riskantes Verhalten zu erkennen, bevor es zu einem Sicherheitsvorfall kommt.
Implementieren Sie die Überwachung des Dateisystems für sensible Verzeichnisse, auf die Container keinen Zugriff haben sollten, und überwachen Sie die Erstellung von Prozessen innerhalb von Containern, um unbefugte Ausführungen von Programmen zu erkennen. Verwenden Sie PowerShell-Protokollierung, um administrative Aktivitäten innerhalb von Containern zu erfassen, insbesondere für Container, die Automatisierungsskripte oder administrative Tools ausführen.
Welche Best Practices für die Überwachung der Sicherheit von Windows-Containern sollten Sie befolgen?
Die Überwachung der Containersicherheit erfordert einen anderen Ansatz als die traditionelle Serverüberwachung, da Container flüchtig sind und dynamische Angriffsflächen schaffen. Beginnen Sie mit der Basisüberwachung von Container-Lebenszyklusereignissen – Erstellung, Start, Stopp und Löschung –, um normale Betriebsmuster zu etablieren.
Überwachen Sie den Netzwerkverkehr sowohl auf Host- als auch auf Containerebene, um ungewöhnliche Kommunikationsmuster zu erkennen, die auf laterale Bewegungen oder Versuche der Datenausfiltration hindeuten könnten. Verfolgen Sie Ressourcenverbrauchsmetriken wie CPU, Speicher und Festplattennutzung, um potenzielle Denial-of-Service-Angriffe oder Kryptomining-Aktivitäten innerhalb von Containern zu identifizieren.
Implementieren Sie eine Echtzeitüberwachung von Dateisystemänderungen in Containern, insbesondere für Container, die nicht auf die Festplatte schreiben sollten. Verwenden Sie das Windows Performance Toolkit und container-spezifische Überwachungstools, um die Prozessausführung innerhalb von Containern zu verfolgen und achten Sie auf nicht autorisierte Prozesse oder unerwartete Versuche der Privilegienerweiterung. Das Ziel ist eine verbesserte Sichtbarkeit und Kontrolle – Sie müssen sehen, was in Ihrer Containerumgebung passiert, um wirksame Sicherheitsmaßnahmen ergreifen zu können.
Konfigurieren Sie die Überwachung für container-spezifische Sicherheitsereignisse wie das Herunterladen von Images aus nicht autorisierten Registries, Container, die mit übermäßigen Privilegien laufen, oder Container, die versuchen, auf Hostsystemressourcen zuzugreifen. Richten Sie Alarmierungen für Container ein, die von ihren erwarteten Verhaltensmustern abweichen, wie zum Beispiel das Herstellen von Netzwerkverbindungen zu ungewöhnlichen Zielen oder das Verbrauchen von Ressourcen über normale Baselines hinaus.
Wie beheben Sie Authentifizierungsprobleme bei Windows-Containern?
Authentifizierungsprobleme bei Containern resultieren häufig aus falsch konfigurierten Dienstkonten oder unsachgemäßem Anmeldeinformationsmanagement zwischen Host- und Containerumgebungen. Beginnen Sie damit, zu überprüfen, ob Ihr Container die korrekte Windows-Identität verwendet – prüfen Sie den Sicherheitskontext, unter dem Containerprozesse laufen, mit Tools wie Process Monitor oder Windows Event Viewer.
Häufige Authentifizierungsfehler treten auf, wenn Container aufgrund von Delegierungsproblemen bei den Anmeldeinformationen keinen Zugriff auf Domänenressourcen haben. Wenn Ihr Container sich bei Active Directory oder anderen Domänendiensten authentifizieren muss, stellen Sie sicher, dass Sie gruppenverwaltete Dienstkonten (gMSAs) anstelle von traditionellen Dienstkonten verwenden. gMSAs bieten automatisches Passwortmanagement und sind speziell für Containerszenarien konzipiert.
Überprüfen Sie die Windows-Ereignisprotokolle sowohl auf dem Container-Host als auch auf den Domänencontrollern auf Fehler im Zusammenhang mit der Authentifizierung. Suchen Sie nach Ereignis-IDs, die mit Anmeldefehlern, Kerberos-Authentifizierungsproblemen oder NTLM-Authentifizierungsproblemen zusammenhängen. Verwenden Sie Tools wie Network Monitor oder Wireshark, um den Authentifizierungsverkehr zu erfassen und zu identifizieren, wo die Authentifizierungskette unterbrochen wird. Denken Sie daran, dass Authentifizierungsprobleme bei Containern oft auf umfassendere Identity Management-Probleme hinweisen, die Ihre gesamte Sicherheitslage beeinträchtigen könnten.
Stellen Sie sicher, dass Ihr Container-Host ordnungsgemäß in die Domäne eingebunden ist und dass die erforderlichen Windows-Funktionen (wie das Active Directory-Modul für PowerShell) installiert sind. Überprüfen Sie die DNS-Auflösung innerhalb der Container, um sicherzustellen, dass sie die Domänencontroller erreichen können. Wenn Sie die Anmeldeinformationen-Delegierung verwenden, bestätigen Sie, dass das Container-Host-Konto die notwendigen Delegierungsrechte in Active Directory hat.
Teilen auf
Erfahren Sie mehr
Über den Autor
Dirk Schrader
VP of Security Research
Dirk Schrader ist Resident CISO (EMEA) und VP of Security Research bei Netwrix. Als 25-jähriger Veteran in der IT-Sicherheit mit Zertifizierungen als CISSP (ISC²) und CISM (ISACA) arbeitet er daran, die Cyber-Resilienz als modernen Ansatz zur Bekämpfung von Cyber-Bedrohungen voranzutreiben. Dirk hat an Cybersecurity-Projekten auf der ganzen Welt gearbeitet, beginnend in technischen und Support-Rollen zu Beginn seiner Karriere und dann übergehend in Vertriebs-, Marketing- und Produktmanagementpositionen sowohl bei großen multinationalen Konzernen als auch bei kleinen Startups. Er hat zahlreiche Artikel über die Notwendigkeit veröffentlicht, Änderungs- und Schwachstellenmanagement anzugehen, um Cyber-Resilienz zu erreichen.
Erfahren Sie mehr zu diesem Thema
Konfigurationsmanagement für sichere Endpoint-Kontrolle
Datenschutzgesetze der Bundesstaaten: Unterschiedliche Ansätze zum Datenschutz
Was ist elektronisches Records Management?
Wie man Passwörter mit PowerShell erstellt, ändert und testet
Reguläre Ausdrücke für Anfänger: Wie man beginnt, sensible Daten zu entdecken