Grammatech

Sichere Software sorgt für sichere Medizingeräte

| Autor / Redakteur: Mark Hermeling / Kathrin Schäfer

Bereits in der Entwicklungsphase sollte man sich auf die Softwaresicherheit von Medizingeräten konzentrieren. Es gilt aber auch: Für systemweite Bedrohungseinschätzungen bei einem Produkt ist es grundsätzlich nie zu spät.
Bereits in der Entwicklungsphase sollte man sich auf die Softwaresicherheit von Medizingeräten konzentrieren. Es gilt aber auch: Für systemweite Bedrohungseinschätzungen bei einem Produkt ist es grundsätzlich nie zu spät. (Bild: gemeinfrei / CC0)

Software spielt bei medizinischen Geräten eine immer größere Rolle. Damit steigen auch die Risiken. Denn Sicherheitslücken durch Programmierfehler können lebensbedrohlich werden. Idealerweise werden Fehler also bereits während der Entwicklung entdeckt.

  • Programmierfehler in Medizingeräten vermeiden
  • Digitale Transformation und IT-Sicherheit in der Medizintechnik
  • Fehler innerhalb der Software Development Lifecycles (SDLC) verringern
  • Risikomanagement über den gesamten Produktlebenszyklus

Die Zahl der Warnungen vor Sicherheitslücken bei medizinischen Geräten steigt seit geraumer Zeit an. Immer häufiger zeigen sich schwerwiegende Probleme in kritischen Geräten, die auf unentdeckte Programmierfehler zurückzuführen sind. Meist lesen sich die Beschreibungen zu Ursache und Angriffsvektor wie aus dem Handbuch der IT-Sicherheit: Fest einprogrammierte Zugangsdaten für externe Zugriffe, Code-Manipulationen durch Zugriffe auf unsichere Datenquellen und dergleichen mehr. Davon betroffen sind nicht nur kleine Nischenanbieter.

Die Spitze des Eisbergs bislang:

  • 2016: Der Pharmahersteller Johnson & Johnson warnt seine Kunden in den USA und Kanada, dass eine seiner Insulinpumpen gehackt werden könnte.
  • 2017: Eine halbe Million US-Patienten mit Herzschrittmachern des Herstellers St. Jude Medical mussten in die Kliniken, um wegen schwerwiegender Sicherheitslücken ein Firmware-Update aufspielen zu lassen.

Drahtlose Elektrokardiogramm-Geräte von GE, CT-Systeme von Philips – die Liste lässt sich fast beliebig fortsetzen. Die digitale Transformation macht auch vor der Medizintechnik nicht halt, die Komplexität der Embedded Devices und der zugehörigen Anwendungen steigt rasant. Trotz der strengen Vorgaben, wie sie im Medizinproduktegesetz (MPG), der jüngsten EU-Verordnung 2017/745 oder der einschlägigen Norm IEC/EN 62394 verankert sind, lassen sich Fehler innerhalb der Software Development Lifecycles (SDLC) nicht völlig ausschließen. Doch sie lassen sich signifikant minimieren.

Je früher, umso einfacher: Softwarefehler lassen sich signifikant minimieren

Die einfachste Phase innerhalb der SDLC, Fehler zu finden, ist die Entwicklung. Hier liegt die Software als Quellcode vor und kann mit Hilfe der statischen Analyse auf Fehler wie Buffer Overruns oder Nullpointer Dereferences untersucht werden.

Verdienen Sie genug? Der große Gehaltsreport IT & Industrie

Gehaltsreport IT und Industrie 2018

Verdienen Sie genug? Der große Gehaltsreport IT & Industrie

Was verdienen Arbeitnehmer in den unterschiedlichen Branchen konkret? In welchem Bundesland sind die Unternehmen besonders spendabel? Wie viele Wochenarbeitsstunden werden geleistet und wie zufrieden sind die Mitarbeiter? Wir haben nachgefragt. weiter...

Im Gegensatz zum dynamischen Testing wird der Code bei der statischen Analyse nicht ausgeführt, sondern es werden anhand eines Modells alle Steuerungs- und Datenflüsse durchlaufen. So können auch Fehler gefunden werden, die im Testing verborgen bleiben. Dabei gilt die Regel: Je früher Fehler innerhalb des SDLC gefunden werden, desto weniger Kosten und Aufwände verursacht ihre Beseitigung.

Es reicht nicht aus, nur die Entwicklungsphase zu betrachten

Allerdings reicht es nicht, nur die Entwicklungsphase eines Produkts aus der Sicherheitsperspektive zu betrachten. Denn zum einen schreiben die einschlägigen Normen und Vorschriften ein Risikomanagement über den gesamten Produktlebenszyklus hinweg vor. Zum anderen geht von Aktualisierungen der Software ein erhebliches Risiko aus: Fast jede Anwendung nutzt Codeteile aus externen Quellen, etwa Kryptografie-Bibliotheken oder Windowing-Toolkits. Diese liegen oft nur in binärer Form vor, können also von den Entwicklern nicht geprüft werden. Updates oder andere Änderungen an diesen Codeteilen können die sichere Funktion der gesamten Software gefährden, ein regelmäßiges Review ist also zwingend notwendig. Hier nimmt die statische Analyse eine wichtige Rolle ein.

