Mi az a Heartbleed sebezhetőség?

click fraud protection

A 2010-es évek közepének egyik legismertebb sebezhetősége a „Heartbleed” volt. A Heartbleed azért volt különösen komoly, mert az általa érintett szoftver az „OpenSSL”, a HTTPS-kapcsolatok fő kriptográfiai könyvtára, amelyeket nagyon széles körben használnak. Tovább rontja a helyzetet, hogy a biztonsági rés már több mint két éve jelen volt az OpenSSL-ben felfedezték, nyilvánosságra hozták és foltozták, ami azt jelentette, hogy sok ember használt sebezhetőt változat.

A Heartbleed egy adatszivárgási sérülékenység volt a szívverés bővítményben, amely kihasználásakor adatok szivárogtak ki a RAM-ból a szerverről a kliensre. A szívverés kiterjesztést arra használják, hogy fenntartsák a kapcsolatot a webszerver és a kliens között normál oldalkérés nélkül.

OpenSSL esetén a kliens üzenetet küld a szervernek, és tájékoztatja a szervert az üzenet hosszúságáról, maximum 64KB. A szervernek ezután ugyanazt az üzenetet kell visszhangoznia. Lényeges azonban, hogy a szerver valójában nem ellenőrizte, hogy az üzenet olyan hosszú-e, mint amennyire az ügyfél állította. Ez azt jelentette, hogy a kliens 10 KB-os üzenetet küldhet, azt állíthatja, hogy 64 KB, és 64 KB-os választ kaphat, a további 54 KB pedig a következő 54 KB RAM-ból áll, függetlenül attól, hogy milyen adatokat tároltak ott. Ezt a folyamatot jól szemlélteti a

XKCD képregény #1354.

A kép jóvoltából xkcd.com.

Ha sok kis szívverési kérést küld, és azt állítja, hogy nagyok, a támadó a válaszok összevonásával képet alkothat a szerver RAM-jának nagy részéről. A RAM-ban tárolt adatok, amelyek kiszivároghatnak, magukban foglalják a titkosítási kulcsokat, a HTTPS-tanúsítványokat, valamint a titkosítatlan POST-adatokat, például a felhasználóneveket és jelszavakat.

Megjegyzés: Kevésbé ismert, de a szívverés protokoll és az exploit a másik irányba is működött. Egy rosszindulatú kiszolgálót úgy lehetett beállítani, hogy szívverési kérésenként legfeljebb 64 KB felhasználói memóriát olvasson be.

A problémát több biztonsági kutató fedezte fel egymástól függetlenül 2014. április 1-jén, és privát módon közölték az OpenSSL-lel, hogy javítást készíthessen. A hibát akkor hozták nyilvánosságra, amikor a javítást 2014. április hetedikén kiadták. A probléma megoldására a legjobb megoldás a javítás alkalmazása volt, de a szívverés-kiterjesztés letiltásával is orvosolható volt a probléma, ha az azonnali javítás nem lehetséges.

Sajnos annak ellenére, hogy a kizsákmányolás nyilvános és általánosan ismert, sok webhely még mindig nem frissült azonnal, és a sebezhetőséget még évekkel később is megtalálták. Ez oda vezetett, hogy a kihasználást számos esetben fiókokhoz való hozzáférésre vagy adatok kiszivárogtatására használták.