Luka w OpenSSL, czyli Heartbleed

Heartbleed

W poniedziałek, kiedy byłem na 4Developers, Internet obiegła informacja o załataniu luki (TLS heartbeat read overrun – CVE-2014-0160) w bibliotece OpenSSL. Początkowo wszystkim w Sieci wydawało się, ot kolejna łatka.

Byli w błędzie. Luka powoduje, że jeśli odpowiednio spreparujemy zapytanie do serwera (strona kliencka też nie jest bezpieczna np. Android 4.1.1) ujawni on 64kB danych ze swojej pamięci. Dzięki temu można uzyskać chociażby klucz prywatny używany do szyfrowania połączenia, czy dane dotyczące trwających właśnie sesji.
Niestety, luka w OpenSSL pojawiła się 14 marca 2012 roku w wersji 1.0.1 i jest związana z obsługą heartbeat TLS (stąd nazwa dziury – Heartbleed). Luka niezałatana była aż do poniedziałku (wersja 1.0.1g), czyli przez 2 lata można było „podglądać” szyfrowane połączenia.

Tylko pewna część serwerów/serwisów była bezpieczna. Ta część, która podczas budowania openssl miała opcję -DOPENSSL_NO_HEARTBEATS

Jeśli jesteśmy dużym graczem, samo załatanie błędu dużo nie da. Na pewno trzeba wygenerować nowe klucze, oraz zresetować użytkownikom hasła. Jeśli korzystasz, z któregoś z popularnych serwisów z poniższej listy – zmień hasło (CERT Vulnerability Note VU#720951):

  • Facebook
  • IFTTT
  • Instagram
  • Pinterest
  • Tumblr
  • Google
  • Yahoo
  • Gmail
  • Amazon Web Services
  • TurboTax
  • Dropbox
  • OKCupid
  • SoundCloud
  • GoDaddy
  • Minecraft

Pamiętaj, sama aktualizacja OpenSSL to nie wszystko. Musisz ponownie uruchomić usługi na serwerze, którego z niego korzystają. Które to usługi:

Więcej informacji:
The Heartbleed Bug

Sprawdź, czy strona z której korzystasz nie jest podatna na lukę:
Qualys SSL Labs – SSL Server Test