Bundesamt für Sicherheit in der Informationstechnik

B 3.407 Eingebettetes System

Beschreibung

Eingebettete Systeme sind informationsverarbeitende Systeme, die in ein größeres System oder Produkt integriert sind, dort Steuerungs-, Regelungs- und Datenverarbeitungsaufgaben übernehmen und dabei oft nicht direkt vom Benutzer wahrgenommen werden. Ist ein eingebettetes System betriebsmittelarm, d.h. sind seine Ressourcen hinsichtlich Speicher, CPU und Energie extrem beschränkt und verfügt es über keine Benutzerschnittstelle, wird von einem tief eingebetteten System gesprochen. Beispiele für solche tief eingebetteten Systeme sind Herzschrittmacher und Subsysteme von Autos und Flugzeugen.

Eingebettete Systeme finden sich sowohl im Bereich der Hochtechnologie, wie z. B. der Luft- und Raumfahrt, der Medizintechnik, der Telekommunikation und der Automobil-Technik, als auch im Consumer- und Haushaltsgerätebereich.

Ein eingebettetes System ist dadurch charakterisiert, dass es, anders als z. B. ein PC , eine oder mehrere genau definierte Aufgaben hat. Es bildet soft- und hardwaremäßig eine funktionale Einheit, die nur diese definierten Aufgaben erfüllt. Die Software eingebetteter Systeme wird als Firmware bezeichnet und ist zumeist in einem Flash-Speicher, einem EPROM , EEPROM oder ROM gespeichert und durch den Anwender nicht oder nur mit speziellen Mitteln bzw. Funktionen austauschbar. Sie besteht im Wesentlichen aus dem Bootloader, dem Betriebssystem und der Anwendung, wobei spezialisierte Systeme auf ein Betriebssystem verzichten. Eingebettete Systeme sind zwar spezialisierte Geräte aber im Gegensatz zur reinen Hardwareimplementierung ( ASIC ) universelle Rechner. Als Plattformen kommen unterschiedliche CPU -Architekturen oder flexible hochintegrierte Field Programmable Gate Array (FPGA) Bausteine in Frage.

Eingebettete Systeme haben entweder keine Bedienschnittstelle oder nutzen Spezialperipherie, wie z.B. funktionelle Tasten, Drehschalter und auf den jeweiligen Einsatzzweck hin konzipierte Anzeigen. Das Spektrum an Ausgabeeinheiten reicht von einer einfachen Signallampe über LCDs bis hin zu komplexen Cockpit-Anzeigen. Eingebettete Systeme kommunizieren häufig über Datenbusse, die in komplexen Systemen heterogen vernetzt sind. Zusätzlich können über mehrere unterschiedliche und mehrkanalige Ein-/Ausgabeports Peripheriekomponenten wie Sensoren und Aktoren, angebunden sein. Einige Arten eingebetteter Systeme verfügen über ein Webinterface, über das per Browser Konfigurationseinstellungen vorgenommen werden können.

Die Anforderungen an eingebettete Systeme sind applikationsspezifisch, lassen sich aber wie folgt charakterisieren:

  • Robuste, störungsarme Funktion
  • Komplexität von Hard- und Software an Applikation angepasst
  • Antwortverhalten meist innerhalb definierter Zeitvorgaben
  • Mehrere unterschiedliche Schnittstellen (Datenbus, analoge und digitale I/O -Ports)
  • Direkte Interaktion mit Sensoren und Aktoren

Dieser Baustein beschäftigt sich allgemein mit eingebetteten Systemen und soll für ein großes Spektrum unterschiedlicher eingebetteter Systeme anwendbar sein. Auf dedizierte Sicherheitseigenschaften etwa von Bedien- und Anzeigesystemen oder spezifischen Hard- und Software-Architekturen wird nicht näher eingegangen.

Eine besondere Anwendung eines eingebetteten Systems sind Chipkarten. Die Karten besitzen in der Regel einen Prozessor, Arbeitsspeicher und I/O -Interfaces. Auch für Smartcards gilt, dass zwar grundsätzliche Sicherheitsaspekte in diesem Baustein angesprochen werden, allerdings keine spezifischen Aspekte betrachtet werden.

