Haftung und Penalties für Softwarehersteller oder…durchstarten mit Thread Modeling und Fuzzing – Teil 1

Schlecht programmierte Software, Software mit Sicherheitslücken, oder Software, die völlig anderes erledigt als ursprünglich beabsichtigt, kosten die Unternehmen und öffentlichen Institutionen Milliarden von Euro und Nerven. Der finanzielle Schaden ist gewaltig, doch nichts gegen Menschenleben, die Fehler in der Software kosten können, oder wahre Imageschäden, die ein Unternehmen davonträgt, und viele Jahre des Wiederanlaufs benötigt, um zu seiner alten Stärke zurück zu finden, wenn überhaupt. Selbst Strafen in Milliardenhöhe gegen Softwarehersteller von Gesetzgebern wegen Schwachstellen auferlegt, beeinflussen Öltanker, wie große Softwarehersteller, wenig. Alle Regierungen der Welt kaufen Software in Höhe von 70 Milliarden Dollar. Der Weltmarkt an Software liegt bei einer Billiarde Dollar. Das sind weniger als 10%. Der Einfluss ist also sehr gering. Druck auf Softwarehersteller können also selbst Regierungen schlecht ausüben, und es wäre meines Erachtens auch der falsche Weg.

Anstatt die Minderqualität in Softwareentwicklungen und Standardsoftware abzustrafen, haben wir die Softwareindustrie noch größer, noch stärker und noch reicher gemacht. Hat sich etwas in der Softwareindustrie geändert? Kaum. Nur wenige Hersteller adaptieren. Apple marschiert gerade mit Riesenschritten und erkennbar gut und sicher, auch im Businessbereich, immer weiter voran. Bei den meisten ist jedoch „business as usual“ angesagt. Meistens bieten die Hersteller geringfüge optische und funktionelle Verbesserungen im Vordergrund an, die selbst das ungeschulte Auge erkennen lässt: „Hallöchen, hier hat sich ja wirklich etwas getan“. Meistens wird Sicherheit adressiert, es wird bunter, mit noch mehr Funktionalität die keiner braucht, doch in Wirklichkeit ist der Schweizer Käse noch löchriger geworden. Erkennbar an der absoluten Zahl der Updates, Bug Fixes, Emergency Fixes, die immer noch zunimmt, wie der Dienstleister Secunia aus dem schönen Dänemark berichtet.

Immer mehr – vom Hersteller als besser propagierte – bessere und noch besser, und dieses Jahr noch viel bessere Software, hat immer mehr Fehler, Sicherheitslücken und Schwachstellen. Das passt zum folgenden Trend, der unschwer zu erkennen ist. 99% aller Firmen setzen Antivirensoftware ein und 90% berichten von ernsthaften Vireninfektionen. Verkehrsleitsysteme lassen Züge zusammenstoßen und schalten Ampeln falsch. Modernste Flugzeugsteuerungssoftware berücksichtigt Aquaplaning nach der Landung nicht und legt fest, dass eine Landung erst mit mehr als 11,9  Tonnen Gewicht auf dem Hauptfahrwerk eine Landung ist – Menschen sterben. Andere Software ist für die Schnittstelle „Mensch“ völlig ungeeignet. Sie lässt sich weder leicht bedienen, noch sorgt sie dafür, dass der Mensch weniger Fehler während der Bedienung macht, sondern sorgt für das Gegenteil. In vielen komplizierten Anwendungen fehlt die Simplizität der ersten Industriemaschinen. Ein Schalter war es früher. „An“ und „Aus“. Weniger ist mehr. Einfach ist genial. Von der Sicherheit sprechen wir erst später.

Doch heute will man alles. Betriebssysteme die virtualisieren können, Apps, die den ganzen Konzern steuern, aber noch auf mein Smartphone passen, Datenbanken von 5 Petabyte, Interoperabilität, Verfügbarkeit, Integrität, Sicherheit, und das bitte für 30% weniger Kosten und Aufwand als letztes Jahr, und nicht patchen, die Kisten müssen 7*24 das ganze Jahr durchlaufen. Diesem Größenwahn halten die Softwarehersteller Ihre Produkte entgegen.  Sie behaupten, das erledige die Software alles bestens und darüber hinaus auch noch mehr. Wir bezahlen, glauben es und fangen an zu installieren, zu benutzen und uns mit der Zeit zu wundern.

