GULP >> GULP Knowledge Base >> Law & Order >> Vertragsgestaltung >> Haftung für Sicherheitslücken

Haftung für Sicherheitslücken

(Dezember 2005)
Inhalt dieses Artikels:
Was ist ein Fehler? | Wer muss was beweisen? | Zeitnahe Beseitigung | Kostenfreie Beseitigung | Öffentliche Hinweispflicht | Schadensumfang | Haftungsausschlüsse in Verträgen
Ihre Meinung zum Artikel
sehr gut
1
2
3
4
5
6
schlecht
 

Hundertprozentigen Schutz vor Sicherheitslücken kann eine Programmierung nicht bieten. Ein Programmierer und Auftragnehmer lebt mit dem ständigen Risiko, dass seine Arbeit zu Schäden beim Kunden und Auftraggeber führt. In den Verträgen werden trotz dieses Risikos die Sicherheitsanforderungen häufig nicht näher definiert. Der Rechtsexperte Thomas Feil erläutert Haftungsregelungen und Rechte des Auftraggebers bei fehlerhafter Programmierung.

 

Was ist ein Fehler?
nach oben
   

Wenn Programmierer und Juristen von einem Softwarefehler sprechen, gehen sie von zwei unterschiedlichen Begriffen aus. Bei der rechtlichen Beurteilung der Frage, ob ein Fehler vorliegt, wird nicht auf den Fehlerbegriff der Informatik abgestellt. Für die juristische Sichtweise ist es beispielsweise unerheblich, ob das Programm an sich laufen könnte und insofern isoliert betrachtet funktionsfähig wäre. Dies steht einem "juristischen" Mangel nicht entgegen.

Das Bürgerliche Gesetzbuch (BGB) fordert für Kaufverträge, dass eine Kaufsache frei von Sachmängeln zu sein hat (§ 433 Abs. 1). Dabei differenziert das Gesetz nicht zwischen erheblichen und unerheblichen Mängeln. Aus Sicht des Gesetzgebers hat ein Verkäufer eine fehlerfreie Programmierung oder ein fehlerfreies Programm zu liefern. Auch für Werkverträge stellt der Gesetzgeber die Forderung auf, dass das zu erstellende Werk frei von Sach- und Rechtsmängeln sein muss (§ 633 BGB).

Ohne genauere vertragliche Angaben kann beispielsweise bei der Programmierung von Websites erwartet werden, dass wie bei jedem anderen technischen Produkt der Stand der Technik eingehalten wird. Wird dieser Stand der Technik unterschritten, so liegt ein haftungsbegründeter Sicherheitsmangel vor. Zum Stand der Technik können, je nach Umfang der Beauftragung, auch Firewalls und Scan-Programme gegen zum Zeitpunkt der Programmerstellung gängige und bekannte Viren zählen. Allerdings müssen Firewalls nicht unüberwindlich sein. Auf absehbare Sicherheitslücken oder beispielsweise den Einsatz von offenen Protokollen sollte vertraglich hingewiesen oder in den vertraglichen Regelungen die geschuldeten Schutzmaßnahmen konkret beschrieben werden.

 

Wer muss was beweisen?
nach oben
   

Den Nachweis, dass eine Sicherheitslücke wegen fehlerhafter Programmierung vorliegt, muss der Käufer oder Auftraggeber erbringen. Ihm obliegt also die Beweislast. Ausnahme: Der Käufer ist ein Verbraucher und kein Unternehmen. Bei einem Kaufvertrag kommen ergänzend die kaufmännischen Untersuchungs- und Rügeobliegenheiten für den Handelskauf hinzu. Danach muss der Käufer die gelieferte Sache unverzüglich auf Mängel untersuchen und entdeckte Mängel unverzüglich gegenüber dem Verkäufer rügen (§ 377 Abs. 1 HGB). Kommt er diesen Verpflichtungen nicht nach, gilt die Ware als genehmigt und der Käufer bzw. Auftraggeber verliert seine Gewährleistungsrechte.

