Die Embedded-Linux-Distribution eignet sich für IIoT-angebundene Edge-Systeme kritischer Infrastrukturen der Energie- und Versorgungswirtschaft, industrielle Automatisierung und Medizintechnik sowie für Automotive-, Railway- und Aerospace-Anwendungen.

Die Embedded-Linux-Distribution eignet sich u.a. für IIoT-angebundene Edge-Systeme kritischer Infrastrukturen der Energie- und Versorgungswirtschaft. (Bild: Sysgo)

Die Unterstützung verschiedener Boards im Linux-Kernel ist mittlerweile Standard und die meisten Board-Hersteller liefern angepasste Versionen. Bei genauerem Blick auf das, was die Hersteller in Board Support Packages (BSP) für ihre Boards zur Verfügung stellen, wird schnell klar, dass es unterschiedliche Ansätze gibt. Während einige solche BSPs selbst entwickeln, verwenden andere vorgefertigte BSPs, zum Beispiel aus dem Yocto-Projekt. Außerdem ist es nicht das Kerngeschäft der Hersteller, diese Systeme über mehrere Jahre hinweg mit aktualisierten Paketen und Sicherheitsupdates zu versorgen. Ihr Schwerpunkt liegt auf dem Verkauf von Boards, nicht auf der Pflege von Linux-BSPs. Infolgedessen werden solche BSPs oft nur über relativ kurze Zeiträume von ein bis zwei Jahren aktualisiert, was besonders für langlebige Embedded-Systeme in Fragen der IT-Sicherheit bedenklich ist.

Warum Embedded Linux?

Bei Board Support Packages (BSP) gibt es unterschiedliche Ansätze der jeweiligen Hersteller, aber meist nur mit einem kurzen Support für Sicherheitsupdates. Eine Linux-Distribution mit Paketpflege ist ein für Embedded-Systeme zugeschnittenes BSP, das strengen Safety- und Security-Anforderungen entspricht. Zusätzlich bietet es mindestens fünf Jahre Support für Updates, auch Over-the-Air. Die Embedded-Linux-Distribution eignet sich u.a. für IIoT-angebundene Edge-Systeme kritischer Infrastrukturen der Energie- und Versorgungswirtschaft, industrielle Automatisierung und Medizintechnik sowie für Automotive-, Railway- und Aerospace-Anwendungen.

Die Unterstützung verschiedener Boards im Linux-Kernel ist mittlerweile Standard und die meisten Board-Hersteller liefern angepasste Versionen. Bei genauerem Blick auf das, was die Hersteller in Board Support Packages (BSP) für ihre Boards zur Verfügung stellen, wird schnell klar, dass es unterschiedliche Ansätze gibt. Während einige solche BSPs selbst entwickeln, verwenden andere vorgefertigte BSPs, zum Beispiel aus dem Yocto-Projekt. Außerdem ist es nicht das Kerngeschäft der Hersteller, diese Systeme über mehrere Jahre hinweg mit aktualisierten Paketen und Sicherheitsupdates zu versorgen. Ihr Schwerpunkt liegt auf dem Verkauf von Boards, nicht auf der Pflege von Linux-BSPs. Infolgedessen werden solche BSPs oft nur über relativ kurze Zeiträume von ein bis zwei Jahren aktualisiert, was besonders für langlebige Embedded-Systeme in Fragen der IT-Sicherheit bedenklich ist.

Bild 1: Innerhalb der integrierten Entwicklungsumgebung Codeo lassen sich mittels Feature Configurator alle Komponenten von systemd bedarfsgerecht zu- oder abwählen.
Bild 1: Innerhalb der integrierten Entwicklungsumgebung Codeo lassen sich mittels Feature Configurator alle Komponenten von systemd bedarfsgerecht zu- oder abwählen. (Bild: Sysgo)

Sysgo füllt diese Lücke mit ELinOS. Das ELinOS ist nicht nur eine auf den Embedded-Markt, mit seinen strengen Safety- und Security-Anforderungen, zugeschnittene Linux-Distribution, sondern kümmert sich auch um die Paketpflege. Zusammen mit der Debiancommunity werden sicherheitskritische Patches gepflegt und Sysgo garantiert den Support, für mindestens fünf Jahre – und kann bei Bedarf auf zehn Jahre und darüber hinaus verlängert werden. Die Auslegung von ELinOS lässt sich konsequent an die Anwenderanforderungen anpassen und ermöglicht so ressourcenschonende Installationen, was für Embedded-Systeme essentiell ist.