Wir nehmen alle alles hin. Gewünschtes und unerwünschtes. Als wäre nichts gewesen. Wir bezahlen viel Geld für teilweisen Schrott, bezahlen die Schäden, die Schrott verursacht, und nicht selten bezahlen wir mit unserer Gesundheit oder unserem Leben. Niemand jedoch richtet die Verursacher. Niemand nimmt seine Hersteller in die Pflicht.

Wenn Sie einen Wagen eines Herstellers kaufen würden, der 5 Sterne im EURO-NCAP erzielt, und sie würden einen Offset-Crash mit 35 Km/h mit einem entgegenkommenden gleichen Fahrzeug haben, und insgesamt 9 von 10 Passagieren bis auf Sie in beiden Autos wären tot, dann würden Sie Amok laufen. 5 Sterne, nur 35 km/h schnell , doch die Airbags zündeten nicht, die Rückhaltegurte strafften nicht, das ABS versagte. Sie würden alle Register ziehen um den Hersteller zu bestrafen. Vor dem Kauf des Autos hatte man schon eine exakte Vorstellung von dem Gefährt gehabt. 275 PS, 3.0 d, 5 Sitze, 4 Räder, Lenkrad, Blinker, Navi, Klima, Soundsystem, 5 Türen, 260 Km/h Spitze, 5 Sterne EURO-NCAP, 14 Airbags, Kombi, und dann das?

Bei Software ist es uns egal. Dem CIO mehr, dem Admin weniger, doch im Grunde genommen ist es uns egal. Ein Betriebssystem ist für uns eben nur ein Betriebssystem. Keiner rümpft die Nase, runzelt die Stirn oder hält mal 5 Minuten nachdenkend inne, wenn das erste Bugfix einer neuen Software gleich 10% der Datenmenge dieser Software ausmacht. Nein, warum auch? Es sind heute viel mehr Bildchen in der Software als früher, „unn es isch joa aach immer mehr HTML drinne, gelle“, und die Apps, ja die müssen unser ganzes Unternehmen steuern, zusammen mit den Datenbanken, auf denen wir den ganzen Datenmüll halten. 10% falsch kodiert doch für einen stolzen Preis im Verkauf. In jeder anderen Branche, außer vielleicht bei Banken und in der Pharmaindustrie würde man das als kriminell einstufen.

Kommen wir ein wenig auf Prozesse zu sprechen. Beim Fahrzeughersteller z.B., muss noch eine neue Modellreihe auf die Oracle Datenbank, und noch eine, und noch eine, und noch eine, bis es kracht. Ja zweifelsfrei, die eindeutige Zuordnung von Bestellkatalog  zu Teilekatalog  funktioniert noch nicht wirklich bei keinem aller Automobilhersteller, auch wenn der Herr Ingenieur, der das Teil entwickelt hat, eine eindeutige Teilenummer vergeben hat, tja, aber man produziert ja auch im Ausland, in einem großen Konzern, sehr groß, der viel Umsatz macht, sehr viel. Und da vergibt man andere Teilenummern. Und so entsteht Datensalat. Apropos, wir von der GFFT e.V. können Autoherstellern hier helfen. Wir haben eine Lösung für genau dieses Problem. Kontaktieren Sie uns bitte dazu, bei Interesse. Mit VW und Audi sind wir schon in Gesprächen.

„Achsodele“, nun also noch die Prozesse. Genau diese soll die Software auch abbilden. „Nein“.“ Sie meinen das Unternehmen passt die Prozesse an die Software an?“ „Ja, schon lange“. Das merkt nur niemand mehr, weil alle mittlerweile die gleichen Prozesse haben und alle im gleichen Slang über auch genau nur diese sprechen?  Pssst, leise, wer käme denn auf die Idee neue Prozesse zu entwickeln? Das ist doch viel zu teuer.

