IMHO: Was uns der Heartbleed-Bug lehrt

Eine Sicherheitslücke in der Open-Source-Bibliothek OpenSSL sorgt in den letzten Tagen für viele Schlagzeilen: Durch einen simplen Programmierfehler ist es möglich, bei betroffenen Web- und E-Mail-Servern interne Speicherinhalte auszulesen. Die Lücke blieb bei den Projektverantwortlichen rund zwei Jahre unentdeckt und wurde anscheinend auch aktiv ausgenutzt (siehe hier oder hier).

Eine gute technische Zusammenfassung der Ursachen gibt es bei Sean Cassidy. (Spoiler: der Fix ist extrem simpel.)

Aber was kann man als Software-Entwickler aus dem »SSL-Gau« lernen? Aus meiner Sicht demonstriert Heartbleed ein paar wichtige Punkte auf drastische Art und Weise:

Eingabedaten sind immer zu validieren
Eigentlich eine Binsenweisheit, offensichtlich aber beherzigen das nicht einmal angehende Informatiker zum Ende ihres Studiums: jede Benutzereingabe hat validiert zu werden. Immer. Ausnahmslos. Im Falle des Heartbleed-Bugs bedeutet das konkret, zu überprüfen, ob die Länge der gesendeten Daten tatsächlich übereinstimmt mit der ebenso gesendeten Längenangabe. Easy, oder?

Als Anwender sollte man für jeden Dienst ein eigenes Kennwort verwenden
Auch dieser Hinweis ist eigentlich simpel und liegt auf der Hand. Wenn schon die Zugangskennung für einen Dienst entwendet wird, ist es enorm hilfreich, wenn mit derselben Kennung nicht auch gleich etliche andere Dienste zugänglich sind. Wer Schwierigkeiten hat, sich Passwörter zu merken, oder wer besonders sichere Passwörter haben möchte, der sollte einen Password Safe einsetzen. Es gibt mittlerweile einige sehr schöne Anwendungen für Smartphones, so dass man seine Kennwörter auch immer dabei haben kann.

C ist unsicher
Zugegeben: diese Aussage ist etwas plakativ und zugespitzt. Und vielleicht ist diese Aussage auch die schmerzvollste Lehre aus dem Heartbleed-Bug. Sicherlich ist C nicht zu unrecht eine der wichtigsten Programmiersprachen überhaupt, wenn nicht sogar die wichtigste Programmiersprache. Natürlich ist es möglich, bombensichere und fehlerfreie Software in C zu entwickeln. Andere Programmiersprachen haben auch ihre Schwächen, und ja: in jeder Programmiersprache kann man Müll zusammenschreiben. Leider ist es aber auch definitiv so, dass C es einem Entwickler extrem leicht macht, sich ins eigene Knie zu schießen, indem (wie hier) versehentlich auf Speicherbereiche zugegriffen werden kann, auf die man nicht zugreifen will und soll. Die flexible Struktur von C erschwert außerdem Werkzeugen zur Code-Analyse die Arbeit. Der Umgang mit Strings und Arrays, die Implementierung von eigenen Methoden zur Speicherverwaltung … die Schwachstellen von C sind zahlreich und grundlegend und bedürfen sehr viel Erfahrung, um souverän damit umzugehen.
Da drängt sich ganz selbstverständlich die Frage auf, ob es nicht an der Zeit ist, für die Entwicklung gerade von sicherheitskritischen Werkzeugen höhere Sprachen bzw. Systeme einzusetzen. Welche Alternativen da in Frage kommen, lasse ich einmal offen.

Open Source bedeutet nicht automatisch Sicherheit
Als ein Argument für Open-Source-Software (OSS) wird immer wieder die ageblich überlegene Sicherheit genannt, die sich aus der Tatsache ergebe, dass jedermann die Software einsehen und notfalls korrigieren könne. Das ist natürlich Blödsinn. In der Praxis funktioniert das eher selten, und deshalb ist OSS auch nicht prinzipiell besser oder sicherer als proprietäre Alternativen. Die sind allerdings ebenso wenig pauschal besser. Anders ausgedrückt: das Modell »Open Source« sagt rein gar nichts über die Qualität der Software aus.

Große Verbreitung bedeutet auch eine große Verantwortung
Gerade einmal elf Entwickler kümmern sich regelmäßig um die OpenSSL-Bibliothek, genutzt wird sie praktisch von der ganzen Welt. Und ein solches Software-Projekt lässt es zu, dass ein junger Informatik-Student anscheinend ohne großartigen Review-Prozess kritische Code-Teile einreicht. Muss das sein? Die großen Nutznießer der OpenSSL-Bibliothek setzen sie in ihrer kritischen Infrastruktur ein, ohne sich selbst an der Entwicklung zu beteiligen oder wenigsten aus Eigeninteresse ein Qualitätsmanagement zu betreiben.