Der Baustein ist grundsätzlich für einen Informationsverbund mit einem oder mehreren eingebetteten Systemen anzuwenden, wenn diese den folgenden Kriterien entsprechen:

  • Das eingebettete System wird separat beschafft und ist kein integrierter Bestandteil eines umgebenden Systems.
  • Es ist möglich, die Prozesse der Auswahl, Beschaffung und ggf. Herstellung des eingebetteten Systems zu überwachen und zu beeinflussen.
  • Die Umsetzung der Maßnahmen dieses Bausteins ist möglich und überprüfbar.
  • Das eingebettete System bietet keine direkte Benutzerinteraktion.

Gefährdungslage

Für den IT -Grundschutz eingebetteter Systeme werden folgende typische Gefährdungen angenommen:

Höhere Gewalt

G 1.2Ausfall von IT-Systemen
G 1.8Staub, Verschmutzung

Organisatorische Mängel

G 2.26Fehlendes oder unzureichendes Test- und Freigabeverfahren
G 2.27Fehlende oder unzureichende Dokumentation
G 2.29Softwaretest mit Produktionsdaten
G 2.206Unzureichende Sicherheitsanforderungen bei der Entwicklung von eingebetteten Systemen
G 2.207Ungesicherte Ein- und Ausgabe-Schnittstellen bei eingebetteten Systemen
G 2.208Unzureichende physische Absicherung der elektronischen Komponenten bei eingebetteten Systemen

Technisches Versagen

G 4.22Software-Schwachstellen oder -Fehler
G 4.33Schlechte oder fehlende Authentikationsverfahren und -mechanismen
G 4.39Software-Konzeptionsfehler
G 4.43Undokumentierte Funktionen
G 4.100Hardwareausfall und Hardwarefehler bei eingebetteten Systemen

Vorsätzliche Handlungen

G 5.1Manipulation oder Zerstörung von Geräten oder Zubehör
G 5.2Manipulation an Informationen oder Software
G 5.16Gefährdung bei Wartungs-/Administrierungsarbeiten
G 5.23Schadprogramme
G 5.141Datendiebstahl über mobile Datenträger
G 5.201Einspielen (Flashen) von manipulierten Software-Updates/-Upgrades bei eingebetteten Systemen
G 5.202Seitenkanalangriffe auf eingebettete Systeme
G 5.203Physikalischer Eingriff in ein eingebettetes System
G 5.204Eindringen und Manipulation über die Kommunikationsschnittstelle von eingebetteten Systemen
G 5.205Einsatz gefälschter Komponenten
G 5.206Reverse Engineering

Maßnahmenempfehlungen

Um den betrachteten Informationsverbund abzusichern, müssen zusätzlich zu diesem Baustein noch weitere Bausteine umgesetzt werden, gemäß den Ergebnissen der Modellierung nach IT -Grundschutz.

Planung und Konzeption

Eine sorgfältige Planung und Konzeption ist für eingebettete Systeme unverzichtbar. Wird ein eingebettetes System selbst entwickelt oder ein Entwicklungsauftrag vergeben, sind die Grundsätze sicherer Entwicklung zu berücksichtigen (siehe M 2.378 System-Entwicklung ). Entwicklungswerkzeuge müssen fehlerfrei sein und dürfen nicht unerkannt manipuliert werden können (siehe M 2.567 Auswahl vertrauenswürdiger Entwicklungswerkzeuge ). Um bei erhöhtem Schutzbedarf das geforderte Sicherheitsniveau für ein eingebettetes System nachzuweisen, ist eine Überprüfung nach anerkannten Kriterien durchzuführen (siehe M 2.66 Beachtung des Beitrags der Zertifizierung für die Beschaffung ).

