Co je zranitelnost Heartbleed?

Jedna z nejznámějších zranitelností poloviny roku 2010 se jmenovala „Heartbleed“. Heartbleed byl obzvláště vážný, protože ovlivnil software „OpenSSL“, hlavní kryptografickou knihovnu pro připojení HTTPS, která jsou velmi široce používána. Aby toho nebylo málo, zranitelnost byla v OpenSSL přítomna více než dva roky předtím bylo objeveno, zveřejněno a opraveno, což znamenalo, že mnoho lidí používalo zranitelné verze.

Heartbleed byla zranitelnost úniku dat v rozšíření heartbeat, která při zneužití unikla data z RAM ze serveru do klienta. Rozšíření prezenčního signálu se používá k udržení spojení mezi webovým serverem a klientem, aniž by bylo nutné provést normální požadavek na stránku.

V případě OpenSSL klient odešle zprávu na server a informuje server o délce zprávy, až do velikosti 64 kB. Server by pak měl stejnou zprávu odeslat zpět. Zásadní však je, že server ve skutečnosti nezkontroloval, zda je zpráva tak dlouhá, jak klient tvrdil, že je. To znamenalo, že klient mohl odeslat zprávu o velikosti 10 KB, tvrdit, že má 64 KB a získat odpověď 64 KB, přičemž dalších 54 KB se skládá z dalších 54 KB RAM, bez ohledu na to, jaká data tam byla uložena. Tento proces je dobře vizualizován

XKCD komiks #1354.

Obrázek se svolením xkcd.com.

Zadáním mnoha malých požadavků na srdeční tep a tvrzením, že byly velké, by si útočník mohl vytvořit obrázek o většině paměti RAM serveru tím, že poskládal odpovědi dohromady. Data uložená v paměti RAM, která by mohla uniknout, zahrnují šifrovací klíče, certifikáty HTTPS a také nešifrovaná data POST, jako jsou uživatelská jména a hesla.

Poznámka: Je to méně známé, ale protokol srdečního tepu a exploit fungovaly i v opačném směru. Škodlivý server mohl být nakonfigurován tak, aby četl až 64 kB uživatelské paměti na požadavek prezenčního signálu.

Problém byl objeven několika bezpečnostními výzkumníky nezávisle na prvním dubnu 2014 a byl soukromě odhalen OpenSSL, aby mohla být vytvořena oprava. Chyba byla zveřejněna, když byl patch vydán sedmého dubna 2014. Nejlepším řešením k vyřešení problému bylo použití opravy, ale problém bylo také možné napravit deaktivací rozšíření prezenčního signálu, pokud oprava nebyla možná.

Naneštěstí, přestože je exploit veřejný a obecně dobře známý, mnoho webů se stále neaktualizovalo okamžitě a zranitelnost se občas objevila i po letech. To vedlo k řadě případů zneužití, které bylo použito k získání přístupu k účtům nebo úniku dat.