CHERIoT, ein Microsoft-Projekt zur Verbesserung der Sicherheit in C

CHERIOT

CHERIoT, eine MS-Option für Sicherheit für eingebettete Systeme

Das brachte die Nachricht kürzlich Microsoft hat die Entwicklungen im Zusammenhang mit dem CHERIoT-Projekt geöffnet (Funktionshardwareerweiterung zu RISC-V für das Internet der Dinge), soll Sicherheitsprobleme in C- und C++-Code blockieren bestehende. CHERIoT bietet eine Lösung zum Schutz bestehender C/C++-Codebasen, ohne sie umgestalten zu müssen.

Der Schutz wird durch die Verwendung eines modifizierten Compilers implementiert Dies verwendet einen speziellen erweiterten Satz von Prozessoranweisungen (ISA), der vom Prozessor bereitgestellt wird, und überwacht den Speicherzugriff auf Hardwareebene, überprüft die Jobkorrektheit mit Zeigern und bietet eine Codeblockisolierung.

Über CHERIOT

Das Projekt wurde mit dem Verständnis erstellt, dass die Low-Level-Natur der C-Sprache wird eine Quelle von Gedächtnisfehlern, was zu Problemen wie Pufferüberläufen führt, Zugriff auf bereits freigegebenen Speicher, Pointer-Dereferenzierung oder doppelte Freigabe.

Die Praxis zeigt, dass selbst große Konzerne wie Google und Microsoft, die eine strikte Change-Review-Policy haben und moderne Entwicklungsmethoden und statische Analysetools einsetzen, kein fehlerfreies Arbeiten mit Speicher garantieren können (z. B. ca. 70 % der Schwachstellen in Microsoft und Google werden durch unsichere Speicherverwaltung verursacht).

Das Problem Es kann durch die Verwendung von Programmiersprachen gelöst werden, die ein sicheres Arbeiten garantieren.oder mit Speicher oder Verknüpfungen mit zusätzlichen Steuerelementen, beispielsweise durch Verwendung von MiraclePtr (raw_ptr) anstelle von gemeinsamen Zeigern, das zusätzliche Steuerelemente für den Zugriff auf freigegebene Speicherbereiche durchführt.

Birne solche Methoden sind besser geeignet für neuen Code y Es ist ziemlich mühsam, bestehende C/C++-Projekte zu überarbeiten, insbesondere, wenn sie in ressourcenbeschränkten Umgebungen wie eingebetteten Systemen und IoT-Geräten ausgeführt werden sollen.

Die CHERIoT-Hardwarekomponenten sind als Mikrocontroller ausgelegt basierend auf der RISC-V-Architektur, Implementierung der sicheren Prozessorarchitektur CHERI (Capacity Hardware Extension for RISC-V), Bereitstellung eines kontrollierten Speicherzugriffsmodells.

Basierend auf die Befehlssatzarchitektur (IST EIN) In CHERIoT wird ein Programmiermodell erstellt, das die Sicherheit der Arbeit mit Speicher auf der Ebene einzelner Objekte garantiert, Schutz vor Zugriff auf bereits freigegebenen Speicher bietet und ein leichtgewichtiges Isolationssystem für den Speicherzugriff implementiert.

Dieses programmgesteuerte Schutzmodell spiegelt direkt das C/C++-Sprachmodell wider, sodass es zum Schutz vorhandener Anwendungen verwendet werden kann (nur Neukompilierung und Ausführung auf ISA CHERIoT-kompatibler Hardware erforderlich).

Die vorgeschlagene Lösung ermöglicht das Blockieren von Fehlern, die ein Objekt im Speicher außerhalb der Grenzen verursachen, erlaubt keine Zeigerersetzung (alle Zeiger müssen aus vorhandenen Zeigern generiert werden), überwacht den Speicherzugriff nach der Freigabe (jeder Speicherzugriff durch einen fehlerhaften Zeiger oder einen Zeiger, der auf ein freigegebenes Objekt verweist, löst eine Ausnahme aus).

Die Verwendung von CHERIoT ermöglicht es beispielsweise, ohne Codeänderungen eine automatische Begrenzungsprüfung zu implementieren, die Lebensdauer von Speicherbereichen zu verfolgen und die Integrität von Zeigern in Komponenten sicherzustellen, die unzuverlässige Daten verarbeiten.

Das Projekt enthält eine Spezifikation für eine CHERIoT-Befehlssatzarchitektur -Erweiterung, eine Referenzimplementierung einer ISA CHERIoT-kompatiblen 32-Bit-RISC-V-CPU und ein modifiziertes LLVM-Toolset.

Schließlich Wenn Sie mehr darüber erfahren möchten, das solltest du wissen Prototyp-Diagramme CPU- und Hardware-Blockbeschreibungen in Verilog werden unter der Apache 2.0-Lizenz vertrieben. Der Ibex-Kern des lowRISC-Projekts wird als Basis für die CPU verwendet und das CHERIoT-ISA-Codemodell wird in der Sail-Sprache definiert und unter der BSD-Lizenz vertrieben.

Darüber hinaus wird ein Prototyp des CHERIoT RTOS-Echtzeitbetriebssystems vorgeschlagen, das die Möglichkeit bietet, Compartments (Kompartiment) auch auf eingebetteten Systemen mit 256 MB RAM zu isolieren.

Der Code CHERIOT-RTOS Es ist in C++ geschrieben und wird unter der MIT-Lizenz vertrieben. In Form von Compartments sind die Grundkomponenten des Betriebssystems wie der Bootloader, der Scheduler und das Speicherzuweisungssystem ausgelegt.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: AB Internet Networks 2008 SL
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.