„Nein, das ist es absolut nicht“. „Selbst ist der Mann“ ist heroisch und einzigartig, ist schön, ist fortschrittlich, ist billiger, ist besser, ist sexy und ist sicherer. Aber es gibt tatsächlich heute noch CIOs, die IT-Archtitekten einstellen. Für was? Das ist herausgeschmissenes Geld (bitte entschuldigen Sie meine Damen und Herren, die sich nun direkt angesprochen fühlen), denn zuguterletzt kaufen gerade diese CIOs ohnehin MacDonalds-IT. MacDonalds-IT überall und über alles. Schauen Sie sich doch bitte einmal um. Aber sich dann einen erlesenen IT-Architekten halten für 160.000 Euro Jahresbrutto, der zuschauen darf, welcher MacDonalds-IT-Schrott von seinem CIO in der Infrastruktur platziert wird. Das ist eine geniale Leistung des CIOs, meinen Sie nicht auch?! Ja, das kennen viele von uns. Für 160.000 Euro Schmerzensgeld halten wir das viele gerne aus und lachen. Nach unserer letzten Meinung gefragt, müssen wir das irgendwie noch für gut befinden. Wir möchten doch unseren CIO nicht bloßstellen. Und das ist ein zusätzlicher Grund, warum die IT immer schlechter wird. Organisationsstrukturen sind falsch, es gibt falsche Entscheider, und davon eine Menge, und schon erkennt die hungrige Hyäne, dass es Zeit ist für die Cloud.

In Zeiten des Chaos und der Dürre war eine Wolke für viele schon der Rettungsanker. So für Bewohner des afrikanischen Kontinents, für Dichter, für Maler, für Metereologen und nun auch für CIOs. Rettung in letzter Not, würde doch jeder zweite CEO am liebsten seinen CIO hinauswerfen in unserem Lande, und über die Grenzen hinaus, wegen Unfähigkeit. Jetzt ist Schluss mit One-Pagers, die noch nie gestimmt haben, mit Pilotcharts, die Anzeigen, was sowieso falsch ist, und mit Lügengeschichten und Ausreden und dem Leben in Excel. Jetzt wird alles noch diffuser, dunkler, undurchsichtiger, und teuerer insgesamt bei schlechterem Service, weniger Flexibilität und totalitärer Abhängigkeit. Wenn man Pech hat dann werden die Daten beim Dritten auch gleich weitergegeben. Wetten? Wenn man keine IT drauf hat, na dann wenigsten Bilanzschiebereien im Budget eines Volkswirtes, der CIO ist. Nicht die Basisdienstleistungen, mit denen man lockt sind als Kostenfaktor für Cloud Computing heranzuziehen. Lassen Sie mal einen kompletten Entwicklungszyklus in der Cloud vergehen, und dann sprechen wir uns wieder.

Jetzt stecken wir den ganzen Schrott in die Cloud! Eigentlich ist die Cloud das Asylantenheim für besonders pfiffige und erfinderische CIOs, also die Sorte, die ganz besonders kreativ ist…zuhause und überall, nur im Büro nicht. „Tsolkas, Sie haben nichts verstanden!“ „Wiiiiiie? Ich habe nichts verstanden?“ „Das ist billiger?“ „Was ist billiger?“ „Die Cloud?““ Ja!“ „Wer sagt das?“ „Nun ja, die Provider und Hersteller, und auch die ersten, und zweiten Kunden?““ Tatsächlich?“ „Ja“.“Sicher?“ „Ja aber mein Chemielehrer hat immer gesagt: „Von nichts kommt nichts und es geht nichts verloren?“. „Das stimmt. Aber nicht in der Cloud“. Na dann, „go cloud“. Und tatsächlich werden die Unternehmen, die nicht wirklich an einen Cloud-Provider outsourcen können, das Modell intern nachahmen um den Hype nicht an sich vorbeiziehen zu lassen. Anwender schaut her, ich bin total trendy, und ihr arbeitet nun in der Cloud. Wow?!

A:“Schatzi, Du ich muss Dir was erzählen“. B: „Was denn mein Liebling?“. A: „Ei seit gestern arbeite ich nicht mehr auf dem Computer im Rechenzentrum, sondern in der Cloud“. B:“ Wirklich? Und was hat sich geändert?“ A:“Ich weiß nicht, nichts“ B:“ Ja toll, aber warum reden die nun alle von der Cloud?“ A: “ Ei die sagen, eine Wolke wäre einfacher zu malen als ein Netzwerkdiagramm.“ B:“ Ist ja supertoll“.

