Schwerpunkte

Firmware-Entwicklung

Security gleich mitentwickeln

06. Oktober 2020, 18:00 Uhr   |  Dipl.-Ing. (FH) Maik Otto

Security gleich mitentwickeln
© AVD | Adobe Stock

Security by Design: Wenn Security von Anfang an bei der Geräteentwicklung berücksichtigt wird, kann man seine Anlagen und Geräte durch mehrstufige Sicherheitsvorkehrungen schützen.

Die zu treffenden Maßnahmen richten sich unter anderem nach der Bedrohungslage, rechtlichen Vorschriften und dem Einsatzfeld. Sicherheit wird in unterschiedlichen Schichten eines Produktes verankert. Bereits die Wahl des Prozessors stellt entsprechende Weichen, welche Basis-Maßnahmen möglich sind. Phytec als Partner für Embedded-Hard- und Software mit security-tauglichen Komponenten berät und unterstützt seine Kunden dabei, wie Security-Maßnahmen bereits ab der Produktdefinition, über den gesamten Entwicklungsprozess bis hin zur Fertigung und späteren Wartung eingebaut werden können.

Für sicherheitsrelevante Anwendungen steht Security by Design an oberster Stelle der Anforderungsliste. Ziel ist eine durchgängige, mehrstufige Absicherung. Sie beginnt bei der Produktdefinition. Danach folgen die Auswahl der Hard- und Software, Design und Entwicklung, eine abgesicherte Produktion bis hin zum laufenden Betrieb mit Updates, Wartung und Services. Der gesamte Ablauf sollte darauf ausgerichtet sein, die technischen und prozessualen Anforderungen so umzusetzen, dass das Produkt zertifiziert werden kann.Die Top-Ten-Bedrohungen im embedded Umfeld sind:

  • Unberechtigte Nutzung von Fernwartungszugängen,
  • Online-Angriffe über Office- /Enterprise-Netze,
  • Angriffe auf eingesetzte Standardkomponenten im ICS-Netz (Industrial-Control-System),
  • (D)DoS Angriffe (Distributed-Denial-of-Service attack),
  • menschliches Fehlverhalten und Sabotage,
  • Einschleusen von Schadcode über Wechseldatenträger und externe Hardware,
  • Lesen und Schreiben von Nachrichten im ICS-Netz (Klartextprotokolle),
  • unberechtigter Zugriff auf Ressourcen,
  • Angriffe auf Netzwerkkomponenten,
  • technisches Fehlverhalten und höhere Gewalt.

Manipulationen und Angriffsmethoden

Zu den Manipulationen gehören das Anzeigen oder Übertragen von falschen Werten oder Informationen. Angreifer versuchen die Funktion zu stören, indem sie das Gerät in einen falschen Modus zwingen. Einige der dafür genutzten Methoden sind:

  • Abhören von Daten, Datenänderung oder Spoofing,
  • Man-in-the-Middle-Angriffe,
  • gültige Eingaben wiederholen,
  • Injektion von Fehlern mit der Absicht, die Geräteumgebung oder den Betrieb des Gerätes zu verändern,
  • Aktivierung von Debug-Funktionen, um Code und Daten zu verändern,
  • Erzeugen von Über- und Untertemperatur,
  • Elektrische Spannung in kritische Bereiche bringen, Überspannung und Unterspannung beaufschlagen,
  • Manipulation der Taktimpulse durch Übertakten, Untertakten, Störungen,
  • Nichtinvasive Seitenkanal-Angriffe zum Abrufen von Schlüsseln und Passwörtern auf dem Chip. Dazu gehören elektromagnetische Einstrahlungen, Leistungsaufnahmemessungen oder eine Differential-Power-Analyse sowie Angriffe auf Timings.

Angreifer nutzen vorhandene, ungeschützte Einfallstore. Deshalb sollte man nicht genutzte Schnittstellen oder Services weglassen oder abschalten. Einer der Vorteile des Open-Source-Betriebssystems Linux ist seine skalierbare Funktionalität. Damit lässt sich bereits in der Produktdefinition die späteren Angriffsflächen klein halten.

Die Wahl der geeigneten Maßnahmen hängt von den Ergebnissen einer umfangreichen Analyse ab. Dazu gehören unter anderem die folgenden Fragen:

  • Wie attraktiv ist das Produkt für kriminelle Machenschaften?
  • Gehört das Produkt zu sogenannter kritischer Infrastruktur (KRITIS)?
  • Welchen Gefahren, Risiken, Verletzlichkeiten ist das Produkt ausgesetzt?
  • Welche Einfallstore für Angreifer gibt es? Wie können sie geschlossen werden?
  • Welche gesetzlichen Vorgaben müssen erfüllt werden?
  • Welche primären und sekundären Schutzziele gibt es? Geht es um Datenschutz, Integrität von Sensordaten, Manipulationssicherheit oder ähnliches?
Phytec Messtechnik
© Phytec

Bild 1: Die Security-Pyramide: Phytec hat das Thema Security in drei Bereiche untergliedert, die pyramidenförmig aufeinander aufbauen.

