Rechtliche Pflichten im Zuge einer Softwareauslieferung

Know-how  –  8 Kommentare

Hersteller kommerziell eingesetzter Software haben aus rechtlicher Sicht viele Gründe, den Einsatz ihrer Software durch ihre Kunden zu beobachten, und die Pflicht, auch nach dem Release des Produkts kritische Programmierfehler zu beseitigen.

"Rückruf von UMTS-Handys, Softwarefehler kann Daten löschen". Oder: Ein Automobilhersteller "ruft weltweit etwa 2,5 Millionen Autos in die Werkstätten zurück. Der Grund ist ein Softwareproblem, das zu Schäden am Automatikgetriebe führen kann". Das sind nur zwei mögliche Beispiele für Produktrückrufe wegen Softwarefehlern. Leicht fällt Firmen ein solcher Schritt nicht. Neben hohen Kosten entsteht meist ein immenser Imageschaden, den kein Manager gerne verantwortet. Häufig sind Unternehmen aber zu solchen Maßnahmen verpflichtet. Denn es gibt zahlreiche gesetzliche Regelungen, die die Sicherheit von Produkten betreffen. Sie erfassen neben Hardware auch Software – egal, ob Standardprodukte oder Individualanfertigungen.

Sonderheft "Bessere Software"

Dieser Artikel ist einer von 35 Artikeln eines von heise Developer produzierten Sonderhefts zur Softwarequalität, das ab 21. Juni in jedem gut sortierten Zeitschriftenhandel zu kaufen ist.

Juristen sprechen hierbei von Produkthaftung. Sie unterscheiden zwischen der verschuldensabhängigen und der verschuldensunabhängigen Haftung des Herstellers. Sie greift unabhängig vertraglicher Gewährleistungsansprüche, beispielsweise nach Fertigstellung einer Auftragsentwicklung. Sie greift auch unabhängig gegebenenfalls vereinbarter Pflegeleistungen, die zeitlich meist über die Gewährleistungsfrist hinausgehen.

In Deutschland gilt für die verschuldensabhängige Haftung die Regelung in § 823 des Bürgerlichen Gesetzbuches (BGB). Wer rechtswidrig das Leben, den Körper, die Gesundheit, die Freiheit, das Eigentum oder ein sonstiges Recht eines anderen verletzt, muss dem Verletzten Schadensersatz leisten. Diese sehr allgemein gefasste Bestimmung spielt bei den meisten Schadensfällen eine wichtige Rolle. Sie umfasst neben Verkehrsunfällen Schäden an Nachbargrundstücken bei Baumaßnahmen, aber auch Schäden, die jemandem durch schadhafte Hardware- oder Softwareprodukte entstehen.

Wird jemand durch eine fehlerhafte Software verletzt oder kommt gar ums Leben, etwa weil ein zur Ampelsteuerung eingesetztes Programm zwei Ampeln gleichzeitig "grün" anzeigen lässt, ist eindeutig ein Schaden entstanden, der unter die Schadensersatzpflicht des § 823 BGB fällt, wenn es einen Verantworlichen gibt, den ein Verschulden dafür trifft. Juristen sprechen hier auch von deliktischer Haftung, da kein Vertragsverhältnis zwischen dem Verletzer und dem Verletzten bestehen muss. Es genügt ein Delikt gegen den Verletzten, um die Haftung auszulösen.

Daneben kann es um Schäden in einem Unternehmen gehen, bei denen die Ursachen in virenverseuchten Programmen oder durch kritische Sicherheitslücken eingeschleuste Malware zu suchen sind. Es können Produktionsanlagen für eine Weile ausfallen, Mitarbeiter können nicht produzieren, Gehälter nicht rechtzeitig ausgezahlt werden et cetera. Hier wird es schon schwieriger, denn die deliktische Haftung greift nur, wenn eine Eigentumsverletzung vorliegt. Ein virenverseuchtes IT-System wird jedoch durch den Virusbefall meist nicht beschädigt oder zerstört. Denn nach einer Virenbeseitigung oder Neuinstallation funktioniert es ja wieder, wenn nicht ausnahmsweise ein Fall wie bei Stuxnet gegeben ist. Allerdings kann auch der Verlust von Daten oder die Zerstörung der Ordnung in einer Datenbank eine Eigentumsverletzung darstellen, die Schadensersatzansprüche auslöst.

Weiter haftet der Softwarehersteller für Sicherheitslücken, die mittelbar durch den Einsatz von Malware Schaden verursachen. Hier sprechen die Juristen davon, dass derjenige, der eine Gefahrenquelle beherrscht – etwa der Softwarehersteller – auch für solche Schäden einstehen muss, die ein anderer unter Ausnutzung der Lücken verursacht. Selbstverständlich haftet der böswillige Verbreiter der Malware ebenfalls, nur wäre ein Anspruch gegen den Hersteller des Programms meist leichter durchzusetzen. Denn in der Regel bekommt man den Virenschreiber oder -verbreiter nicht zu fassen.

