Soup steht für Software of unknown (oder uncertain) pedigree (oder provenance), also Software unbekannter / unsicherer Herkunft und ist ein Begriff, der im Zusammenhang mit den verwendeten sicherheitskritischen und an der Sicherheit beteiligten Systeme im Rahmen der Entwicklung medizinischer Software oder Medizinprodukten mit Embedded Software verwendet wird. Er ist unter anderem in der die Norm IEC 62304[1] Medizingeräte-Software – Software-Lebenszyklus-Prozesse (Deutsche Fassung EN 62304) definiert.[2]
Das bedeutet nicht etwa, dass der Hersteller der Software unbekannt ist, sondern dass die belegbaren Artefakte der Entwicklung, beispielsweise Lasten- und Pflichtenhefte, Testprotokolle, Architekturdokumente usw., nicht ausreichend für eine belastbare Aussage über Risiken der Software sind.[2] Beispielsweise kann ein Paket von Commercial off-the-shelf-Software zwar ausreichend belegt und dokumentiert sein. Wenn aber diese Dokumente nicht für die Öffentlichkeit zugänglich sind, so muss das Paket als Soup behandelt werden.[2] Soup ist Software, die nicht nachweisbar mit einem bekannten Softwareentwicklungsprozess oder einer bekannten -methodik hergestellt wurde.[3]
Andererseits werden Open-Source-Projekte, beispielsweise Apache HTTP Server oder Linux, zwar nicht durch ein bestimmtes kommerzielles Unternehmen entwickelt, aber durch das Offenlegen der Codes, der Fehlerdokumentation usw. und den vielfachen Gebrauch in der Praxis sind diese so transparent, dass sie auch in Medizinprodukten eingesetzt werden können.[2]
Eine Analyse von 3140 Rückrufen bei Medizinprodukten zwischen 1992 und 1998 durch die US-amerikanische Food and Drug Administration (FDA) kam zu dem Ergebnis, dass 7,7 % (242) dieser Rückrufe durch Softwarefehler ausgelöst wurden, von denen 79 % (192) dieser Fehler nach einem Software Upgrade aufgetreten waren.[4] Diese Erkenntnis löste eine Konzentration von Aktivitäten der Zulassungsbehörden rund um den Aktualisierungsprozess von Software aus.[4] Ein Teil dieser Aktivitäten behandelt die Risikobewertung und führte zur Entwicklung der Norm IEC 62304.[4]
Für einen Hersteller sicherheitskritischer Software oder sicherheitskritischer Produkte mit embedded Soup bedeutet dies eine Gefahr, weil die Einhaltung von geltenden Normen für sicherheitsrelevante Funktionen nicht nachgewiesen werden kann und die Funktion der Software bzw. Produkte mit embedded Software nicht in allen Betriebszuständen gewährleistet werden kann. Um die Risiken zu minimieren, werden sicherheitsrelevante Teile eines Systems von den unerwünschten Wirkungen von SOUP so gut wie möglich isoliert.[5]
Es ist nicht verboten, Soup zu verwenden. Es bedarf allerdings zusätzlicher Kontrollen und das Risiko der Verwendung von Soup muss im Risikomanagementplan berücksichtigt werden. Spezifische Praktiken müssen ergriffen werden, wenn Soup als Teil eines Medizingeräts verwendet wird. Diese zusätzlichen Maßnahmen können die Überprüfung der Softwareentwicklungsprozesse des Anbieters, die Verwendung von umfassenden statischen Programmanalysen durch den Hersteller und Sicherheitsrichtlinien sein.[6]