Wir lesen diesen Artikel noch einmal in 5 Jahren. Fassen wir kurz zusammen. Wir kaufen, lassen entwickeln und nutzen immer neuere schlechtere Software für mehr Geld, mit mehr Sicherheitslücken die wir weniger patchen können, und stecken das in die von dritten gemanagte Cloud, in der die Daten in Timbuktu und sonstwo liegen, und ich den eingestellten ehemaligen südosteuropäischen Ziegenhirten nach drei Semestern Cisco-Academy nicht kenne, der das bedient, und wir meinen, dies sei besser? „Herr Tsolkas, nicht besser, aber deutlich billiger“. Quatsch! Genug der Scherze, jetzt wird es ernst.

Im Softwaremarkt gibt es für uns Menschen und Nutzer das Problem der asymetrischen Information. Der Käufer weiß nicht immer was er bekommt. Es ist auch sehr schwierig zwischen qualitativ hochwertiger Software und Schrott zu unterscheiden. Keiner hat eine Idee ob es gut ist, was man kauft, oder ob es zusammengewürfelter Schrott ist. Geläufig ist der Ausdruck, dass die Software xy in einem schlechten (Release)Status ist, aber nutzen wir das, um zu IBM, CA, SAP oder Microsoft und vielen anderen zu gehen, und zu sagen, wir zahlen aufgrund der Mängel bitte nur 30% vom Preis? Bei einem Auto würden Sie sofort handeln. Hier eine Beule und dort ein Kratzer, und was nur 3 Sterne im EURO-NCAP macht 30% Rabatt!

Softwarehersteller tun das was sie am besten können. Schulterzucken und Geld verdienen. Softwarehersteller legen kein Sozialprogramm auf und schauen, was Sie heute am dringensten benötigen. Andere geben an und bezeichnen sich als unhackbar, andere wiederum behaupten nur sie sind sicher. Doch es ist egal ob das eine stimmt oder das andere nicht stimmt, es gibt keine Bestrafung für schlecht sein. Der Markt bestimmt was wir bekommen, nicht wir bestimmen, was wir wirklich brauchen. Auch wenn wir keine Sicherheit kaufen möchten, können wir das Produkt so nicht kaufen. Auch wenn jeder nach Sicherheit schreit, können wir nicht mit bloßen Auge erkennen und auch differenzieren, ob wir sie nun auch wirklich haben, 300 Millionen Zeilen Code überprüft man nicht so einfach.

Wie bewertet man Schwachstellen in Software damit man sie bepreisen könnte? Das ist eine schwierige Frage? Vielleicht nach offengelegten Schwachstellen von den diversen CERTs der Welt wie Secunia, vielleicht auch nach Gewichtung des CERTs (kritisch, mittel, unkritisch), oder wie der Lärm eines Triebwerks für die Landgebühr einer Passagiermaschine herhält, wie eine Strafsteuer, oder vielleicht auch wie die Abgabe für CO2-Emissionen? Vielleicht benötigen wir aufgrund der CERTs einen Bewertungsmaßstab, ähnlich wie bei den EURO-NCAP-Sternen für Autos. 5-Sterne Software, 4-Sterne, 3 Sterne usw.  Und für jedes CERT, das veröffentlicht wird, bekommt man von Softwarehersteller eine Gutschrift. Perfekte Software wird schwierig sein zu produzieren. Aber leisere Triebwerke für Flugzeuge können wir ja auch bauen. Und CO2-Emissionen können wir auch reduzieren.

Kann der Hersteller von „Schad- oder nur Software“ seine Schadstoffe nicht auch reduzieren? Zahlt er lieber Strafen? Und hier bringen wir es auf den Punkt.

Ja, nach diesem Prinzip werden es alle können. Die Softwarehersteller werden fleißig von sich geben, dass sie nun alle ihre Produktionskosten reduzieren müssen, denn Fehler bedeutet „Penalty“, und Penalty heißt „Gutschrift“. Klar muss das Fixen der Bugs billiger sein als die Strafzahlung. Aber dann hätten wir sie wo wir sie haben möchten. Wenn sich hinter dem ganzen noch ein einigermaßen mathematisches und wirtschaftliches System des Herstellers verbirgt, dann kann der Hersteller in Zukunft sogar seine Sicherheitskosten in der Software wunderbar berechnen.

Und das ist es, was wir alle haben und sehen möchten. Billigsoftware oder Schrott produzieren muss teuer werden.  

Demnächst kommt Teil 2 des Artikels, in dem es darum geht, was Sie in der Übergangszeit wirklich tun können, z.B. mit Hilfe von Thread Modeling und Fuzzing!!

Alexander Tsolkas