Što je ranjivost Heartbleed?

click fraud protection

Jedna od najpoznatijih ranjivosti sredinom 2010-ih zvala se "Heartbleed". Heartbleed je bio posebno ozbiljan jer je softver na koji je utjecao "OpenSSL", glavnu kriptografsku biblioteku za HTTPS veze, koje se vrlo široko koriste. Da stvar bude gora, ranjivost je bila prisutna u OpenSSL-u prije više od dvije godine otkriven je, objavljen i zakrpljen, što je značilo da je puno ljudi koristilo ranjivu verzija.

Heartbleed je bila ranjivost na curenje podataka u proširenju srčanog ritma koji je prilikom iskorištavanja propuštao podatke iz RAM-a s poslužitelja na klijenta. Proširenje otkucaja srca koristi se za održavanje veze između web poslužitelja i klijenta bez postavljanja uobičajenog zahtjeva za stranicu.

U slučaju OpenSSL-a, klijent šalje poruku poslužitelju i obavještava poslužitelj koliko je poruka duga, do 64KB. Poslužitelj bi tada trebao vratiti istu poruku. Međutim, najvažnije je da poslužitelj zapravo nije provjerio je li poruka bila onoliko duga koliko je klijent tvrdio da jest. To je značilo da je klijent mogao poslati poruku od 10 KB, tvrditi da je 64 KB i dobiti odgovor od 64 KB, s tim da se dodatnih 54 KB sastoji od sljedećih 54 KB RAM-a, bez obzira koji su podaci tamo pohranjeni. Ovaj proces dobro vizualizira

XKCD strip #1354.

Slika ljubaznošću xkcd.com.

Iznoseći puno malih zahtjeva za otkucajima srca i tvrdeći da su oni veliki, napadač bi mogao stvoriti sliku većine RAM-a poslužitelja spajanjem odgovora. Podaci koji su pohranjeni u RAM-u koji bi mogli procuriti uključuju ključeve za šifriranje, HTTPS certifikate, kao i nešifrirane POST podatke kao što su korisnička imena i lozinke.

Napomena: Manje je poznato, ali protokol otkucaja srca i eksploatacija također su radili u drugom smjeru. Zlonamjerni poslužitelj mogao je biti konfiguriran za čitanje do 64 KB korisničke memorije po zahtjevu za otkucaje srca.

Problem je otkrilo više sigurnosnih istraživača neovisno prvog travnja 2014. i privatno je otkriveno OpenSSL-u kako bi se mogla izraditi zakrpa. Greška je objavljena kada je zakrpa objavljena 7. travnja 2014. Najbolje rješenje za rješavanje problema bila je primjena zakrpe, ali je također bilo moguće riješiti problem onemogućavanjem proširenja otkucaja srca ako odmah zakrpa nije bila opcija.

Nažalost, unatoč tome što je eksploatacija bila javna i općenito poznata, mnoge web stranice još uvijek se nisu ažurirale odmah, a ranjivost se i dalje povremeno otkrivala čak i godinama kasnije. To je dovelo do brojnih primjera eksploatacije za dobivanje pristupa računima ili curenje podataka.