Ce este vulnerabilitatea Heartbleed?

Una dintre cele mai cunoscute vulnerabilități de la mijlocul anilor 2010 a fost numită „Heartbleed”. Heartbleed a fost deosebit de grav deoarece software-ul pe care l-a afectat „OpenSSL”, principala bibliotecă criptografică pentru conexiunile HTTPS, care sunt foarte utilizate pe scară largă. Pentru a înrăutăți lucrurile, vulnerabilitatea a fost prezentă în OpenSSL de mai bine de doi ani înainte a fost descoperit, mediatizat și reparat, ceea ce a însemnat că mulți oameni foloseau un vulnerabil versiune.

Heartbleed a fost o vulnerabilitate de scurgere de date în extensia heartbeat care, atunci când a fost exploatată, a scurs date din RAM de la server la client. Extensia heartbeat este folosită pentru a menține o conexiune între serverul web și client fără a face o cerere normală de pagină.

În cazul OpenSSL, clientul trimite un mesaj către server și informează serverul de cât de lung este mesajul, până la 64KB. Serverul ar trebui apoi să răspundă la același mesaj. În mod esențial, totuși, serverul nu a verificat dacă mesajul a fost atât de lung cât a susținut clientul. Acest lucru însemna că un client putea trimite un mesaj de 10 KB, să pretindă că este de 64 KB și să obțină un răspuns de 64 KB, cei 54 KB suplimentari fiind formați din următorii 54 KB de RAM, indiferent de datele stocate acolo. Acest proces este bine vizualizat de către

benzi desenate XKCD #1354.

Imaginea prin amabilitatea lui xkcd.com.

Făcând o mulțime de solicitări mici de bătăi ale inimii și susținând că sunt mari, un atacator și-ar putea construi o imagine a celei mai multe dintre memoria RAM a serverului, împletind răspunsurile. Datele care sunt stocate în RAM care ar putea fi scurse includ chei de criptare, certificate HTTPS, precum și date POST necriptate, cum ar fi numele de utilizator și parolele.

Notă: este mai puțin cunoscut, dar protocolul bătăilor inimii și exploit-ul au funcționat și în cealaltă direcție. Un server rău intenționat ar fi putut fi configurat să citească până la 64 KB de memorie utilizator per solicitare de bătăi de inimă.

Problema a fost descoperită de mai mulți cercetători de securitate în mod independent la 1 aprilie 2014 și a fost dezvăluită în mod privat către OpenSSL, astfel încât să poată fi creat un patch. Bug-ul a fost făcut public când patch-ul a fost lansat pe 7 aprilie 2014. Cea mai bună soluție pentru a rezolva problema a fost aplicarea patch-ului, dar a fost, de asemenea, posibilă remedierea problemei prin dezactivarea extensiei heartbeat dacă corecția imediată nu era o opțiune.

Din păcate, în ciuda faptului că exploitul este public și în general binecunoscut, multe site-uri web încă nu s-au actualizat imediat, vulnerabilitatea fiind încă găsită ocazional chiar și ani mai târziu. Acest lucru a dus la utilizarea unui număr de cazuri de exploit pentru a obține acces la conturi sau a scurge date.