Die Anwendung des Kaufrechts auf die Programmierung von Websites erscheint für Nicht-Juristen ungewohnt und vielleicht sogar abwegig. Der Gesetzgeber hat jedoch in § 651 BGB geregelt, dass das Kaufrecht auch bei der Lieferung herzustellender beweglicher Sachen anzuwenden ist. Derzeit wird in der juristischen Diskussion die Auffassung vertreten, dass auch Software eine Sache ist. Bei einer individuellen Programmierung für Kunden handelt es sich demnach um eine herzustellende bewegliche Sache, so dass das Kaufrecht mit den speziellen Gewährleistungsregelungen anzuwenden ist. Gerichtsurteile zu diesem Thema liegen noch nicht vor und sind auch von oberinstanzlichen Gerichten nicht kurzfristig zu erwarten.

Aufgrund der rechtlichen Einordnung einer Individual-Programmierung zu den kaufrechtlichen Regelungen des BGB wird nachfolgend ausschließlich auf die kaufvertraglichen Mängelbeseitigungsrechte Bezug genommen. Wenn z.B. die erstellte Website nicht den vertraglichen Anforderungen entspricht oder Sicherheitslücken nach dem Stand der Technik nicht hätten auftreten dürfen, liegt ein Mangel der Programmierung vor.

 

Zeitnahe Beseitigung
nach oben
   

Ist eine mangelhafte Programmierung nachweisbar, dann hat der Auftraggeber einen Anspruch auf Nacherfüllung. Das bedeutet er kann entweder die Beseitigung des Mangels oder die Lieferung einer mangelfreien Sache verlangen (§ 439 Abs. 1 BGB). Wie schnell die Nacherfüllung erfolgen soll, ist im Gesetz nicht festgelegt. Allerdings wird generell von einer zeitnahen Beseitigung des Mangels ausgegangen. Nimmt die Mängelbeseitigung eine unangemessen lange Zeit in Anspruch, kann der Auftraggeber vom Vertrag zurückzutreten und damit das Vertragsverhältnis auflösen.

Für die Zeit der Nacherfüllung und Mängelbeseitigung besteht zudem eine Schadensersatzpflicht, die umso höher ausfallen kann je länger der Mangel besteht. Dringt z.B. ins Computersystem des Auftraggebers wegen einer Sicherheitslücke ein Virus ein, so kann die Schadensersatzpflicht umso höher werden, je länger die Sicherheitslücke besteht. In der Praxis wird der Kunde darüber hinaus eine Nachfrist setzen innerhalb derer er eine entsprechende Mängelbeseitigung erwartet. Dann ist seitens des Auftragnehmers bekannt, in welchem Zeitraum der Kunde ein Tätigwerden fordert.

 

 

Kostenfreie Beseitigung
nach oben
   

Wenn ein Mangel bei der Programmierung der Software vorliegt, so legt das Gesetz dem Auftragnehmer und Verkäufer die Kostentragung für die Nacherfüllungsarbeiten auf. Der Auftragnehmer hat die zum Zwecke der Nacherfüllung erforderlichen Aufwendungen, insbesondere Transport-, Wege-, Arbeits- und Materialkosten zu tragen. Aus Sicht des Gesetzgebers ist diese Kostentragungspflicht denklogisch, da der Auftragnehmer und Verkäufer seine Pflicht zur Lieferung einer mangelfreien Programmierung nicht nachgekommen ist und so "bestraft" wird.

 

 

Öffentliche Hinweispflicht
nach oben
   

Bei Sicherheitslücken, die als Serienfehler auftreten oder konstruktionsbedingt sind, kann sowohl den Hersteller als auch den Auftragnehmer eine Hinweispflicht oder weitergehend eine öffentliche Hinweispflicht auf Updates oder gar eine Rückrufpflicht treffen. Allerdings legt das BGB keine genaueren rechtlichen Voraussetzungen fest. Das Gesetz fordert nur eine Rücksichtnahme auf Rechtsgüter und Interessen der anderen Vertragspartei, aus der sich entsprechende Pflichten ergeben.

 

 

Schadensumfang
nach oben
   