Sicherheitslücken in Software können also eine Haftung des Programmherstellers verursachen. Aber nicht jeder Fehler begründet eine Haftung des Herstellers. Bedeutend ist in dem Zusammenhang, ob ein Konstruktionsfehler vorliegt. Ein solcher wird angenommen, wenn bei der Programmherstellung der Stand von Wissenschaft und Technik nicht beachtet wurde. Es ist also die Frage zu stellen, ob unter Berücksichtigung dieses Standes der Hersteller bei Inverkehrbringen des Programms die Sicherheitslücken hätte erkennen müssen. Auch muss ein Hersteller dafür sorgen, dass Bedienungsfehler, Produktionsfehler et cetera gar nicht erst eintreten. Wenn es doch passiert, muss er alles Zumutbare unternehmen, um diese Fehlerquellen für die Zukunft auszuräumen.

Die Komplexität von Softwareprogrammen ist kein Grund dafür, den hohen Aufwand zu unterlassen, der mit der Beseitigung von Fehlern einhergeht. Insofern gilt nichts anderes als bei einem Konstruktionsfehler am Höhenruder von Flugzeugen, der einen Schaden wahrscheinlich macht. Ein Hersteller muss außerdem darauf achten, dass nur Softwareversionen auf den Markt gelangen, die sich auf dem neuesten Stand befinden. Darauf zu vertrauen, die Käufer würden schon etwaige im Internet abrufbare Patches aufspielen, wäre fahrlässig und würde daher im Zweifelsfall eine Haftung auslösen.

Mit seinen Patch Days reagiert Microsoft – hier stellvertretend für andere genannt – auch auf Sicherheitshinweise externer Experten und nicht nur auf eigene Erkenntnisse und Tests. Stellt ein Hersteller fest, dass infolge eines Programmierfehlers Leib oder Leben von Menschen bedroht sein können, ist er sogar verpflichtet, vor dem Gebrauch seiner Produkte zu warnen. Das gilt selbst dann, wenn ein Risiko noch nicht gewiss ist. Hier ist jedoch Vorsicht angeraten. Da eine öffentliche Warnung Dritte erst auf den Plan rufen könnte, muss der Hersteller abwägen, ob nicht ein stilles Beseitigen eines Fehlers in Form eines Patches im Einzelfall besser ist. Hier kommt es auf den Einzelfall an: Ein Computerprogramm, das zur Steuerung komplexer oder sicherheitsrelevanter Vorgänge, etwa zur Streckensicherung bei der Eisenbahn oder im medizinischen Bereich für das Stellen von Patientendiagnosen eingesetzt wird, unterliegt anderen Überwachungspflichten als etwa Computerspiele oder Anwendungen zur Textverarbeitung.

Der Hersteller muss gerade bei Produkten, die (auch) für Verbraucher bestimmt sind, dafür sorgen, dass sie sie einsetzen können, ohne dass ein Schaden entsteht. Bei Eingabegeräten für Fahrzeugnavigation etwa oder der programmgesteuerten Heizungsanlage muss er sich an dem am wenigsten informierten und am meisten gefährdeten Nutzer orientieren.

In aller Regel besteht keine Pflicht des Programmherstellers, fehlerhafte Programme zurückzurufen, um so einen vielleicht schadensträchtigen Einsatz zu vermeiden. Die deliktische Haftung verlangt an sich nur, dass der Hersteller vor dem Gebrauch seines Produkts warnt. Denn wenn es nicht eingesetzt wird, kann kein Schaden entstehen. Ob er sich in dem Fall wegen Verletzung des Vertrags in Anspruch nehmen lassen muss, weil eine bestimmungsgemäße Nutzung der Programme nicht mehr möglich ist, ist eine andere Frage.

Von Unternehmern kann man zudem verlangen, dass sie Firewalls und andere geeignete Maßnahmen zum Schutz vor Virenbefall oder sonstigen Angriffen von außen treffen. Auch darf sich der Hersteller von Standardsoftware darauf verlassen, dass sich Unternehmen durch automatische oder regelmäßig manuell abzurufende Sicherheitspatches vor Gefahren durch Softwarefehler weitgehend schützen. Wer Warnungen von Softwareherstellern zwar zur Kenntnis nimmt, aber nicht beachtet, ist am entstehenden Schaden mit Schuld. Schließlich gilt, dass, wenn erst einmal ein Schaden entstanden ist, der Geschädigte alles Zumutbare tun muss, damit der Schaden so gering wie möglich bleibt.