Dadurch erhält der Entwickler ein Lightweight-Linux mit sehr kleinem Memory Footprint, das aber alle vom Entwickler benötigten Features mitbringt. Durch das gezielte Weglassen von nicht benötigen Komponenten reduziert sich zugleich die Angriffsfläche für Cyberattacken. Das allein ist jedoch nicht das Alleinstellungsmerkmal, da es zahlreiche leichtgewichtige Distributionen gibt. ELinOS verfügt über ein Feature, das im Markt für Industrial-Security-Linux im Hinblick auf die Benutzerfreundlichkeit sonst nicht zu finden ist: Der Feature Configurator erlaubt es, ELinOS entsprechend den betrieblichen Anforderungen eines Projekts auf bequeme Weise, sehr schnell und umfassend zu konfigurieren, um so die gewünschten Funktionalitäten zu erhalten, die einen raschen Einsatz eines Systems ermöglicht. Dadurch verringert sich die Time-to-Market. Das Ergebnis ist einerseits ein schlankes und damit potenziell sichereres Embedded Linux, andererseits ist das Zielsystem leicht anpassbar.

Mit der SELinux-Erweiterung, CAPP-compliance, ASLR-Support, der Testsuite um ANSSI-Konformität zu erlangen und der guten Unterstützung von cgroups, lässt sich außerdem auf bequeme Weise das Linux bzw. eingebettete System härten. Der Support rundet das Angebot ab. Dieses Komplettpaket unterstützt Entwickler bei ihren Kernaufgaben, der Implementierung ihrer Anwendung und der Wartung des Produktes über mehrere Jahre hinweg mit dem Vorteil, dass Projekte vergleichsweise schnell, sicher und vor allem einfach durchgeführt werden können. Dies ist besonders wichtig im Hinblick auf Industrie 4.0, wenn Systeme in immer größerem Umfang miteinander vernetzt sind, was sie potenziell angreifbarer macht und eine gute Handhabbarkeit und Unterstützung erfordert. Ein kontinuierliches Monitoring aktueller Sicherheitsrisiken und die Versorgung der Pakete mit Patches sind daher unabdingbar – ohne dabei Zugeständnisse an den Funktionsumfang und die grundlegende Sicherheitsarchitektur machen zu müssen.

Bild 2: Beim Starten der Entwicklungsumgebung synchronisiert sich das Product Update Tool automatisch mit dem Download-Server und zeigt die verfügbaren Sicherheits- und weiteren Paket-Updates an.
Bild 2: Beim Starten der Entwicklungsumgebung synchronisiert sich das Product Update Tool automatisch mit dem Download-Server und zeigt die verfügbaren Sicherheits- und weiteren Paket-Updates an. (Bild: Sysgo)

Ausgelegt für Embedded

Aktuell in der Version 7.1 von ELinOS wird der Fokus auf die Sicherheit konsequent weitergeführt. In dieser Version wird die Versorgung mit sicherheitskritischen Aktualisierungen und Paketupdates weiter vereinfacht. Industrielle Stärke – u.a. durch Unterstützung von Bluetooth-Classic-SPP- und PAN-Profilen und das Bluetooth Low Energy GATT – und eine benutzerfreundliche Oberfläche gehen Hand in Hand mit einem umfangreichen Toolset und langfristigem Support über den gesamten Lebenszyklus. Insbesondere die Pflege der enthaltenen Pakete sowie ein aktives Monitoring von entdeckten Sicherheitslücken sorgen für ein hohes Maß an Sicherheit. Darüber hinaus bietet Sysgo technischen Support durch Mitarbeiter, die auch in der Kernel-Community aktiv sind und ist Mitglied der Linux Foundation.

Um der Vielzahl der heute verfügbaren Embedded Plattformen und I/O-Möglichkeiten gerecht zu werden, verwendet ELinOS eine aktuelle Auswahl an Paketen für die jeweilige Architektur. Es basiert zudem auf einem stabilen Linux-Kernel mit langfristiger Unterstützung durch die Community (Long Term Support, LTS).

ELinOS ist eine industrielle Linux-Distribution, die nativ auf einem Zielsystem, aber auch als Instanz bzw. Partition unter Sysgos Echtzeitbetriebssystem und Hypervisor PikeOS läuft. Mit diesem Hypervisor kann zeitkritische Software deterministisch und parallel zu ELinOS ausgeführt werden, ohne dass dies Auswirkungen auf sicherheitskritische Anwendungen hat. Das Zusammenspiel zwischen PikeOS und dem sicheren Industrie-Linux-System ELinOS wurde ab ELinOS 7.0 durch eigene Pools verbessert. ELinOS ist zudem besonders einsteigerfreundlich: Durch den einfachen Zugang eignet sich die Distribution besonders für Entwickler, die neu im Bereich Embedded Linux sind. ELinOS enthält die vorkompilierte Cross-Compiling-Umgebung, um direkt mit der Entwicklung des Systems zu beginnen.

