Dynamische Softwareanalyse

Sicher trotz COTS-Software

6. November 2014, 8:26 Uhr | Ralf Higgelke
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 1

Was sind »COTS«, »SOUP« oder »clear SOUP«?

Bevor wir fortfahren, ist eine Klärung der Definition von SOUP erforderlich. Manche Softwareanbieter unterscheiden auf inkorrekte Weise zwischen COTS und SOUP. So sei COTS Software, hinter der ein Hersteller stehe, während hinter SOUP niemand stehe. Diese Unterscheidung ist größtenteils irrelevant, da COTS so gut wie immer auch SOUP bedeutet. Die Prozesse, die bei der Entwicklung eingehalten wurden – oder auch eben nicht –, der Quellcode, die Fehlerhistorie – also praktisch alles, was wir bei einer selbst entwickelten Software selbstverständlich hätten – steht uns weder bei SOUP noch bei COTS in der Regel zu Verfügung.

Deshalb sollten wir lieber zwischen »undurchsichtiger Suppe« (SOUP) und »klarer Suppe« (clear SOUP) unterscheiden. Diese Unterscheidung basiert allein auf der Verfügbarkeit von Ergebnissen und Dokumenten, die unsere Aussagen zu den Risiken und Sicherheitsniveaus des auf SOUP aufgebauten Systems belegen können. Der Entwicklungsprozess eines COTS-Systems kann gut dokumentiert sein; sind diese Informationen jedoch nicht öffentlich einsehbar, ist die Software (undurchsichtige) SOUP. Im Gegensatz dazu machen Open-Source-Projekte wie Apache oder Linux sowohl den Quellcode als auch die Fehlerhistorie frei zugänglich. Quelloffene Software kann genau wie selbst entwickelte Software geprüft werden: Man kann sie mittels symbolischer Ausführung oder Codeüberdeckungsanalysen testen, und dank der verfügbaren Betriebshistorie sind die Ergebnisse statistischer Untersuchungen besonders relevant. Somit kann Open-Source-Software als »clear SOUP« gelten – wir können sie verifizieren und validieren, als hätten wir sie selbst geschrieben.

Trotz dieser Eigenschaften ist quelloffene Software nicht die optimale Lösung für medizintechnische Geräte, weil die Prozesse, unter denen die Software entwickelt wurde, nirgendwo sauber definiert und dokumentiert sind. Wir können nicht nachvollziehen, wie die Software entworfen und verifiziert wurde. Aber ohne dieses Wissen ist der Nachweis unserer Aussagen zur funktionalen Sicherheit nahezu unmöglich.

Klar ist aber: Wenn ein Anbieter von COTS-Software den Quellcode des Produkts und seine Fehlerhistorie veröffentlicht, dann nähern wir uns »clear SOUP«. Manche Anbieter gehen einen Schritt weiter und liefern nicht nur »clear SOUP«, sondern auch noch das »Rezept« dafür: Sie legen den genauen Entwicklungsprozess inklusive der gesamten Historie offen – im Endeffekt also eine wichtige informelle Prüfkette, die unsere Aussagen zur Verlässlichkeit der Software unterstützen kann. Andere gehen sogar noch weiter und geben alle Nachweise frei, die sie für ihre Produktzertifizierungen (z.B. IEC 61508 SIL3) bereitstellen mussten.

Dynamische Analyse von SOUP

Unabhängig davon, ob SOUP eingesetzt wird oder nicht, ist es das Gerät als Ganzes, das der IEC 62304 genügen muss. Um die Normkonformität zu belegen, sind gründliche Tests und Inspektionen sowohl der Applikation als auch der verwendeten APIs des Betriebssystems und Middleware-Stacks auf allen Systemebenen erforderlich: Unit-Tests, Subsystem-Tests, funktionale Bereichstests und Tests des gesamten Geräts. Instrumentierte Tests mit dynamischen und statischen Analysewerkzeugen können diese Schritte weniger kostspielig und dennoch vollständiger machen. Zudem liefern sie Berichte, welche die umfassende Codeüberdeckung belegen und sich für Zertifizierungsaudits des Geräts nutzen lassen.

Dynamische Analysen testen den übersetzten Quellcode – das gesamte Programm oder einzelne Teile – zur Laufzeit. Da bei der Analyse Code ausgeführt wird, testet man nicht nur den Quellcode, sondern auch Compiler, Linker, Entwicklungsumgebung und gegebenenfalls die Zielhardware. Dynamische Analyse umfasst im Allgemeinen strukturelle Überdeckungsanalysen und Unit-Tests. Gemeinsam stellen diese nicht nur eine effektive Methode zum Aufspüren von Fehlern dar, sondern liefern auch den Nachweis, welche Software wie ausgeführt und getestet wurde.


  1. Sicher trotz COTS-Software
  2. Was sind »COTS«, »SOUP« oder »clear SOUP«?
  3. Ziel der Analyse
  4. Anforderungen an ein COTS-Betriebssystem

Lesen Sie mehr zum Thema


Das könnte Sie auch interessieren

Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu QNX Software Systems GmbH & Co. KG

Weitere Artikel zu LDRA Inc.

Weitere Artikel zu Medizinelektronik