Häufig lässt der Auftraggeber und Kunde eingetretene Schäden an Datenbeständen, Software oder Hardware von eigenen festangestellten Mitarbeitern beseitigen. Dann kann er anteilige Arbeitslöhne nicht als Schaden einfordern. Es handelt sich bei diesen Kosten um so genannte "Sowieso-Kosten". Der Arbeitnehmer des Kunden hätte auch ohne den konkreten Arbeitsanfall auf der Gehaltsliste des Auftraggebers gestanden. Anders ist die Situation zu beurteilen, wenn ein Mitarbeiter durch die Arbeiten zur Schadensbeseitigung für einen längeren Zeitraum seinen eigentlichen Aufgaben nicht nachkommen kann und beispielsweise der Arbeitgeber externe Kapazitäten zukaufen muss, um den internen Ausfall zu kompensieren.

Daneben können als Schadensposition die weiteren Schäden vom Kunden eingefordert werden, die eintreten, weil die Sicherheitslücke das Computersystem oder gar die Produktion des Unternehmens stillgelegt hat.

 

 

Haftungsausschlüsse in Verträgen
nach oben
   

Aus Sicht des Anbieters und Auftragnehmers sollte eine Haftung insbesondere durch eine genaue Beschreibung des Fehlerbegriffs in den Verträgen reduziert werden. Ein Fehler ist eine für Käufer nachteilige Abweichung der Ist-Beschaffenheit von der Soll- Beschaffenheit der Kaufsache. Die Definition der Soll-Beschaffenheit richtet sich vorrangig nach den vertraglichen Vereinbarungen.

Soweit Verträge oder Vertragsregelungen gegenüber Kunden häufiger genutzt werden, fallen diese unter die gesetzlichen Regelungen zu den Allgemeinen Geschäftsbedingungen. Wenn Allgemeine Geschäftsbedingungen vorliegen, sind Haftungsausschlüsse für Sicherheitslücken nur in sehr engen Grenzen möglich. In individuell ausgehandelten Verträgen sind dagegen die Spielräume größer.

Zusammenfassend ist einem Auftragnehmer und Programmierer zu empfehlen, insbesondere Wert auf die vertraglichen Festlegungen zur Fehlerdefinition zu legen. Daneben sollten die Möglichkeiten der vertraglichen Haftungsreduzierungen genutzt werden.

 

 

Weitere Informationen erhalten Sie vom Autor Thomas Feil extern.
Der Autor behält sich alle Rechte am Artikel vor. © 2005 Rechtsanwalt Thomas Feil

 

 

Kommentare zu diesem Artikel:

"Dieser Text ist leicht verständlich. Nach dem Durchlesen habe ich mehr Sicherheit bezüglich des Themas. (Januar 2006)"

"Gute allgemeine Beschreibung. Links zu weiterführenden Ausführungen wären hilfreich. (Januar 2006)"

"... und wie sehen die Artikel-Aspekte in Bezug auf Windows aus? Wenn man den ganzen Artikel mit Windows im Hinterkopf liest, ergeben sich einige interessante Überlegungen in/gegen Richtung Microsoft... (Dezember 2005)"

"sehr allgemein und bei den knackpunkten zu vage (Dezember 2005)"


Seite drucken Seiten drucken
Zum Seitenanfang nach oben

Für die Teilnahme an den mit diesem Icon gekennzeichneten Diensten melden Sie sich mit den Zugangsdaten an.
Zugangsdaten vergessen? | Noch kein GULP Profil?
Über GULP: Mehr als 3.000 Kunden, 75.000 eingetragene IT-Experten, davon 10.000 mit Schwerpunkt Engineering, und über 1.000.000 abgewickelte Projektanfragen: GULP ist die wichtigste Quelle für die Besetzung von IT-/Engineering-Projekten mit externen Spezialisten im deutschsprachigen Raum. Zusätzlich zu den Dienstleistungen einer modernen Personalagentur bietet GULP ein umfassendes Online-Portal mit Informationen und Services für die Teilnehmer im Markt.