Trusted Container Extensions für Container-basiertes Confidential Computing

In diesem Blogbeitrag stellen wir Trusted Container Extensions (TCX) vor, eine neuartige Container-Sicherheitsarchitektur, die wir im Rahmen unserer angewandten Sicherheitsforschung entwickelt haben. TCX kombiniert die Verwaltbarkeit und Flexibilität von Standard-Containern mit den starken Schutzgarantien von hardwaregestützten vertrauenswürdigen Ausführungsumgebungen (Trusted Execution Environments, TEEs), um eine vertrauliche Datenverarbeitung für Container-Workloads zu ermöglichen.

Seit über einem Jahrzehnt gibt es einen kontinuierlichen Trend zum Cloud Computing, was Kunden Kostenvorteile und neue Möglichkeiten eröffnet. Cloud Computing entwickelte sich mit dem Aufkommen der Virtualisierung. Virtuelle Maschinen (VMs) ermöglichten Infrastructure-as-a-Service (IaaS) Dienste durch welche Unternehmen und Nutzer bereits bestehende Arbeitslasten in die Cloud auslagern konnten. In den letzten Jahren hat sich der Trend beim Cloud Computing jedoch von VM-basierten Angeboten hin zu leichtgewichtigeren Lösungen verlagert, insbesondere zu Container-Technologien. Container, wie zum Beispiel Docker, bieten mehrere getrennte Instanzen auf Applikationsebene, die durch Kernel-Software-Mechanismen voneinander und vom Host-System isoliert sind. Da Container direkt auf dem Hostsystem laufen, benötigen sie keine komplexe Geräteemulation oder große virtuelle Festplatten. Stattdessen packen Container vorkonfigurierte Anwendungen mit all ihren Abhängigkeiten zusammen, was sie zu einer attraktiven Wahl für die schnelle Bereitstellung von Webservices macht. Cloud-Anbieter haben diesen Trend erkannt und bieten ihren Kunden die Möglichkeit, Container in der Cloud einzusetzen und zu verwalten, was als Container-as-a-Service (CaaS) bezeichnet wird, wobei Docker derzeit das beliebteste Container-Ökosystem darstellt.

Die Nutzung von Cloud-Diensten bietet zwar viele Vorteile, birgt aber auch das Risiko, dass Daten an Dritte weitergegeben oder die Dienste möglicherweise kompromittiert werden. Darüber hinaus schränken gesetzliche Vorschriften die Nutzung von Cloud-Diensten in vielen Branchen ein, z. B. im Gesundheits- oder Finanzwesen. Selbst wenn der Cloud-Service-Anbieter (Cloud Service Provider, CSP) als vertrauenswürdig gilt, kann seine Infrastruktur kompromittiert werden, z. B. durch Insider wie böswillig handelnde Administratoren und Mitarbeiter, durch staatliche Akteure, die per Gesetz Zugang verlangen, sowie durch Drittunternehmen. Während die Hypervisor-Softwarekomponenten, die zur Steuerung und Verwaltung von VMs verwendet werden, bereits Gegenstand verschiedener Angriffe waren [1], ist die Angriffsfläche in CaaS-Umgebungen noch größer, da ein typischerweise großer und komplexer Betriebssystemkern für die Verwaltung und Isolierung der Container verantwortlich ist [2].

In den letzten Jahren hat das Confidential Computing im Bereich des Cloud Computing an Bedeutung gewonnen, um die vertrauenswürdige Auslagerung sensibler Daten und Dienste in die Cloud zu ermöglichen und gleichzeitig die Anforderung dem CSP vertrauen zu müssen zu beseitigen. Durch den Einsatz von hardwaregestützten vertrauenswürdigen Ausführungsumgebungen (Trusted Execution Environments, TEEs) werden die Applikationen des Benutzers in isolierten Bereichen, so genannten Enclaves, geschützt, die selbst dann sicher sind, wenn die privilegierte Software des Hosts kompromittiert oder von einer böswilligen Einheit kontrolliert wird. In der akademischen Forschung wurden verschiedene TEE-Architekturen vorgeschlagen. Kommerziell verfügbare und weit verbreitete TEEs sind Arm TrustZone, Intel Software Guard Extensions (SGX) und AMD Secure Encrypted Virtualization (SEV)Kürzlich kündigten Intel und Arm zudem neue TEE-Architekturen an, nämlich, Intel Trust Domain Extensions (TDX) und Arm Confidential Compute Architecture (CCA)Keine der verfügbaren TEE-Architekturen ist jedoch darauf ausgelegt, Container-Workloads zu isolieren und diese sicher zu orchestrieren und zu verwalten. 

Confidential Computing mit Trusted Container Extensions (TCX)

Zusätzlich zu unserer Sanctuary Plattform die stark isolierte Enclaves auf eingebetteten Systemen ermöglicht, haben wir Trusted Container Extensions (TCX) entwickelt, eine neuartige Sicherheitsarchitektur, die stark isolierte Container bietet welche in der Cloud bereitgestellt und verwaltet werden können. Wir nutzen dabei die bestehende TEE-Architektur AMD SEV, um die Integrität und Vertraulichkeit von Anwendungen und Daten während der Nutzung und im Ruhezustand zu gewährleisten. Wir schützen Container in speziell erstellten, leichtgewichtigen VMs, den sogenannten Secure Container VMs (SC-VMS). TCX bewahrt die Agilität und Verwaltbarkeit von Containern, indem es sichere Dienste für Standard-Docker-Container anbietet. TCX verwendet eine einzige vertrauenswürdige VM pro Host-System und bietet erweiterte Sicherheitsdienste für alle SC-VMS, einschließlich sicherer Installation, sicherem Fernzugriff, sicherer Speicherung und sicherer Kommunikation zwischen SC-VMS. TCX bietet zudem einen sicheren und transparenten Kommunikationskanal zu den sicheren Containern, sodass Docker nicht zwischen einem lokal und einem remote ausgeführten Container unterscheiden kann. Unsere Implementierung der TCX-Architektur bietet eine nahtlose Integration in Docker und basierend auf AMD SEV und dem Kata Containers Projekt. In unserer Performance-Evaluierung, welche die Praxistauglichkeit unserer Implementierung zeigt, analysieren wir rechenintensive Arbeitslasten (SPEC2017-Benchmark-Suite), netzwerkintensive Arbeitslasten (NGINX und Apache-Webserver) und speicherintensive Arbeitslasten (Redis-In-Memory-Datenbank

Der vollständige technische Bericht über TCX ist abrufbar auf arXiv.

[1] Common Vulnerabilities and Exposures (CVEs): CVE-2017-10912, CVE-2017-10918, CVE-2017-10920, CVE-2017-10921 
[2] CVE-2015-8967, CVE-2016-10229, CVE-2016-7117, CVE-2017-0335, CVE-2017-0427, CVE-2017-0561

Kontaktieren Sie uns, um mehr darüber zu erfahren, wie wir Ihre Embedded-Projekte unterstützen können!

Haben Sie Fragen?

Kontaktieren Sie uns, um mehr darüber zu erfahren, wie wir Ihre Embedded-Projekte unterstützen können!