Dank der vergleichsweise einfach zu bedienenden Eclipse-basierten IDE Codeo und Assistenten lässt sich ein System nach Anwenderwunsch in wenigen Minuten erstellen. Ein effizientes Build-System mit vorkompilierten Paketen ermöglicht kurze Vorlaufzeiten in kritischen Entwicklungsphasen, und Skripte erlauben es, Build- und Testszenarien mit nur einem Klick zu implementieren. Durch die einfache Trennung zwischen Linux-Kernel, BSP und Entwicklerprojekt ist es möglich, schnell neue Treiber zu integrieren und Anwendungen zu entwickeln.

Bild 3: Dank SELinux-Erweiterung, CAPP-Compliance, ASLR-Support, einer Testsuite zur Erglanung der ANSSI-Konformität und die Unterstützung von cgroups lassen sich ELinOS-basierte eigebettete Systeme härten.
Bild 3: Dank SELinux-Erweiterung, CAPP-Compliance, ASLR-Support, einer Testsuite zur Erglanung der ANSSI-Konformität und die Unterstützung von cgroups lassen sich ELinOS-basierte eigebettete Systeme härten. (Bild: Sysgo)

Breite Hardware-Unterstützung

ELinOS bietet eine breite Unterstützung für viele Boards und baut diese konsequent aus, zum Beispiel mit einem BSP für Freescale/NXP i.MX8 QXP MEK. OEMs können auf anwenderspezifische BSPs zurückgreifen, die auf bestimmte Hardware-Produkte zugeschnitten sind und die Support-Teams entlasten. Darüber hinaus hilft Sysgo bei der Portierung von ELinOS auf spezifische Hardware und bietet Unterstützung für das On-Board-Setup. Für Soft-Echtzeit-Anwendungen wurde der Linux-Realtime-Patch (PREEMPT_RT) integriert. Bei Verwendung des PikeOS-Hypervisors können sicherheitskritische Systeme mit einer vollständig kompatiblen Linux-Instanz erweitert werden.

Eclipse-basierte IDE

Die Entwicklungsumgebung für ELinOS ist die Eclipse-basierte IDE Codeo. Mit Codeo steht Systemarchitekten ein grafisches Konfigurationswerkzeug zur Verfügung. Für die Entwicklung von Embedded-Anwendungen enthält Codeo umfangreiche Werkzeuge, um Embedded-Projekte zeit- und kosteneffizient abzuwickeln:

  • Geführte Konfiguration
  • Remote-Debugging (bis auf die Hardware-Befehlsebene)
  • Target-Überwachung
  • Remote-Deployment von Anwendungen
  • Timing-Analysen

Codeo enthält Standardfunktionen für die Anwendungsentwicklung wie Debugger, Compiler, Assembler und Linker. Eine QEMU-basierte Hardwaresimulation unterstützt die Entwickler bei der Simulation der Zielhardware auf dem Entwicklungssystem. Diese Hardwaresimulation ist für alle verfügbaren Architekturen verfügbar und kann über einen grafischen Assistenten direkt in der IDE verwaltet und konfiguriert werden. Dies ermöglicht eine schnelle Softwareentwicklung, frühes Testen und Debuggen auch ohne reale Zielhardware.

Der Dateisystem-Editor ermöglicht eine effiziente Verwaltung von Dateien und Konfigurationen. Dateien lassen sich direkt zum Dateisystem hinzufügen und entfernen. Darüber hinaus bietet er eine dynamische Vorschau des endgültigen Layouts, die automatisch aktualisiert wird, wenn sich die zugehörige Konfiguration ändert, was sich direkt auf das Dateisystem auswirkt.

Mehrere dedizierte grafische Editieransichten unterstützen den Systemintegrator dabei, stets den Überblick über wichtige Aspekte der ELinOS-Systemkonfiguration zu behalten, mit Plug-ins für Zielanalysen wie Systemüberwachung, Tracing oder Debugging.

Mit wiederverwendbaren Templates lassen sich Projekte einfach definieren und an Entwicklungsgruppen verteilen. Die Entwickler können vordefinierte Komponenten für ihr Projekt konfigurieren und während des Entwicklungsprozesses zusätzliche Komponenten definieren und hinzufügen.

Als integrierte Entwicklungsumgebung für Embedded-Systeme unter Linux bietet ELinOS eine Vielzahl von Werkzeugen, unterstützt geeignete Boot-Strategien, ist durch seine grafische Benutzeroberfläche einfach zu bedienen und für gängige Embedded Hardware verfügbar. Dies ermöglicht ein nahtloses Arbeiten von der Treiberentwicklung bis zur Anwendungsintegration.