Für systemweite Bedrohungseinschätzungen bei einem Produkt ist es grundsätzlich nie zu spät. Oft ist dafür jedoch externes Know-how gefordert. Viele Unternehmen schrecken davor aus Angst um ihr geistiges Eigentum zurück. Oder die möglichen Auswirkungen der Einschätzung auf Produkte und Projekte lassen sie davon Abstand nehmen.

Trotzdem sind solche Beurteilungen langfristig für die Sicherheit sehr wichtig. Das Unternehmen und die Entwickler gewinnen daraus wertvolle Erkenntnisse zu Angriffsflächen und möglichen Bedrohungen. Diese Sicherheitsbeurteilungen erfolgen in der Regel noch manuell ohne den Einsatz von Tools, sie bilden den ersten wichtigen Schritt hin zu einer besseren Produktsicherheit.

Statische Analyse: einen klaren Weg für Verbesserungen finden

Daran schließt sich in der Regel ein Security Audit an. Dieses beschränkt sich zwar nicht auf Quellcode und binäre Dateien. Dennoch spielt auch hier die statische Analyse eine wichtige Rolle, um die gesamte Codebasis zu evaluieren. Das Ergebnis aus Bedrohungseinschätzung und Audit ist eine To-do-Liste, wie das Produkt verbessert werden sollte – der wirtschaftliche Aspekt der Maßnahmen bei Produkten im Feld ist eine andere Frage. Hier geht es zunächst darum, den aktuellen Status Quo in Sachen Sicherheit zu erkennen und einen klaren Weg für Verbesserungen zu finden.

Hierfür ist ein sehr detailliertes Wissen über den Code, die genutzten Bibliotheken beziehungsweise Objekte und die Datenquellen notwendig. Die statische Analyse leistet dazu einen signifikanten Beitrag – auch, wenn sie eigentlich ihren Platz in der Software-Entwicklung hat. Durch den Ansatz, alle Pfade im Code zu durchlaufen, weist die statische Analyse die Entwickler auf potenzielle Probleme, Fehler oder mögliche Risiken einer Datenquelle hin.

Moderne Tools wie Code-Sonar von Grammatech liefern dabei sehr genaue und ausführliche Informationen, viele Prozesse der Analyse lassen sich zudem automatisieren. Eine Besonderheit von Code-Sonar besteht darin, dass damit auch binäre Codes untersucht werden können. So ist es im Audit möglich, alle Software-Bestandteile in ihrem Zusammenspiel zu betrachten und Sicherheitslücken zu finden, die sich durch eingebundene Bibliotheken oder ähnlichen Bestandteilen der Anwendung ergeben und die durch dynamische Testverfahren nur sehr schwer aufzudecken sind. Ein geeignetes Risikomanagement für diese als SOUP (Software of unknown pedigree) bezeichneten Bestandteile wird inzwischen von der amerikanischen Gesundheitsbörde FDA als Zulassungsvoraussetzung gefordert.

Auch wenn die Möglichkeiten begrenzt sind, Codebestandteile Dritter zu fixen: Das Wissen um Schwachstellen in diesen Elementen kann als Indikator für die Sicherheit des gesamten Codes dienen. Es geht darum, die Auswirkungen auf das eigene Risikomanagement genau zu verstehen und daraus Handlungsempfehlungen abzuleiten. Das Ziel ist letztlich, potenzielle Sicherheitsprobleme so frühzeitig zu erkennen und zu adressieren, dass kein relevanter Schaden durch das Produkt – und damit für das Unternehmen – entsteht. Die statische Analyse als Komplementär zum dynamischen Testing kann dabei über den gesamten Produktlebenszyklus helfen. Gerade bei Embedded-Devices in der Medizintechnik sollte dieses Vorgehen, das in anderen sicherheitskritischen Branchen bereits Standard ist, nicht fehlen.

Lesen Sie auch:

Software als Medizinprodukt: Definitionen und Handlungsempfehlungen

Grundlagenartikel

Software als Medizinprodukt: Definitionen und Handlungsempfehlungen

13.06.18 - Software erfordert immer häufiger eine Zulassung als Medizinprodukt. Wann genau ist das der Fall und was ist dabei zu beachten? Grundlagenwissen für Medizinprodukte-Hersteller. lesen

Vernetzt? Aber sicher! Safety, Security und Privacy in der Medizintechnik

Vernetzt? Aber sicher! Safety, Security und Privacy in der Medizintechnik

28.03.18 - Digitalisierung ist der Trend im Gesundheitswesen. Doch vernetzte Medizingeräte müssen dabei sicher bleiben – vor unerlaubten Zugriffen, Datenklau und Manipulationen. lesen

Weitere Artikel über Software in Medizingeräten finden Sie in unserem Themenkanal Konstruktion.

* Mark Hermeling ist Senior Director Product Management bei der Grammatech, Inc.

Kommentare werden geladen....

Diesen Artikel kommentieren

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

DER COMMUNITY-NEWSLETTER Newsletter abonnieren.
* Ich bin mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung einverstanden.
Spamschutz:
Bitte geben Sie das Ergebnis der Rechenaufgabe (Addition) ein.
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45436542 / Konstruktion)