Heartbleed, Herzblut(en) – ein Begriff, der momentan die meisten digitalen Kanäle durchzieht und irgendwas mit Computern und Verschlüsselung zu tun hat. Und ganz schlimm sein muss. Aber warum – und wieviele?
Kurz zu mir: ich bin der Herr S. (der hier ab und zu Erwähnung findet), arbeite seit einigen Jahren als Sysadmin und halte u.a. die Netzwerke und Server von ein paar international agierenden Unternehmen am Laufen, wehre ab und zu Cyberangriffe aus fernen Ländern ab und werde hier versuchen zu beschreiben, warum „Heartbleed“ für uns alle ein Riesenproblem darstellt.
„Cyberangriffe aus fernen Ländern“? Richtig … ich skizziere das mal kurz: Einige der Unternehmen für die ich tätig bin, unterhalten Geschäftsbeziehungen in ferne Länder. Konkurrenzunternehmen, oder staatliche Agenturen haben häufig ein großes Interesse daran, an z.B. interne E-Mails, oder Datenbanken zu gelangen, um vertrauliche Angebote und Verträge zu erbeuten, damit die Firmen bei Verhandlungen unterboten werden können, oder um sie bei Geschäftspartnern zu diskreditieren. Die Häufigkeit dieser Attacken hat (empirisch und gefühlt) in den letzen Monaten enorm zugenommen. So haben wir vor etwa einem Jahr im Durchschnitt 3 – 4 Angriffe auf unsere Systeme pro Tag verzeichnet, während es mittlerweile bereits die zehnfache Menge ist. Als Angriff definiere ich dabei einen Versuch, auf Daten zuzugreifen, für die keine Berechtigung vorliegt, also z.B. das Knacken von Passwörtern für E-Mail-Accounts, oder Zugriff auf firmeninterne Webseiten. Besonders begehrt ist dabei, sich einen sogenannten Root-Zugang zu verschaffen, also ein Zugang zu Servern als „Benutzer, der alles darf und kann“, z.B. alle Daten, E-Mails und Datenbanken lesen. Wenn ein Angreifer in den Genuss kommt, die Zugangsdaten für den Root-Benutzer zu erbeuten, ist das in etwa so, als würde er einen Schlüssel für eure Wohnung haben, ohne dass ihr davon etwas mitbekommt. Er kann – wenn ihr nicht zu Hause seid – eure Sachen durchsuchen, abfotografieren und am Ende alle Spuren verwischen. Unheimlich, oder? Ich könnte darüber stundenlang weiterschreiben, aber viel wichtiger ist momentan die Heartbleed-Lücke. Anbei noch eine Karte der letzten 250 Attacken auf die Root-Zugänge der Systeme, die ich betreue. Kommentarlos und mit einem leichten Augenzwinkern an dieser Stelle.
Was hat das Ganze nun mit der Heartbleed-Lücke zu tun? Um vertrauliche Informationen zu schützen, muss man einen Weg finden, damit sie nicht mitgelesen, oder verändert werden können. Die gängigste Methode ist dabei, die Daten zu verschlüsseln. Das kennt man vom Online-Banking, von Facebook, Twitter und allen anderen Internetdiensten, die die kleine Adressleiste im Browser grün färben und immer mit einem „https://“ beginnen. Stellt euch Komunikation im Internet einfach vor, als würde man pausenlos Postkarten versenden und empfangen. Die erreichen ihr Ziel zwar in den meisten Fällen, aber jeder kann sie theoretisch mitlesen (der Briefträger, die Leute in den Verteilungszentren der Post, eure Mitbewohner, die Polizei, Geheimdienste, kurzum jeder, der damit in Kontakt kommen möchte und die Möglichkeiten dazu hat). Um ein Mitlesen, oder Verändern zu verhindern, aber trotzdem noch Informationen zu übermitteln, bietet es sich an, den Inhalt einer Postkarte zu verschlüsseln, also dafür zu sorgen, dass nur Absender und Empfänger verstehen, was eigentlich gemeint ist. Ähnlich wie die Fantasiesprache, die ich als Kind mit meinen Freunden erfunden habe, damit unsere Eltern nicht alles mitbekommen, was wir so zu sagen hatten. Nach dem Prinzip funktioniert auch die Verschlüsselung im Internet. Wobei es einen kleinen Unterschied gibt: die Verschlüsselung im Internet muss ein großes Maß an Sicherheit bieten, damit sie nicht umgangen werden kann. Ich werde nicht auf technische Details eingehen, ihr müsst an dieser Stelle einfach akzeptieren, dass für eine sichere Verbindung auf Seiten des Servers ein sogenannter „Privater Schlüssel“ – also eine Art sehr sehr langes Codewort (siehe Bild unter dem Absatz) – zum sicheren Verschlüsseln von Daten notwendig ist. Gelangt nun jemand in den Besitz dieses „Privaten Schlüssels“, kann er nun sämtliche (eigentlich verschlüsselte) Kommunikation mitlesen und auch im Nachhinein entschlüsseln. An dieser Stelle sei darauf hingewiesen, dass die NSA – den Unterlagen Edward Snowdens zufolge – verschlüsselte Daten für eine lange Zeit „auf Vorrat“ speichert, um sie eines Tages entschlüsseln und analysieren zu können. Macht’s klick? Nein? :) Wer im Besitz des „Privaten Schlüssels“ ist, kann die ganzen Daten, die er aufgezeichnet hat, auch im Nachhinein wieder entschlüsseln (vorausgesetzt es wurde nicht ein Verfahren, das sich „Perfect Forward Secrecy“ nennt eingesetzt).
Die Heartbleed-Lücke erlaubt leider genau das: durch einen Programmierfehler in der beliebten openSSL-Bibliothek (die die verschlüsselte Kommunikation auf technischer Ebene ermöglicht) kann ein Angreifer ohne große Mühe – und schwer nachweisbar – diesen „Privaten Schlüssel“ eines Servers auslesen und ist dadurch in der Lage sämtliche Kommunikation zu entschlüsseln. Und zu Kommunikation gehören auch Benutzernamen und Passwörter, Inhalte und Informationen, die eigentlich besonders schützenswert sind. Die Heartbleed-Lücke ist deshalb so gefährlich, weil – Schätzungen zufolge – rund 60% aller Server im Internet davon betroffen sind, also ihren „Privaten Schlüssel“ jedem zugänglich machen, der diese Lücke ausnutzen kann. Und das betrifft nicht nur Internetseiten: auch eine Vielzahl an sogenannten Mailservern (Server die für den Versand und Empfang von E-Mails zuständig sind, z.B. GMX, Freenet, etc.) weisen/wiesen die entsprechende Lücke auf. Also können auch die Inhalte von E-Mails, die zwischen den Mailservern verschlüsselt verschickt werden, mitgelesen werden. Auch eine Reihe anderer sensibler Dienste ist davon betroffen, beispielsweise VPN-Tunnel (verschlüsselte Tunnel im Internet, die z.B. Firmenstandorte miteinander vernetzen), oder Kommunikationsdienste von Smartphone-Apps.
Das wirklich Schlimme daran ist, dass es nur eine Möglichkeit gibt, Heartbleed und seine Auswirkungen und Gefahren zu bekämpfen: man muss sowohl die Sicherheitslücke schließen, als auch die privaten Schlüssel eines Servers ersetzen und durch neue Schlüssel austauschen. Da die Lücke seit etwa 2 Jahren grassiert und nicht 100%ig auszuschließen ist, ob die Dienste, die man nutzt, betroffen sind, ist es ratsam _alle_ Kennwörter zu ändern, die man im Zusammenhang mit Web- und Mail-Diensten nutzt. ABER VORSICHT: die Kennwörter sollte man erst und NUR ändern, wenn die betroffenen Webseiten und Dienste bestätigen können, dass sie die Lücke geschlossen und ihre „Privaten Schlüssel“ ausgetauscht haben. Unter dem Artikel zeige ich noch kurz, wie das im Falle eines Debian, oder Ubuntu-Servers (Linux-Betriebssysteme) geht.
Da wir nun wissen, dass ein „Privater Schlüssel“ niemals, niemals, niemals in die Hände anderer Personen gelangen darf, bleibt die Frage „Was bedeutet das für mich eigentlich? Ich hab‘ doch nichts zu verbergen…“ Dazu mehrere Kategorien:
Für Privatpersonen:
Ändert bitte _alle_ Passwörter! Ich weiß, es nervt: Gefühlt soll man mittlerweile jede Woche seine ganzen Passwörter ändern, weil die Medien dazu aufrufen. Aber in dem Fall führt kein Weg dran vorbei. Bitte ändert die Passwörter aber erst, wenn die entsprechenden Dienste ihr Okay gegeben haben, da die ganze Angelegenheit sonst vollkommen sinnlos ist, da es ja möglich ist, die Kommunikation (die mit den alten „Privaten Schlüsseln“ verschlüsselt wird) abzugreifen. Wenn Betreiber von Diensten dazu keine Auskunft geben können, oder wollen: nervt den Support und trefft sie dort, wo es weh tut: beim Geld. Schreibt den Support an, immer und immer wieder, so dass es wirtschaftlicher für die Firmen ist, die Heartbleed-Lücke zu beheben, als auf die ganzen Support-Anfragen reagieren zu müssen. Für kleinere Dienste ist das in der Regel kein Problem, da sie meistens eine überschaubare Anzahl an Servern besitzen, die schnell geupdatet sind. Bei größeren Firmen, wie GMX, oder web.de kann es allerdings deutlich länger dauern, da hier viele, viele Server betroffen sind und solche Änderungen auch immer mit dem Ausfall bestimmter Dienste und Systeme verbunden sein können.
Für Blogger:
Drei Möglichkeiten: ihr betreibt ein Blog bei einem Dienst, wie wordpress.com, oder blogger? Informiert euch, ob ihr betroffen seid und nervt gegebenenfalls den Support (wie bei Privatpersonen beschrieben) und setzt sie unter Zugzwang. Ihr betreibt einen Blog auf einem eigenen, selbstverwalteten Server? Dann nutzt ihr (hoffentlich) verschlüsselte Verbindungen, um euren Blog zu administrieren, oder Artikel zu schreiben. In dem Fall müsst ihr die Sicherheitslücken selbstständig schließen und die privaten Schlüssel austauschen, ein kleines How-To steht unter dem Artikel. Oder ihr habt euren Blog auf einem Server, den jemand anderes verwaltet? Sprecht euren Admin an und fragt, ob die Lücke behoben wurde. Wenn nicht, die entsprechenden Infos befinden sich am Ende dieses Artikels.
Für Unternehmen:
Jackpot! Um Wirtschaftsspionage zu verhindern, gehen Sie über Los und schließen Sie auf allen Ihren betroffenen Servern die Sicherheitslücke, tauschen Sie alle privaten Schlüssel auf den betroffenen Servern aus und ändern Sie alle Passwörter für alle Accounts, ansonsten geht es direkt ins Gefängnis. ;)
Es gibt im Internet mittlerweile unzählige Artikel zur Heartbleed-Lücke, bitte belest und informiert euch weiter, da sie den Titel als „größte Sicherheitslücke aller Zeiten“ leider wirklich verdient hat.
Für meine geschätzten Sysadmin-Kollegen hier noch eine knappe Anleitung, wie die Lücke unter Ubuntu-Linux 12.04 geschlossen werden kann. Da ich das Rad nicht neu erfinden möchte, gibt es einen Link zu einem Artikel, der beschreibt, wie die „Privaten Schlüssel“ ausgetauscht werden.
per SSH mit dem Server verbinden und als priviligierter Benutzer (der sudo ausführen darf) einloggen: zuerst prüfen wir, ob wir betroffen sind: wir updaten die Paketquellen und installieren das Paket „apt-show-versions“
sudo apt-get update && sudo apt-get install apt-show-versions
sudo apt-show-versions openssl
jetzt wird es spannend:
bekommt ihr als Ausgabe z.B. „openssl 1.0.1-3…“ müsst ihr die openssl-Bibliothek unbedingt updaten. Betroffen sind alle Versionen bis einschließlich dieser: „openssl 1.0.1-3…“. Erst ab Version „openssl 1.0.1-4ubuntu5.12“ ist die Lücke geschlossen worden. In dem Fall müssen wir die Pakete „upgraden“, wir fangen an mit einem Testlauf:
sudo apt-get -V -s upgrade
Ist der Testlauf okay, kommen wir zum eigentlichen Update:
wollt Ihr nur die openssl-Pakete updaten, führt folgendes aus:
sudo apt-get install –only-upgrade openssl
sudo apt-get install –only-upgrade libssl1.0.0
um alle Pakete zu upgraden – was eigentlich ratsam ist, aber in bestimmten Fällen zu Problemen führen kann – führt folgendes aus:
sudo apt-get upgrade
nach dem Test überprüfen wir die openssl-Version
sudo openssl version -a
# Ist sie – wie abgebildet – mindestens auf Montag, den 07. April 2014 datiert, ist die
# Heartbleed-Lücke geschlossen
# Das war easy :)
Um die Zertifikate zu ändern möchte ich an dieser Stelle auf diese – wirklich gute – Anleitung hinweisen, die sich der Problematik bereits angenommen hat:
https://www.digitalocean.com/community/articles/how-to-protect-your-server-against-the-heartbleed-openssl-vulnerability
Solltet ihr Hilfe, oder Unterstützung dabei benötigen, schreibt mich gerne unter it(ätt)sarahmaria.de an oder hinterlasst einen Kommentar.
Es grüßt der Herr S. (der gerade seinen ersten Gast-Blogatikel verfasst hat :) )