Die seit April 2022 verfügbare aktuelle Version 7.1 von ELinOS basiert auf dem Linux-Kernel 5.10 mit Langzeitunterstützung und Echtzeit-Erweiterungen und unterstützt native 64-Bit-Entwicklungssysteme unter Windows und Linux. Die Toolchain umfasst gcc v8.3 und binutils v2.31; die Standardbibliothek glibc ist in der Version v2.31 verfügbar.

Bild 4: Adressraum-Layout-Randomisierung (ASLR) ist ein Sicherheitsfeature gegen den Missbrauch von Pufferüberläufen in Prozessen. Sie verwendet zufällige Positionen für ELF-Abschnitte.
Bild 4: Adressraum-Layout-Randomisierung (ASLR) ist ein Sicherheitsfeature gegen den Missbrauch von Pufferüberläufen in Prozessen. Sie verwendet zufällige Positionen für ELF-Abschnitte. (Bild: Sysgo)

System- und Servicemanager systemd nun integriert

Seit der Version 7.1 wurde erstmals der System- und Servicemanager systemd integriert. Dieser erhöht die Responsivität von Linux-Systemen und beschleunigt vor allem komplexe Bootszenarien, da er durch Parallelisierung der Prozesse weniger Verzögerungen verursacht. Zudem erleichtert systemd das Handling von Abhängigkeiten zwischen Services mit den darüber erzielbaren Performancegewinnen. Innerhalb der integrierten Entwicklungsumgebung Codeo können mittels Feature Configurator zudem alle Komponenten von systemd bedarfsgerecht zu- oder abgewählt werden, um eine maßgeschneiderte und damit footprint- und performanceoptimierte systemd-Konfigurationen zu erhalten. Auch anwendungsspezifische Shell-Scripte lassen sich einfach implementieren. Anwender, die zu systemd eine Alternative suchen, können in ELinOS 7.1 optional BusyBox init nutzen.

Mehr Sicherheit

Noch sicherer werden ELinOS-7.1-basierte Embedded-Linux-Images durch das neue Product-Update-Tool, welches den Workflow für das Einspielen neuer Security- und Service-Patches erleichtert und beschleunigt. Beim Starten der Entwicklungsumgebung synchronisiert es sich automatisch mit dem Sysgo-Download-Server und zeigt die verfügbaren Sicherheits- und weiteren Paket-Updates an. Diese können sodann bedarfsgerecht entweder über das grafische Benutzerinterface mit nur einem Klick oder über die Befehlszeilenschnittstelle installiert werden. Abhängigkeiten zwischen diesen – digital signierten und vor Installation verifizierten – Paketen werden dabei automatisch berücksichtigt. In Kombination des Over-the-Air-Update-Tools für Target Devices lassen sich so Sicherheitsupdates für dedizierte Linux Images verzögerungsfrei auf dem Target-System im Feld ausrollen. In Zeiten zunehmender Bedrohungen vor Cyberattacken ist schließlich neben einer sicheren Systemauslegung nach Stand der Technik auch ein schnelles und komfortables Updatemanagement entscheidend. Wichtig war deshalb beim Release 7.1 nach dem Support der Kernelerweiterung Security-Enhanced Linux (SELinux), der Aktivierung von Address Space Layout Randomization (ASLR) und dem Launch des Over-the-Air Update Tools für Target Devices auch das Build-Environment tagtäglich mit nur einem Klick auf den neusten Stand bringen zu können.

Um den Anwendern die Möglichkeit zu geben, ihre Systeme auf Sicherheit zu überprüfen, bietet ELinOS eine selbstentwickelte Testsuite an. Diese ist angelegt an die Regeln der French National Cybersecurity Agency (ANSSI) und erlaubt es das System auf Schwachstellen innerhalb der Konfiguration zu überprüfen. Zusätzlich ist es über den Feature Configurator möglich, auf einfache Art und Weise diverse sicherheitsrelevante Konfigurationen abzusichern. Weitere Features des ELinOS-7.1-Ecosystems sind erweiterte IPv6-Funktionalität, unterschiedliche Algorithmen zur Komprimierung von Linux Images sowie der Support von Raspberry Pi4. (na)

David Engraf, Sysgo
(Bild: Sysgo)

David Engraf

Head of Product Development bei Sysgo

Sie möchten gerne weiterlesen?

Unternehmen

SYSGO GmbH

Am Pfaffenstein 8
55270 Klein-Winternheim
Germany