Sollte hier nicht ein Umdenken erfolgen? Ein OSS-Projekt mit der riesigen Bedeutung und Verbreitung wie OpenSSL sollte nicht nur Selbstbedienungsladen sein, sondern auch von den Unternehmen unterstützt werden, die am meisten davon profitieren.

Zu diesem Thema gibt es auch an andere Stelle viele Meinungen und Denkansätze:

13 Gedanken zu „IMHO: Was uns der Heartbleed-Bug lehrt“

  1. Was ist nicht Unsicher kein System ist für immer sicher was nicht irgendwann geknackt, jede Burg wurde schon bezwungen in dem Sinne gibts keine absulute Sicherheit nur momentan, nur relativ sicher!

  2. Aktuelles:
    Ich habe beim blubbert-Link eine Info über Java 12 was in den Starlöchern steckt:

    blubberbart.blogspot.com/2014/05/java-auf-dem-desktop-12.html?m=1

    Viel Interesse und Freude am Lesen,
    Ihr Ralf-Dieter

  3. Nicht nur Open Suorce kann Sicherheitslücken haben auch in dem Fall auch Bezahlsoftware kann Sicherheitslücken dh wenn man teure Software kaufen würde für viel Cash könnte es auch Sicherheitslücken geben auch wenn sie bei Apple sind ist man nie sicher!

  4. Ich habe ne Frage gibt es noch neue Artikel irgendwann oder wird jenes Projekt gekanzelt?Es ist von Opera angekündigt worden das Opera 24 auch für Linux geben weiß man schon wann?

  5. Diese Seite läuft noch … in letzter Zeit hatte ich allerdings wenig Lust, zu schreiben 😉 Das wird sich aber wieder ändern.

    Eine neue Version von Opera für Linux ist tatsächlich angekündigt worden:
    http://blogs.opera.com/desktop/2014/06/opera-24-linux-released-developer-stream/

    Allerdings steht noch kein Release-Termin fest. Die Developer-Version lässt sich aber auch schon problemlos nutzen. Leider ist diese Version auf meinem Zenbook Prime unbrauchbar, weil sie anscheinend einen Hi-DPI-Modus implementiert hat, der das Interface unbenutzbar groß macht 🙁

  6. Kann man nicht die H-DPI-Funktion durch eine alte DPI austauschen oder braucht man eine HD-fähige Grafikarte ein 4-Kernproßessor und 32 Gigabyte RAM-AB-Speicher um gut mit Opera 24 Linux zurech tzukommen schon mal Opera 24 im Win getestet?

  7. Telefonica O2 darf laut EU-Kommissionsbeschluß E-plus schlucken und abwickeln – Link vom Focus ist in der Webzeile – Frage ist werden unsere Simkarten umgemeldet von O2 was passiert mit Blau.de und den andern E-plus-Partnern,wird Prepaid abgeschaft?

  8. Erst war es für mich ein Schock wie ich heute vor paar Stunden beim Googeln erfuhr das E-plus an O2/Telefonica verscherbelt wird und eingemottet wird, den E-plus gibts schon seit 22 Jahre, aufgefallen ist mir das bei Prepaid-Wiki dort baut E-plus ab

  9. Frage wenn E-plus nach der Zwangsehe mit Telefonica sein eigenes Netz abschaltet werden wir Prepaidkunden wie: Alditalk,Blau.de,NettoKOM usw von O2 betreut dann ändern sich auch die Service-Nrn, 1155 wirds dann wohl nicht mehr geben und die Mobilfunkbed.?

  10. Hallo, ich habe mich nicht weiter damit beschäftigt; ich gehe aber davon aus, dass sich für Bestandskunden nicht so furchtbar viel ändern wird. Ich kann mir eigentlich auch nicht vorstellen, dass jetzt alle Bestandskunden neue SIM-Karten und neue Telefonnummern erhalten. Aber: ich weiß nicht, wie das jetzt ablaufen wird.

  11. Da bin ich auch gespannt solange ich ohne Einschränkungen surfen(mal die Highspeedvolumenbremse nicht mit gerechnet) kann ist mir es wurscht wie heißen, aber man weiß ja nie bei den Burschen was denen einfällt aber wenn es mir zu dumm wird lade ich die Prepaid nicht mehr auf und laße die Simkarte ohne Guthaben ablaufen und orientiere mich neu!

Kommentare sind geschlossen.