Ist ein Software-Fehler, da kann man nichts machen!

Do, 17. Februar 2022, Ralf Hersel

Ist der Titel dieses Beitrags ein Meme, eine Ausrede oder eine Kapitulation? Ein Artikel bei Heise, mit dem Titel "Der Wandel des IT-Studiums: Künftig haften Informatiker für ihre Arbeit" hat mich nachdenklich gemacht. Wie viele erfolgreiche Angriffe haben wir in den letzten Jahren gesehen? Gefühlt, werden jeden Tag irgendwo auf dieser Welt Software-Systeme kompromittiert und dadurch Betreiber und Anwender:innen geschädigt. Das geht von Einbrüchen in Firmen bis zum Absaugen von Bürgerdaten bei Behörden.

Grundsätzlich bin ich der Meinung, dass die Ausrede "Ist ein Software-Fehler, da kann man nichts machen", nicht mehr gelten darf. Dazu möchte ich aus dem oben erwähnten Heise-Artikel zitieren:

"Im selben Zeithorizont (20 Jahre) werden wir unsere Studierenden so hochwertig ausbilden können, dass sie für die Produkte in deutlich stärkerem Maße bereit sind als heute, Haftung dafür zu übernehmen. Wenn einem Bauingenieur das Haus einstürzt, dann muss er ins Gefängnis. Etwas in dieser Richtung wird auch auf die Informatik zukommen", sagt Professor Dr. Karsten Wolf, Leiter des Fakultätentag Informatik, der alle deutschen Universitäten vertritt, die ein Informatikstudium anbieten.

Proprietäre Software

Wird eine proprietäre Software dem Kunden von einer gewinnorientierten Firma verkauft oder vermietet, so haftet diese für Schwachstellen in ihrer Software. Ja, nein, vielleicht? Nach dem Interview mit Christian Laux, dass ich im GLN-Podcast Nr. 16 im Oktober 2021 geführt habe, lautet die Antwort "eher nicht".

Betrachtet man den Sachverhalt genauer, ergeben sich mehrere Schichten, denen man Verantwortung zuweisen könnte:

  1. Ein Produktmanager hat eine Idee und lässt diese umsetzten
  2. Ein Business Analyst schreibt die Spezifikation
  3. Ein Entwickler schreibt die Software
  4. Ein Tester untersucht das Produkt
  5. Ein Integrator bindet die Software ein
  6. Ein Verkäufer bringt das Produkt zum Kunden und schliesst Verträge ab
  7. Ein Kunde implementiert die Software
  8. Ein Provider hostet die Software
  9. Ein Endanwender nutzt die Software

Hier kann man grob, zwischen Anbieter, Kunde und Endanwender unterscheiden. Der Anbieter wäre z.B. die Software-Firma x, der Kunde wäre die Behörde y und die Endanwenderin wäre die Bürgerin z. Zurzeit haftet niemand; nur die Bürgerin Z hat einen Schaden zu verkraften, z.B. einen Identitätsdiebstahl oder den Leak ihrer Krankenkassen-Daten.

Aber Ralf, der Angreifer ist doch der Schuldige! Nein, weil in den meisten Fällen Fahrlässigkeit aufseiten des Betreibers vorliegt, zum Beispiel durch Fehlkonfiguration oder veraltete Software-Versionen. Eine Versicherung zahlt dir gar nichts, wenn du deine Haustüre nicht abschliesst. Ausserdem ist es für einen Endanwender so gut wie unmöglich, sich an einem Angreifer schadlos zu halten. Es muss noch nicht einmal an der Fahrlässigkeit des Anbieters liegen, sondern kann auch Teil des Geschäftsmodells sein. So versucht zurzeit der Bundesstaat Texas die Firma Meta, wegen deren Umgang mit biometrischen Daten, auf einen Betrag zu verklagen, der knapp an eine Billion Dollar heranreichen könnte.

Freie Software

Freie- und Open-Source-Software ist in ihrer Wirkbreite sehr vielfältig; sie reicht von Anwendungen für einen kleinen Nutzerkreis, über Grossgewichte (GNU, Linux, LibreOffice, Gimp, Blender, Firefox, FOSS-Datenbanken, Security-Libraries, Netzwerk-Plattformen, Protokoll-Libraries, ...), bis hin zur Verwendung ebendieser in KRITIS-Anwendungen und Services. Ein Beispiel dafür ist die Rechteeskalation in der Polkit Komponente pkexec.

Wie sehen nun die Verantwortungsschichten bei Freier Software aus:

  1. Meistens entwickeln eine oder wenige Personen eine Idee, spezifizieren und entwickeln diese.
  2. Ein Maintainer pflegt und stellt die Software bereit.
  3. Viele verwenden die Software im Rahmen der jeweiligen Lizenz.
  4. Einige tragen zur Pflege und Verbesserung der Software bei.
  5. Manche nehmen sie, um die Software in ihre SAAS-Produkte einzubauen.
  6. Endanwender verwenden das Produkt nativ oder als Bestandteil eines SAAS-Angebots.

Auch hier stellt sich die Haftungsfrage, falls durch Fehler in der Software oder unsachgemässen Betrieb, Endanwender zu Schaden kommen. Ich bin der Meinung, dass an den Entwickler keine Haftungsforderungen gestellt werden können. Wenn dies so wäre, würde das die Entwicklung von Freier Software vollständig abwürgen. Stattdessen sehe ich die Betreiber in der Verantwortung. Wer sich an Freier Software bedient, soll a) Verantwortung tragen, und b) die Haftung für den Betrieb und die Software übernehmen. Da es sich um quelloffenen Code handelt, hat jeder Betreiber die Möglichkeit, sich über die Qualität der Software in Kenntnis zu setzten und dafür einzustehen.

Eine juristische Betrachtung der Haftungsfrage bei Freier Software findet man hier.

Ich meine, dieses Thema ist noch lange nicht zu Ende gedacht. Welche Meinung habt ihr dazu?

Tags

Software, Endanwender, KRITIS-Anwendungen, Freier, GNU, Kunde, Betreiber, Produkt