Weeve Testimony – Ein vertrauenswürdiger Schritt zur Sicherung der Maschinenwirtschaft

(Gaurav Tiwari) (6. Mai 2020)

Daten wurden mit Rohstoffen wie Öl oder Gold verglichen. In dieser vernetzten Welt werden immer mehr Qualitätsdaten den intelligenten Entscheidungsprozess von Maschinen, die in einer Fabrik eingesetzt werden, oder von verschiedenen Geräten, die in unseren Häusern eingesetzt werden, ermöglichen. Vor uns liegt jedoch eine große Herausforderung: Wie können qualitativ hochwertige und vertrauenswürdige Daten auf skalierbare und automatisierte Weise sicher bereitgestellt werden? Branchenführer für eingebettete Low-End-Geräte arbeiten hart daran, die besten auf High-End-Geräten verfügbaren Hardware- und Software-Sicherheitspraktiken auf diese Mikrocontroller-Geräte zu übertragen. Begrenzte Ressourcen in Mikrocontrollern und bei so vielen Betriebssystemen und Lösungsstapeln führen zu einer komplexen und herausfordernden Landschaft für eingebettete Sicherheit.

Wir können die Datenschutzszenarien wie folgt kategorisieren:

  • Daten in Ruhe
  • Daten unterwegs
  • Verwendete Daten

Bei Weeve entwickeln wir Lösungen, die auf die Datensicherheit für IoT-Geräte auf Mikrocontroller-Basis zugeschnitten sind.

  • Wir schützen Daten in Ruhe verwendet eine vertrauenswürdige Speicherlösung. Diese Daten enthalten kryptografische Assets wie Schlüssel oder einige digitale Assets wie virtuelle Münzen usw.
  • Mit Daten während der Übertragung Wir haben Weeve MQTTS entwickelt, ein leichtes und sicheres Publish-Subscribe, das auf dem für Low-End-Geräte zugeschnittenen MQTT-Protokoll basiert. Dies ist eine Alternative zu MQTT über TLS, das am Rand mehr Strom verbraucht.
  • Für verwendete Daten Wir befassen uns mit der Integrität des Prozesses, der auf einem IoT-Gerät ausgeführt wird. Dieser Prozess kann das Sammeln nützlicher Daten unter Verwendung von Sensoren oder das Ausführen eines Datenverarbeitungsschritts oder sogar das Ausführen einer Geschäftslogik im Fall einer Aktuatorvorrichtung sein. Das Erkennen und Verhindern der Software-Schwachstellen des Prozesses ist hier der Schlüssel. Wir entwickeln Weeve Testimony , eine Echtzeit-Kontrollbescheinigungsanwendung, die das Thema dieser Blogserie ist.

Bevor wir Weeve Testimony vorstellen, finden Sie hier einige technische Hintergrundinformationen zu den von uns gelösten Problemen und den in unserer Lösung verwendeten Technologien.

C-Programm-Schwachstelle Probleme

Fast alle eingebetteten Software- und Firmware-Versionen auf niedriger Ebene werden in der Programmiersprache C entwickelt. Das Fehlen geeigneter Grenzprüfungen für den beabsichtigten zugewiesenen Speicher ist eine Quelle großer Sicherheitsbedrohungen. Zusätzlich zum Pufferüberlauf leidet das C-Programm unter einem Integer-Überlauf, einer Sicherheitsanfälligkeit im Zeichenfolgenformat, Überschreibungen von Rücksprungadressen usw. Es gibt auch eine neue Klasse von Sicherheitsbedrohungen für ein C-Programm wie return-to-libc und allgemeiner return-orientierte Programmierung (ROP) , die gegen gängige Schadensbegrenzungstechniken wie z Verhinderung der Datenausführung und Codesignatur. Eine ordnungsgemäße Codeüberprüfung mit statischen und dynamischen Sicherheitstools für Anwendungen kann die Schwere solcher Sicherheitsanfälligkeiten verringern. Andere Techniken in der Toolchain, wie der Stack-Smashing-Schutz, in der Hardware selbst, wie das für Datensegmente gesetzte NX-Bit, zur Laufzeit, wie Adressraum-Layout-Randomisierungen (ASLR), existieren. Das Programm ist jedoch noch weit von einer fairen, verletzungsfreien Garantie entfernt. Im Zusammenhang mit Mikrocontroller-basierten Low-End-Geräten wird die effektivste Abschwächungstechnik von ASLR aus praktischen Gründen nicht implementiert, um einen Laufzeitlader zu vermeiden.

Unser Ansatz zur Minderung von Sicherheitslücken in C-Programmen

Um Probleme mit Sicherheitslücken in C-Programmen zu beheben, gehen wir davon aus, dass das Programm immer Sicherheitslücken aufweist. und deshalb wagen wir es, sie zur Laufzeit zu erkennen. Wir stellen uns die Existenz eines privilegierteren isolierten Schutzprozesses vor, der das Verhalten eines laufenden C-Programms (der MCU-Firmware) überprüft und bezeugt . Der Guard-Prozess muss isoliert und privilegierter sein als die normale Firmware. Wenn er Teil desselben Prozesses oder einer ähnlichen Berechtigungsstufe wie die normale Firmware ist, kann der Hacker den Guard-Prozess auch hacken, indem er dieselbe Sicherheitsanfälligkeit in der normalen Firmware ausnutzt . Wir stellen uns auch die Notwendigkeit einer Remote-Attestierungseinheit vor, die im Voraus (mithilfe unseres Profiling-Tools) alle gültigen Ausführungs-Snapshots der normalen Firmware-Ausführung kennt und diese Snapshots regelmäßig überprüft.

Schreibe einen Kommentar

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