Die Sicherheitseigenschaften bzw. der Rahmen für Sicherheitsfunktionen eines eingebetteten Systems werden bereits durch konzeptionelle Festlegungen eingegrenzt. Bei der grundsätzlichen Entscheidung zur Software-Hardware-Aufteilung sind die unterschiedlichen Sicherheitseigenschaften der Realisierungen in Software oder Hardware zu berücksichtigen (siehe M 4.482 Hardware-Realisierung von Funktionen eingebetteter Systeme ). Zur Erhöhung der Systemstabilität sollte, falls erforderlich, ein hardware- oder softwarebasierter Speicherschutz implementiert werden (siehe M 4.484 Speicherschutz bei eingebetteten Systemen ). Das verwendete Betriebssystem sollte dem aktuellen Stand der Technik entsprechend absturzsicher sein und wenig Angriffspunkte aufweisen (siehe M 4.485 Sicheres Betriebssystem für eingebettete Systeme ). Um die Integrität und Vertraulichkeit von Programmen und Nutzdaten zu sichern, sollten kryptografische Verfahren eingesetzt werden (siehe M 4.90 Einsatz von kryptographischen Verfahren auf den verschiedenen Schichten des ISO/OSI-Referenzmodells ). In einem Hardware-Sicherheitsmodule (Trusted Platform Module) können Schlüssel sicher erzeugt und abgelegt werden und somit Informationen und Komponenten sicher authentifiziert werden (siehe M 4.483 Einsatz kryptographischer Prozessoren bzw. Koprozessoren (Trusted Platform Module) bei eingebetteten Systemen ).

Bereits in der Planungsphase sollen Regelungen für den späteren Betrieb festgelegt werden (siehe M 2.562 Regelung des Einsatzes von eingebetteten Systemen ).

Beschaffung

Bevor ein eingebettetes System beschafft wird, müssen dessen Anforderungen ermittelt werden. Die Kriterienliste muss auch die erforderlichen Sicherheitseigenschaften umfassen (siehe M 2.564 Beschaffungskriterien für eingebettete Systeme ). Die beschafften Systeme oder Komponenten müssen genau der Spezifikation entsprechen und der Beschaffungsprozess muss so gestaltet sein, dass er nicht manipulierbar ist. (siehe M 2.563 Auswahl einer vertrauenswürdigen Lieferanten- und Logistikkette sowie eines qualifizierten Herstellers für eingebettete Systeme ).

Umsetzung

Eingebettete Systeme sind in der Entwicklung und vor Aufnahme des Echtbetriebes im erforderlichen Umfang zu testen (siehe M 2.568 Testverfahren für Software ). Sie sind gegen physische Manipulationen zu schützen (siehe M 4.487 Tamper-Schutz (Erkennung, Verhinderung, Abwehr) bei eingebetteten Systemen ). Es dürfen nur die benötigten physikalischen und logischen Schnittstellen vorhanden sein und ein Zugang darf nur nach erfolgreicher Authentisierung möglich sein (siehe M 4.488 Deaktivieren nicht benutzter Schnittstellen und Dienste bei eingebetteten Systemen ). Der Bootprozess darf nicht kompromittierbar sein (siehe M 4.489 Abgesicherter und authentisierter Bootprozess bei eingebetteten Systemen ).

Betrieb

Falls das eingebettete System in rauer Umgebung betrieben wird, sollte es entsprechend geschützt sein (siehe M 1.81 Materielle Sicherung von eingebetteten Systemen ).

Änderungen an Konfigurationsparametern und der Firmware müssen sorgfältig geplant, durchgeführt und dokumentiert werden (siehe M 2.34 Dokumentation der Veränderungen an einem bestehenden System und M 4.78 Sorgfältige Durchführung von Konfigurationsänderungen sowie M 4.177 Sicherstellung der Integrität und Authentizität von Softwarepaketen ).

Im operativen Betrieb darf ein eingebettetes System keine Codeelemente enthalten, die nicht Bestandteil der Systemfunktionalität sind (siehe M 4.491 Verhindern von Debugging-Möglichkeiten bei eingebetteten Systemen ). Kryptovariablen dürfen nicht kompromittierbar sein (siehe M 4.34 Einsatz von Verschlüsselung, Checksummen oder Digitalen Signaturen und M 2.46 Geeignetes Schlüsselmanagement ). Falls ein Webserver integriert ist, dürfen nur die benötigten Komponenten und Funktionen installiert bzw. aktiviert werden und es sind gleichwertige Sicherheitsmechanismen zu konfigurieren wie bei Webservern im Bürobereich (siehe M 4.492 Sichere Konfiguration und Nutzung eines eingebetteten Webservers ).