Suche nach Schwachstellen

Um Schwachstellen zu finden, muss man akribisch alle Teile eines Designs und alle Lebensphasen des Produktes hinterfragen. Stehen beispielsweise Tools der Entwicklung im späteren Feldeinsatz noch zur Verfügung? Werden sie wirklich gebraucht? Wie sichert man ihre Verwendung ab? Debugging-Dienste im Executable eines Serienmodells oder Klartexteinträge in Logs lassen zur Freude von Copy-Cats Rückschlüsse auf Algorithmen zu.

Phytec hat das Thema Security in drei Bereiche untergliedert, die pyramidenförmig aufeinander aufbauen (Bild 1). Das Fundament sind die Basic-Security-Requirements. Darauf aufbauend folgen die Anforderungen an die Ausführung (Runtime) von Programmen. Die physikalischen Verfahren gegen Manipulation bilden die abschließende Spitze.

Die eingesetzten Security-Verfahren müssen dem Stand der Technik entsprechen. Vom ausgewählten Security-Verfahren hängt die Wahl der einzusetzenden Hard- und Software ab, denn nicht jeder Controller/Prozessor ist gleichermaßen für die Umsetzung geeignet. Die für den eigenen Anwendungsfall relevanten Gremien geben Hinweise, welche Verfahren zu wählen sind. Im Workshop stellt Phytec hierzu eine Übersicht zur Verfügung.

Die Roadmap von Phytec enthält geeignete Controller und Prozessoren von Texas Instruments, NXP und ST. Mit ihnen sind gängige Schutzmaßnahmen wie Secure-Boot, Hardware-Verschlüsselung, Secure-Debug, True-Random-Generator, Boot-Fuses oder eine komplett unabhängige Security-Einheit mit einem Security-Co-Prozessor umsetzbar.

Phytec Messtechnik
© Phytec

Bild 2: Die »Chain of Trust« hat ihren Ursprung im Bootloader und prüft jedes zur Ausführung gelangende Modul.

Secure Boot

Beim Secure-Boot-Verfahren prüfen sich die aufeinanderfolgenden Glieder der Bootkette typischerweise mit Verfahren, die Public- und Private-Keys nutzen. Sie bilden eine Vertrauenskette (Chain of Trust, Bild 2). Dabei besitzt jedes Glied in der Kette einen eigenen Key. Geht ein Key verloren oder fällt in falsche Hände, so bleibt dennoch die Kette in ihrer Gesamtheit bestehen. Der Public-Key des ROM-Boot-Loaders ist in sogenannten Fuses im Controller fest eingebrannt. Der ROM-Bootloader prüft mit diesem Public-Key die Signatur des Bootloaders (Barebox). Der Bootloader seinerseits findet seinen Public-Key im Device-Tree oder in der Umgebung und prüft das Kernel-Image. Dieser wiederum nutzt einen symmetrischen Key um das File-System zu verifizieren und zu entschlüsseln. Somit ist der gesamte Boot-Vorgang in allen Stufen abgesichert.

Phytec liefert für seine i.MX6-Boards bereits signierte Bootloader (Barebox) sowie Yocto-Rezepte zur Erzeugung von signierter Barebox und FIT-Image. Geplant sind File-Systemverschlüsselungen für NAND und eMMC mit kryptografischen Verfahren. Derzeit sind fscrypt/CryptFS für NAND und dm-crypt für eMMC in der Planung. Ebenso wird der neue i.MX8 ein eingebautes Secure-Boot-Verfahren mit u-boot besitzen.

Runtime-Security

In diesen Bereich fällt beispielsweise, dass Security-Einstellungen mit »One-Time-programmable«-Devices festgelegt werden oder kryptografische Co-Prozessoren Private-Keys erzeugen und im geschützten On-Chip-RAM speichern. Auch das so genannte Trusted-Executing-Environment, also ein hardware-seitig abgesicherter Bereich im Betriebssystem fällt in die Kategorie Runtime-Security. Unterschiedliche Prozessoren unterschützen diese Anforderungen auf verschieden Art.

Unter dem Begriff »Hardware Secure Modules« (HSM) werden TPM, Key-Storage-IC, Authentication-IC, X509 Certificate Storage Device, Smart Card und Secure-Element zusammengefasst. Im Prinzip sind HSM ein Stück Hardware, in denen kryptografische Services ablaufen oder Keys und Zertifikate gespeichert werden. Secure-Elements sind eigenständige Bauteile, die zusätzlich zum Mikrocontroller genutzt werden, um kryptographische Aufgaben zu übernehmen.

Alternativ könnte als Secure Element auch ein Mikrocontroller mit Security-Co-Prozessor genutzt werden, der die kryptographischen Aufgaben übernimmt. Mit der Hilfe weiterer Logik-Bausteine, Sensoren und ähnlichen geeignete Maßnahmen wird ein Schutz vor Manipulation erreicht oder er wird zumindest erkannt. Auch hier stehen unterschiedliche Verfahren und Elemente zur Verfügung, über die Phytec im Workshop informiert.

