Der Autor dieser relativ überflüssigen und unnötig geschwätzigen Erweiterung arbeitet heute bei T-Systems. So ein Zufall.
Die "Heartbeat"-Erweiterung an sich ist weder unnötig (sie dient dazu, Verbindungen aufrecht zu erhalten) noch irgendwie problematisch. Und außerdem ist sie offizieller Bestandteil des SSL/TLS Protokolls. Das Problem beim sogenannten "Heartbleed Bug" ist nicht die Heartbeat-Erweiterung selbst, sondern viel mehr deren fehlerhafte Umsetzung in der OpenSSL Bibliothek. In OpenSSL gab es im entsprechenden Code einen ganz klassischen Programmierfehler, nämlich einen "out of bounds" Speicher-Zugriff. Der "Heartbeat" sieht eigentlich vor, dass der Client eine beliebige Nachricht an den Server schickt und der Server diese 1:1 wieder zurück schickt. Nur hat man bei OpenSSL "vergessen" die Größe der eingehenden Nachricht zu checken. Es wurden einfach genau so viele Bytes aus dem Eingabe-Puffer in den Ausgabe-Puffer kopiert, wie vom Client angefragt. Wenn der Client also 64 KByte anfragt (der größte zulässige Wert) aber tatsächlich nur 1 Byte an Daten geschickt hatte, dann wurde munter über das Ende des Eingabe-Puffers hinaus gelesen und alles schön in den Ausgabe-Puffer kopiert! Solche Fehler können in C leider all zu leicht passieren, ich würde daher nicht unbedingt Absicht unterstellen. Zwar gibt es Tools wie "Valgrind" mit denen man solche Fehler aufspüren kann - aber eben nur wenn sie zur Laufzeit tatsächlich auftreten! Wie so oft war aber auch in diesem Fall bei "korrekter" Nutzung der Software alles wunderbar in Ordnung. Das Problem trat ja nur bei speziell manipulieren Anfragen auf. Dass so etwas nicht bei der Code-Review aufgefallen ist, macht mir allerdings Sorgen...
Es handelt sich übrigens auch nicht um einen "Virus", wie hier behauptet :ani_lol: