Der große Internetgau

Wegen des Heartbleed-Bugs sahen wir uns gezwungen, unsere Passwörter auszutauschen. Das sollte sowieso jeder in regelmäßigen Abständen tun. Aber weil es bisher funktionierte, scheut der eine oder andere Nutzer davor zurück. Er ist der Getriebene. Ratschäge sind wohlfeil, aber meist kommerzieller Art. Was tun?

An neuen Passwörtern führt kein Weg vorbei. Den Rest müssen die Provider mit neuen SSL-Zertifikaten erledigen. Mehr kann man augenblicklich nicht tun und hoffen, dass die alten Passwörter und Logins nicht abgegriffen wurden. Bei Überweisungen über Creditcard oder Bankverbindung sollte man gegenwärtig vorsichtig sein.

Jedem sollte klar sein, wer Online ist wird ausgeschüffelt und nachverfolgt. Manchmal erkennt man das daran, dass jede Menge Werbeeinblendungen auftauchen, von Seiten, die man vorher besucht hat. Das ist eher harmlos und lästig, meist sind Cookies und Javascripte oder Flashanimationen dafür verantwortlich. Die kann man relativ einfach über Internetoptionen/Sicherheit/Erweitert abstellen. Eventuell funktionieren dann die aufgerufenen Seiten nicht mehr vollständig. Bei Firefox bespielsweise kann man auch die Nachverfolgung deaktivieren.

Ein bischen Aufwand ist nötig, ein guter Virenscanner mit Anti-Spam und Malwarefilter Pflicht. Bezeichnend ist, dass vermutlich die Datenschnüffeldienste wohl schon seit rund zwei Jahren über die Sicherheitslücke Bescheid wussten und sie für ihre Machenschaften benutzt haben.

Was ist eigentlich Heartbleed und wie funktioniert der Exploit?

Der sogenannte Heartbeat soll es eigentlich Server und Client ermöglichen, eine TLS-Verbindung, also eine verschlüsselte Verbindung, am Leben zu halten. Zu diesem Zweck sendet einer der Kommunikationspartner eine Payload mit beliebigem Inhalt an das andere Ende. Der Kommunikationspartner schickt dann exakt die selben Daten zurück, um zu zeigen, dass die Verbindung nach wie vor in Ordnung ist.

Konkret funktioniert ein Ausnutzen der Lücke so:

„Der Angreifer schickt dem Server eine Heartbeat-Payload von einem Byte Größe, behauptet aber, sie sei beispielsweise 16 KByte groß. Der Server schreibt das Byte des Angreifers in seinen Speicher in einen Puffer namens pl. Da die eigentliche Größe der Payload nicht verglichen wird, geht der Server beim Zurücksenden der Payload von der vom Angreifer angegebenen Größe aus (payload). Er reserviert also 16 KByte Speicher (plus ein bisschen Platz für Verwaltungsinformationen)
buffer = OPENSSL_malloc(1 + 2 + payload + padding);
bp = buffer;
und kopiert dann für die Antwort die vom Angreifer angegebene Payload-Größe (mehrere KByte) an diese Stelle:
memcpy(bp, pl, payload);
An der Quelle des Kopiervorgangs pl steht aber nur ein Byte aus dem eingehenden Heartbeat. Der darauf folgende Bereich ist mit irgendwelchen anderen Daten belegt, die der Server gerade bearbeitet. Sie werden in einem Rutsch mit kopiert.

Fehler im Quellcode

Das Problem bei der Umsetzung der TLS-Heartbeat-Funktion in OpenSSL war, dass das Programm nicht überprüft, wie lang die empfangene Payload tatsächlich ist – der Empfänger glaubt dem Absender einfach. Der kann in das dafür vorgesehene Feld payload_length im Header des Payload-Paketes beliebige Werte schreiben. Lügt der Absender bei der Größe der Payload, kann er letztlich Speicher der Gegenstelle auslesen. Dieser Heartbleed-Angriff funktioniert in beide Richtungen. …

Selbstgemachte Probleme

Erschwerend hinzu kommt, dass OpenSSL seine eigene Speicherverwaltung implementiert (siehe OPENSSL_malloc()), so dass dort dann nicht irgendwelche allgemeinen Daten des Servers stehen, sondern Daten aus dem Kontext von OpenSSL. Das sind dann häufig Passwörter oder andere, gerade eben entschlüsselte Daten eines anderen Benutzers oder auch geheime Schlüssel des Servers. Und dieses komplette Datenpaket bp sendet der Server dann zurück an den Angreifer. Diesen Angriff kann man nun beliebig wiederholen und so massenweise Daten blockweise auslesen.“ (Quelle: Heise online)

Die Lage

Die Provider sind dabei die Lücke durch Patches zu schließen und neue Pässe auszustellen. Eigentlich müsste der User auch eine Mitteilung bekommen, dass sein Passwort unsicher ist, mit einer Anleitung wie der Passwortwechsel auch von unbedarften Computernutzern einfach vollzogen werden kann und worauf er bei der Auswahl achten soll. Das geschieht allerdings nur in Einzelfällen.

Wie kann man sich schützen?

Eigentlich sollte man sich einen guten alten Hefter vornehmen und dort die verschiedenen Passwörter für die unterschiedlichen Anbieter speichern. Eine Textdatei auf dem Rechner wäre kontraproduktiv. Das erschwert natürlich copy and past bei den komplizierteren PW, die man sich nicht mehr merken kann. Eventuell hilft ein passwortgeschützter USB-Stick oder eine portable Festplatte.

Hartmut Dold

Please follow and like us:
Zwischen Heartbeat und Heartbleed

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.