Phytec Messtechnik
© Phytec

Bild 3: Nur mit einem abgesicherten Boot-Vorgang entsteht im Gerät eine sichere und vertrauenswürdige Laufzeit-Umgebung.

Mainline-BSP versus Vendor-BSP

Vendor-BSPs (Board Support Packages) sind Linux-Implementierungen des jeweiligen Chipherstellers. Sie enthalten in der Praxis unzählige Patches, oft auch mit proprietärem Code. Der Vorteil des Vendor-BSP ist seine optimale Unterstützung der Controllereigenschaften. Allerdings ist man beim Einsatz des Vendor-BSPs von der Update-Praxis und der Unterstützung des Herstellers abhängig. Spätestens wenn der Chip abgekündigt wird, erlöscht das Interesse des Herstellers. Das Risiko steigt mit der Zahl der ungepatchten Sicherheitslücken, falls die Updates unregelmäßig kommen oder ganz eingestellt wurden.

Das Mainline-BSP hat im Gegensatz zu proprietären Systemen den Vorteil, dass die Community kritische Sicherheitslücken im Kernel schnell entdeckt und Patches zur Verfügung stellt. Der Trend geht zu Mainline-BSPs, auch wenn die Unterstützung einzelner Controllerfeatures aufwendiger zu realisieren ist. Es sollte selbstverständlich sein, immer mit dem aktuellen Stand der verfügbaren Kernels, Tools und Software zu starten. Das Zusammenspiel von Kernel, Board-Support-Package, Betriebssystem, genutzten Eigenschaften und Services, Entwicklungsumgebung und Aktualität der eingesetzten Tools nehmen Einfluss auf den erreichten Grad von Security. Darüber hinaus ist eine solide Update-Strategie für den Erhalt eines hohen Securitylevels entscheidend. Bereits in der Entwicklung nimmt man Einfluss auf die spätere Update-Roadmap-Planung und ihre Umsetzung im Feld durch Auswahl der HW- und SW-Komponenten sowie den Überlegungen zur Wartung. Sichere Remote-Zugriffsmöglichkeiten müssen per Design eingeplant werden.

Updates gibt es nicht umsonst. Sie bedeuten Aufwand und bergen Risiken. Phytec passt seine kundenspezifischen Betriebssystem-Implementierung kontinuierlich periodisch an. Kritische Sicherheitslücken werden durch Patches geschlossen. Damit die neuen, gepatchten Releases schnell und sicher ins Feld übertragen werden können, fährt Phytec in einer Testfarm auf der Kundenhardware automatisierte Tests. Damit minimiert Phytec das Risiko für den Kunden und schafft die Voraussetzung für ein kontinuierlich aktuell gehaltenes und damit sicheres Betriebssystem.

Key Handling in der Produktion

In der Produktion muss der Private Key in den Secure-Elementen eines jeden Gerätes zur Identifizierung und späterer Authentifizierung erzeugt werden. Hierzu hat Phytec in Mainz einen eigenen Fertigungsschritt erarbeitet, welcher mit unterschiedlichen Leistungspaketen genutzt werden kann. Die Schlüsselhoheit bleibt stets beim Kunden. Private-Keys und signierte Images erstellt der Kunde selbst und übergibt für die Initialisierung nur die notwendigen Daten und Komponenten an Phytec. Diese werden in einem geschützten Bereich bei Phytec verwahrt. Insgesamt wurden prozessuale Maßnahmen ergriffen, um diese empfindlichen Daten zu schützen und die Fertigungskette integer zu halten.

Die Hardware-Einheiten können vergossen werden. Ein vollvergossenes Modul ist gleichzeitig gegen Umwelteinflüsse jeder Art geschützt. Verbaute Komponenten können nicht mehr identifiziert oder elektrisch gemessen werden.

Zusammenfassung

Sicherheit ist eine kontinuierliche Aufgabe und ein Wettlauf mit den Angreifern. Intensive Analyse, akribische Planung und strategische Überlegungen verbinden sich mit moderner Technologie zu Security by Design. In jeder der Lebensphasen eines Produktes, von seiner Definition, Entwicklung, Produktion, Betrieb und Wartung leistet Phytec einen Beitrag mit passenden Controllerarchitekturen, Beratung, Handlungsempfehlungen, Fertigungsunterstützung bis hin zur kontinuierlichen Wartung des gelieferten BSPs. In den Security Workshops werden die relevanten Themen stärker vertieft. Zu dem Thema finden immer wieder Workshops statt, informieren Sie sich einfach direkt über die Webseite www.phytec.de oder fragen Sie telefonisch nach. (jk)

Auf Facebook teilenAuf Twitter teilenAuf Linkedin teilenVia Mail teilen

Das könnte Sie auch interessieren

Cyber-Sicherheit in Gefahr
GAIA-X-Organisation gegründet
Zusammenarbeit mit Hochschulen, Unternehmen, Start-ups

Verwandte Artikel

PHYTEC Meßtechnik GmbH