Hystérie okoľo chyby v OpenSSL, zvanej Heartbleed, už je celkom dosť. Veľa sa o nej písalo, veľa diskutovalo na sociálnych sieťach. Mnoho našich zákazníkov, partnerov, ale aj kamarátov s nami tento problém konzultovalo. Všímame si, že niektoré veci ľudia pochopili inak, ako sú. Preto sme sa rozhodli vysvetliť tri hlavné nedostatky vo vnímaní tejto zraniteľnosti.
Najkôr si však zjednodušene vysvetlíme jej princíp. Chyba sa nachádza v rozšírení Heartbeat protokolu TLS. Heartbeat udržiava nažive „nečinný“ šifrovaný kanál. Jedna strana pošle druhej správu, napríklad „CITADELO“, spolu s jej dĺžkou, teda v tomto prípade 8. Druhá strana pošle danú správu danej dĺžky naspäť. Chyba spočíva v tom, že keď pošlem správu „CITADELO“ a ako dĺžku správy uvediem 1337 miesto 8, druhá strana pošle v odpovedi 1337 bajtov. V prvých sa nachádza „CITADELO“ a v tých ďalších obsah segmentu pamäte, ktorý sa nemal dostať von. Tieto správy je možné posielať opakovanie, pričom ich prenos sa nikam nezaznamenáva. Útok teda nezanecháva prakticky žiadne stopy. V skutočnosti je to celé trochu zložitejšie, ale takýto popis pre pochopenie podstaty stačí.
Teraz sa môžeme pozrieť na rozšírené chybné názory.
Nestačí a nie je. Pomocou tejto chyby je možné prečítať kusy pamäte, ktoré obsahujú naozaj citlivé údaje. Podľa dostupných informácií sú medzi nimi privátne kľúče, heslá, či kusy komunikácie, ako napríklad hodnoty SESSIONID.
Preto treba po aktualizácii knižníc vygenerovať nové kľúčové páry a k nim vydávať nové certifikáty. Taktiež meniť heslá, ktoré sa dotknutou cestou prenášali, či odhlásiť prihlásených používateľov.
Nie je to možné. S veľmi prehnaným optimizmom možno povedať, že je možné prečítať celú virtuálnu pamäť daného procesu. A ani to nie je úplne pravda. Každopádne s touto chybou sa nedá dosiahnuť viac, ako dovoľujú oprávnenia daného procesu. Teda napríklad čítaním pamäte webového serveru nedokážem prečítať pamäť LDAP serveru, aj keď bežia v rovnakom systéme. Každý má totiž vlastného užívateľa a vlastnú virtuálnu pamäť.
Nie len servery. Útok je možné robiť v oboch smeroch. Rovnako, ako ho môže realizovať klient voči serveru, ho môže realizovať server voči kleintovi. A ani v druhom prípade útok nezanecháva žiadne stopy.
Preto treba aktualizovať aj notebooky a telefóny, ktoré sú typicky v pozícii klienta.
</p>