Sichere Speicherzugriffe mit Fähigkeiten verbessern
Ein neues Design bietet bessere Sicherheit für den Speicherzugriff in Computersystemen.
― 5 min Lesedauer
Inhaltsverzeichnis
- Hintergrund
- Speichersicherheit
- Einschränkungen bestehender Designs
- Ein verbesserter Ansatz
- Schlüsselfunktionen
- Implementierung
- Bewertung
- Vertrauenslose Speicherzuweisung
- Vertrauensloses Thread-Scheduling
- Vertrauenswürdige Ausführungsumgebungen
- Verschachtelte Enklaven
- Zeitlich-isolierte Enklaven
- Rust-ähnliches Speichermanagement
- Verwandte Arbeiten
- Zukünftige Arbeiten
- Fazit
- Referenzen
- Originalquelle
- Referenz Links
Der Zugriff auf den Speicher ist entscheidend in Computersystemen, besonders wenn es um Sicherheit geht. Ein neuer Ansatz für den sicheren Speicherzugriff, genannt fähigkeitsbasiertes Speicherisolierung, ist aufgetaucht. Dieser Ansatz erlaubt es Software, mit dem Speicher über spezielle Handles, bekannt als Fähigkeiten, zu interagieren, anstelle von normalen Zeigern. Dieses Setup hilft, Sicherheitsregeln natürlicher durchzusetzen.
Während bestehende Designs wie CHERI ein gewisses Mass an Speichersicherheit bieten, passen sie vielleicht nicht zu allen Sicherheitsbedürfnissen. Dieses Papier diskutiert ein neues Fähigkeitsdesign, das eine stärkere Grundlage für sicheren Speicherzugriff bieten soll, ohne auf vertrauenswürdige Softwarekomponenten angewiesen zu sein.
Hintergrund
Speichersicherheit
Speichersicherheit bezieht sich darauf, eine Anwendung vor dem Zugriff auf falsche oder schädliche Speicherbereiche zu schützen. Fähigkeitsbasierte Designs können die Speichersicherheit verbessern, indem sie sicherstellen, dass Zugriffsrechte an Fähigkeiten gebunden sind.
Einschränkungen bestehender Designs
Aktuelle Fähigkeitsarchitekturen bieten räumliche Sicherheit, fehlen aber die Flexibilität für andere Speichermodelle, die Anwendungen benötigen könnten. Diese Herausforderung kann zu Komplikationen bei der Gestaltung von Systemen führen, die eine Vielzahl von Speicherschutzmassnahmen erfordern.
Ein verbesserter Ansatz
Das vorgeschlagene Design führt ein ausdrucksstärkeres Fähigkeitsmodell ein, das verschiedene Methoden der Speicherisolierung unterstützen kann. Die neue Schnittstelle ist für Umgebungen gedacht, in denen Speicherfreigabe und Zugriffsmanagement ohne etablierte Vertrauensstellung benötigt werden.
Schlüsselfunktionen
Exklusiver Zugriff
Lineare Fähigkeiten helfen, exklusiven Zugriff auf Speicherbereiche zu garantieren, sodass keine andere Fähigkeit mit den Zugriffrechten einer linearen Fähigkeit in Konflikt treten kann.
Delegation und Widerruf
Die Möglichkeit, den Speicherzugriff an andere Komponenten zu delegieren, während man die Fähigkeit behält, diesen Zugriff jederzeit zu widerrufen, bietet eine solide Struktur für das Speichermanagement in verschiedenen Sicherheitsdomänen.
Hierarchisches Berechtigungsmanagement
Das Design unterstützt die Schaffung einer Hierarchie von Berechtigungen, die nach Bedarf erweitert werden kann, um das Management von Speicherfreigabe und Zugriffskontrolle zu verbessern.
Implementierung
Ein Prototyp des vorgeschlagenen Designs wurde entwickelt, um seine Benutzerfreundlichkeit und Effizienz zu demonstrieren. Dieser Prototyp enthält einen Emulator und einen einfachen Compiler, um verschiedene Modelle der Speicherisolierung zu ermöglichen.
Bewertung
Die Bewertung des Prototyps zeigt, dass Speicherzugriffsoperationen mit minimalem Leistungsaufwand durchgeführt werden können. Das vorgeschlagene Design kann effizient verschiedene Speichermodelle unterstützen, ohne eine vertrauenswürdige Softwareumgebung zu benötigen.
Vertrauenslose Speicherzuweisung
Speicherzuweiser
Der Speicherzuweiser bietet lineare Fähigkeiten für zugewiesene Speicherbereiche und stellt sicher, dass Anwendungen den Speicher nutzen können, ohne dem Zuweiser zu vertrauen, dass er den Zugriff verwaltet.
Beispielworkflow
Wenn eine Anwendung Speicher anfordert, erhält sie eine lineare Fähigkeit, die exklusiven Zugriff gewährt. Wenn die Anwendung den Speicher freigibt, kann der Zuweiser nicht mehr auf die zuvor gespeicherten Daten zugreifen, was die Vertraulichkeit wahrt.
Vertrauensloses Thread-Scheduling
Scheduler-Mechanismus
Der Thread-Scheduler arbeitet unabhängig von Anwendungen. Er stellt sicher, dass Anwendungen laufen können, ohne dem Scheduler ihre Daten anvertrauen zu müssen, was die Gesamtsicherheit verbessert.
Kontextmanagement
Wenn ein Thread gewechselt wird, speichert der Scheduler den Kontext des Threads, um dessen Zustand zu bewahren und unbefugten Zugriff auf geschützte Daten zu verhindern.
Vertrauenswürdige Ausführungsumgebungen
Überblick über TEEs
Vertrauenswürdige Ausführungsumgebungen (TEEs) ermöglichen es Anwendungen, sicher zu laufen, ohne der zugrunde liegenden Software zu vertrauen. Das vorgeschlagene Fähigkeitsdesign kann die Schaffung von TEEs erleichtern, die keine Abhängigkeit von vertrauenswürdigen Komponenten erfordern.
Räumliche Isolation
Ein Enklave ist ein privater Speicherbereich, der nur für eine bestimmte Anwendung zugänglich ist. Das Design ermöglicht eine einfache Erstellung und Verwaltung solcher Enklaven, was die Sicherheit erhöht.
Verschachtelte Enklaven
Struktur und Funktionalität
Das Design unterstützt verschachtelte Enklaven, was bedeutet, dass eine Enklave andere Enklaven innerhalb von sich erstellen kann. Diese hierarchische Struktur ermöglicht komplexe Speicherfreigabe und Berechtigungsmanagement.
Sicherheitsüberlegungen
Das Nesten von Enklaven kann kontrolliert werden, um sicherzustellen, dass der Zugang reguliert wird und dass Enklaven ihre Integrität wahren können, während sie Ressourcen teilen.
Zeitlich-isolierte Enklaven
Dynamisches Berechtigungsmanagement
Das vorgeschlagene Design ermöglicht dynamische Anpassungen der Speicherzugriffsberechtigungen innerhalb von Enklaven. Dieser zeitlich-isolierte Ansatz ermöglicht flexibleres Ressourcenmanagement.
Kontrollierter Zugriff
Enklaven können zeitvariable Zugriffsrichtlinien festlegen, um Berechtigungen zu verwalten und sicherzustellen, dass Daten nur dann zugänglich sind, wenn es angemessen ist.
Rust-ähnliches Speichermanagement
Abstraktionsmechanismus
Das neue Design kann Rests Eigentums- und Leihmodell für das Speichermanagement nachahmen und ermöglicht räumliche und zeitliche Sicherheit, ohne vertrauenswürdige Komponenten zu benötigen.
Dynamischer Prüfmechanismus
Durch Laufzeitprüfungen stellt das vorgeschlagene Design sicher, dass der Speicherzugriff den Eigentumseinschränkungen folgt und so unbefugten Zugriff auf Daten verhindert.
Verwandte Arbeiten
Vergleich mit CHERI
Während CHERI einige Fähigkeiten bietet, fehlt es an der Ausdruckskraft, um eine Vielzahl von Speichermodellen effektiv zu unterstützen. Das vorgeschlagene Design zielt darauf ab, diese Lücke zu schliessen und eine robuste Lösung bereitzustellen.
Speichersicherheit in der Programmierung
Viele Programmiersprachen integrieren Sicherheitsmerkmale, um ordnungsgemässen Speicherzugriff sicherzustellen. Das vorgeschlagene Design steht im Einklang mit diesen Prinzipien und möchte die Sicherheit auf der architektonischen Ebene erhöhen.
Zukünftige Arbeiten
Weitere Erkundungen sind geplant, um das vorgeschlagene Design von einem theoretischen Rahmen zu praktischen Hardwareimplementierungen zu bringen. Das Ziel ist es, die Anwendungen zu erweitern und den Ansatz basierend auf realen Daten und Rückmeldungen zu verfeinern.
Fazit
Ein neues fähigkeitsbasiertes architektonisches Design kann den sicheren Speicherzugriff in verschiedenen Anwendungen verbessern. Indem es mehrere Modelle der Speicherisolierung unterstützt und die Zugriffskontrolle ohne Abhängigkeit von vertrauenswürdigen Komponenten gewährleistet, bietet dieser Ansatz eine vielversprechende Richtung für die zukünftige Computersicherheit.
Referenzen
Hinweis
Die Informationen in diesem Artikel stammen aus verschiedenen Forschungsstudien und bestehenden Rahmenwerken, die sich mit Speicherverwaltung, Fähigkeiten und Sicherheit in Computersystemen befassen.
Titel: Capstone: A Capability-based Foundation for Trustless Secure Memory Access (Extended Version)
Zusammenfassung: Capability-based memory isolation is a promising new architectural primitive. Software can access low-level memory only via capability handles rather than raw pointers, which provides a natural interface to enforce security restrictions. Existing architectural capability designs such as CHERI provide spatial safety, but fail to extend to other memory models that security-sensitive software designs may desire. In this paper, we propose Capstone, a more expressive architectural capability design that supports multiple existing memory isolation models in a trustless setup, i.e., without relying on trusted software components. We show how Capstone is well-suited for environments where privilege boundaries are fluid (dynamically extensible), memory sharing/delegation are desired both temporally and spatially, and where such needs are to be balanced with availability concerns. Capstone can also be implemented efficiently. We present an implementation sketch and through evaluation show that its overhead is below 50% in common use cases. We also prototype a functional emulator for Capstone and use it to demonstrate the runnable implementations of six real-world memory models without trusted software components: three types of enclave-based TEEs, a thread scheduler, a memory allocator, and Rust-style memory safety -- all within the interface of Capstone.
Autoren: Jason Zhijingcheng Yu, Conrad Watt, Aditya Badole, Trevor E. Carlson, Prateek Saxena
Letzte Aktualisierung: 2023-03-09 00:00:00
Sprache: English
Quell-URL: https://arxiv.org/abs/2302.13863
Quell-PDF: https://arxiv.org/pdf/2302.13863
Lizenz: https://creativecommons.org/licenses/by/4.0/
Änderungen: Diese Zusammenfassung wurde mit Unterstützung von AI erstellt und kann Ungenauigkeiten enthalten. Genaue Informationen entnehmen Sie bitte den hier verlinkten Originaldokumenten.
Vielen Dank an arxiv für die Nutzung seiner Open-Access-Interoperabilität.