Kas yra Heartbleed pažeidžiamumas?

Vienas iš labiausiai žinomų 2010 m. vidurio pažeidžiamumų buvo vadinamas „Heartbleed“. „Heartbleed“ buvo ypač rimta, nes ji paveikė „OpenSSL“, pagrindinę kriptografinę biblioteką HTTPS ryšiams, kurie yra labai plačiai naudojami. Dar blogiau, kad OpenSSL pažeidžiamumas buvo daugiau nei prieš dvejus metus jis buvo aptiktas, paviešintas ir pataisytas, o tai reiškė, kad daug žmonių naudojosi pažeidžiamu versija.

„Heartbleed“ buvo „Heartbeat“ plėtinio duomenų nutekėjimo pažeidžiamumas, kurį išnaudojus, duomenys iš RAM nutekėjo iš serverio į klientą. Širdies ritmo plėtinys naudojamas palaikyti ryšį tarp žiniatinklio serverio ir kliento, nepateikiant įprastos puslapio užklausos.

OpenSSL atveju klientas siunčia pranešimą į serverį ir informuoja serverį, kokio ilgio žinutė yra iki 64KB. Tada serveris turėtų pakartoti tą patį pranešimą. Tačiau labai svarbu, kad serveris netikrino, ar pranešimas buvo toks ilgas, kaip teigė klientas. Tai reiškė, kad klientas galėjo išsiųsti 10 KB pranešimą, teigti, kad jis yra 64 KB, ir gauti 64 KB atsakymą, o papildomus 54 KB sudaro kiti 54 KB RAM, nesvarbu, kokie duomenys ten buvo saugomi. Šį procesą gerai vizualizuoja

XKCD komiksas Nr. 1354.

Vaizdas mandagumo xkcd.com.

Pateikdamas daug mažų širdies plakimų užklausų ir teigdamas, kad jos yra didelės, užpuolikas galėjo sukurti daugumos serverio RAM vaizdą, sujungdamas atsakymus. RAM saugomi duomenys, kurie gali būti nutekinti, apima šifravimo raktus, HTTPS sertifikatus, taip pat nešifruotus POST duomenis, tokius kaip naudotojų vardai ir slaptažodžiai.

Pastaba: tai mažiau žinoma, tačiau širdies plakimo protokolas ir išnaudojimas taip pat veikė kita kryptimi. Kenkėjiškas serveris galėjo būti sukonfigūruotas nuskaityti iki 64 KB vartotojo atminties už vieną širdies plakimo užklausą.

Šią problemą 2014 m. balandžio 1 d. savarankiškai aptiko keli saugumo tyrinėtojai ir ji buvo atskleista privačiai OpenSSL, kad būtų galima sukurti pataisą. Ši klaida buvo paskelbta, kai pataisa buvo išleista 2014 m. balandžio 7 d. Geriausias problemos sprendimas buvo pataisyti, bet taip pat buvo galima išspręsti problemą išjungiant širdies plakimo plėtinį, jei iš karto pataisyti nepavyko.

Deja, nepaisant to, kad išnaudojimas yra viešas ir plačiai žinomas, daugelis svetainių vis tiek nebuvo atnaujintos iš karto, o pažeidžiamumas vis dar retkarčiais aptinkamas net ir po metų. Dėl to keli išnaudojimo atvejai buvo naudojami norint gauti prieigą prie paskyrų arba nutekėti duomenims.