Ein Mittel im Rahmen der Aufrechterhaltung der Sicherheit eines eingebetteten Systems ist die Überwachung des Systems bzw. seiner Einzelkomponenten. Sicherheitsrelevante Ereignisse im Betrieb eines eingebetteten Systems sind im Rahmen der technischen Möglichkeiten zu dokumentieren (siehe M 2.565 Protokollierung sicherheitsrelevanter Ereignisse bei eingebetteten Systemen ). Darüber hinaus sollten sämtliche Baugruppen eines eingebetteten Systems mit erhöhten Anforderungen an die Verfügbarkeit und Integrität integrierte Selbsttesteinrichtungen besitzen und nutzen (siehe M 4.490 Automatische Überwachung der Baugruppenfunktion (BIST) bei eingebetteten Systemen ).

Aussonderung

Mit der Aussonderung eines eingebetteten Systems dürfen keine vertraulichen Informationen zu Hardware, Software und Daten an Unberechtigte gelangen (siehe M 2.566 Sichere Aussonderung eines eingebetteten Systems ).

Notfallvorsorge

Bei erhöhten Anforderungen an die Verfügbarkeit sollten Mechanismen vorhanden sein, um die letzte funktionierende Konfiguration und den Auslieferungszustand wiederherzustellen (siehe M 6.163 Wiederherstellung von eingebetteten Systemen ).

Befinden sich auf einem eingebetteten System eingestufte Informationen, muss es eine Notlöschfähigkeit besitzen (siehe ebenfalls M 6.163 Wiederherstellung von eingebetteten Systemen ).

Planung und Konzeption

M 2.378(Z)System-Entwicklung
M 2.562(A)Regelung des Einsatzes von eingebetteten Systemen
M 4.34(Z)Einsatz von Verschlüsselung, Checksummen oder Digitalen Signaturen
M 4.482(C)Hardware-Realisierung von Funktionen eingebetteter Systeme
M 4.483(C)Einsatz kryptographischer Prozessoren bzw. Koprozessoren (Trusted Platform Module) bei eingebetteten Systemen
M 4.484(C)Speicherschutz bei eingebetteten Systemen
M 4.485(A)Sicheres Betriebssystem für eingebettete Systeme
M 4.486(Z)Widerstandsfähigkeit eingebetteter Systeme gegen Seitenkanalangriffe

Beschaffung

M 2.66(Z)Beachtung des Beitrags der Zertifizierung für die Beschaffung
M 2.563(Z)Auswahl einer vertrauenswürdigen Lieferanten- und Logistikkette sowie eines qualifizierten Herstellers für eingebettete Systeme
M 2.564(A)Beschaffungskriterien für eingebettete Systeme
M 2.567(Z)Auswahl vertrauenswürdiger Entwicklungswerkzeuge

Umsetzung

M 2.46(A)Geeignetes Schlüsselmanagement
M 2.568(A)Testverfahren für Software
M 4.487(Z)Tamper-Schutz (Erkennung, Verhinderung, Abwehr) bei eingebetteten Systemen
M 4.488(A)Deaktivieren nicht benutzter Schnittstellen und Dienste bei eingebetteten Systemen
M 4.489(C)Abgesicherter und authentisierter Bootprozess bei eingebetteten Systemen

Betrieb

M 1.81(A)Materielle Sicherung von eingebetteten Systemen
M 2.34(A)Dokumentation der Veränderungen an einem bestehenden System
M 2.565(A)Protokollierung sicherheitsrelevanter Ereignisse bei eingebetteten Systemen
M 4.78(A)Sorgfältige Durchführung von Konfigurationsänderungen
M 4.177(B)Sicherstellung der Integrität und Authentizität von Softwarepaketen
M 4.490(A)Automatische Überwachung der Baugruppenfunktion (BIST) bei eingebetteten Systemen
M 4.491(A)Verhindern von Debugging-Möglichkeiten bei eingebetteten Systemen
M 4.492(B)Sichere Konfiguration und Nutzung eines eingebetteten Webservers

Aussonderung

M 2.566(C)Sichere Aussonderung eines eingebetteten Systems

Notfallvorsorge

M 6.163(A)Wiederherstellung von eingebetteten Systemen

Stand: 15. EL Stand 2016