 |
| Was ist ein
Fehler? |
|
| |
|
| 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? |
|
| |
|
| 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 |
|
| |
|
| 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 |
|
| |
|
| 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 |
|
| |
|
| 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 |
|
| |
|
| 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 |
|
| |
|
| 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. |
|
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)"
|