Kalendář
  • 17.6.2019Deloitte Academy - Základy kybernetické bezpečnosti
  • 4.7.2019In4Sec Cruise
  • 16.7.2019RSA Conference
  • 26.10.201914th Cyber Security Conference UISGCON14
AEC v1.0.4

Kyber bezpecnost
@Kyberbezpecnost.cz

Shrnutí problému Heartbleed

10. 4. 2014

Tento článek navazuje na zveřejněnou informaci o zranitelnosti Heartbleed. Přináší shrnutí známých informací a doporučení postupu pro administrátory a uživatele.

Podstata zranitelnosti

V úterý 8. dubna 2014 byla zveřejněna vážná zranitelnost knihovny OpenSSL nazvaná “Heartbleed“ (krvácení srdce) (CVE-2014-0160). OpenSSL je open source softwarová knihovna, která je implementací protokolu TLS (Transport Layer Security). Protokol TLS slouží k autentizaci a šifrování spojení mezi klientem a serverem. Obě komunikující strany jsou jeho prostřednictvím jasně identifikovány, takže se například podvodník nemůže vydávat za server internetového bankovnictví, a spojení je navíc šifrováno, takže komunikace není čitelná pro nikoho kdo stojí mezi klientem a serverem. Při implementaci adekvátního šifrování je tak protokol TLS považován za záruku bezpečnosti proti tzv. MITM (man-in-the-middle) útokům. Naprostá většina internetových služeb ho využívá k autentizaci uživatele a k šifrování celého provozu, obvykle ve formě  aplikačního protokolu HTTPS.
V březnu 2012 byla do knihovny OpenSSL začleněna nadstavba Heartbeat (tep srdce). Tato nadstavba usnadňuje udržení komunikace mezi klientem a serverem pomocí protokolu TLS. Díky Heartbeat jsou v pravidelných intervalech vyměňovány pakety (zprávy heartbeat_request a heartbeat_reply) mezi serverem a klientem a nedochází tak k přerušení přenosu ani v případě, že nejsou vyměňována žádná skutečná data. Při případném přerušení a následném obnovení přenosu skutečných dat prostřednictvím TLS pak nemusí znovu proběhnout celá složitá procedura navázání TLS spojení (handshake) mezi klientem a serverem.
Jak se ale nyní ukázalo, implementace protokolu Heartbeat v knihovně OpenSSL trpí vážnou zranitelností. V jejím důsledku může útočník zaslat upravenou zprávu heartbeat_request, která má malý vlastní obsah, ale její deklarovaná velikost je mnohem větší (až 64kB). V odpovědi heartbeat_reply pak zranitelný server k původně zaslaným datům ještě přidá data ze své paměti až do deklarované velikosti obsahu heartbeat_request. To znamená, že útočníkovi jsou volně přístupné přihlašovací údaje, šifrovací klíče, předávané session cookies i samotný obsah komunikace. Takový útok navíc nelze zpětně detekovat. Zranitelnost Heartbleed byla opravena ve verzi OpenSSL 1.0.1g vydané 8. dubna 2014.

Rozsah problému

Knihovna OpenSSL je nejrozšířenější implementací protokolu TLS a využívají ji asi dvě třetiny serverů používající tento protokol. Z toho asi 17% serverů implementovalo rozšíření Heartbeat, takže celkem bylo zranitelných asi 500 000 serverů. Jedná se zejména o servery založené na operačním systému Linux, zatímco implementace TLS ve Windows serverech nebyla zranitelností Heartbleed postižena.  Podle dosud zveřejněných informací se zdá, že zranitelná je i implementace OpenSSL v mobilním operačním systému Android.
Na protokol TLS spoléhá naprostá většina služeb, které vyžadují důvěrnost a šifrování komunikace jako jsou e-mailové služby, e-shopy, platební brány, internetové bankovnictví, sociální sítě atd. V podstatě se jedná o naprostou většinu služeb, které vyžadují přihlášení uživatele.
Dosud nebyly zveřejněny žádné konkrétní důkazy o tom, že by v době mezi březnem 2012 a dubnem 2014 tato zranitelnost byla zneužita, ale v zájmu předběžné opatrnosti je nutné považovat informace předávané v tomto období pomocí protokolu TLS za kompromitované. Vzhledem k počtu dotčených serverů a citlivosti informací předávaných pomocí protokolu TLS se jedná o jeden z nejzásadnějších dosavadních problémů internetové komunikace. V současnosti už je k dispozici řada způsobů využití (exploitů) zranitelnosti Heartbleed, což činí velké množství dosud neopravených serverů  zranitelnými. Klíčová je otázka, zda mohou být touto zranitelností postiženy soukromé klíče, které servery používají k šifrování komunikace. Názory na tento problém se různí, ale převažuje domněnka že ano. To znamená, že ani po aplikaci aktualizace na OpenSSL 1.0.1g není TLS komunikace serveru bezpečná, pokud se už útočníkům v mezidobí podařilo získat soukromý klíč.

Jak postupovat

Administrátoři serverů využívajících OpenSSL by měli okamžitě aktualizovat na verzi 1.0.1f. Pokud to není možné, pak by měli zkompilovat současnou používanou verzi OpenSSL 1.0.1 s vypnutým rozšířením Heartbeat. Neoficiální seznam produktů využívajících knihovnu OpenSSL a byly už aktualizovány je k dispozici zde. Vzhledem k možnosti, že zranitelnost Heartbeat byla už v mezidobí zneužita, měli by považovat za kompromitované a změnit soukromé klíče a X.509 certifikáty.
Uživatelé by měli změnit hesla na všech službách, které využívají protokol HTTPS a mohly být v minulosti zranitelné. Změna hesla má smysl pouze v případě, že zranitelnost Heartbleed už byla na daném serveru opravena. Ke zjištění zda tomu tak je slouží řada on-line nástrojů. Uživatel si také může nechat zobrazit X.509 certifikát, který server využívá (ve většině prohlížečů kliknutím na ikonu zámku v adresním řádku a poté volbou zobrazit certifikát). Pokud má počátek platnosti po 8. dubnu 2014, pak byl certifikát pravděpodobně vydán až po opravení zranitelnosti a je ho možné považovat za bezpečný.
Před každým přihlášením se k některé službě využívající protokol HTTPS se v nejbližší době doporučuje zkontrolovat její zranitelnost a v případě, že dosud nebyla opravena, ji v mezidobí nevyužívat.
Share Button

Komentáře