Zranitelnost OpenSSL CVE-2015-1793 - o co jde tentokrát?

16. 7. 2015 | Jindřich Zechmeister

Jistě jste zaznamenali nalezení další velmi vážné zranitelnosti šifrovací knihovny OpenSSL. Ta byla okamžitě opravena a v dnešním článku se dozvíte, o co se jednalo, stejně jako zdali se zranitelnost týká i vašeho serveru a měli byste provést nápravu.

Zranitelnosti se v OpenSSL objevují pravidelně

Objevení zranitelnosti šifrovací knihovny OpenSSL je pokaždé přijato s velkou odezvou. S nadšením však nikdy, protože od známého loňského Heartbleedu jich bylo objeveno už několik. Komplikují udržování dostatečného zabezpečení, práci administrátorů neustále záplatujících servery a v neposlední řadě nepřispívají k dobrému jménu OpenSource softwaru a důvěře uživatelů v něj.

Princip zranitelnosti a důsledky

Poslední objevenou zranitelností, tedy bezpečnostní dírou, je tzv. certificate forgery. Zranitelnost umožňuje obejití ověření řětězu důvěry certifikátu a umožňuje man-in-the-middle útoky (odposlouchávání komunikace třetí stranou). OpenSSL se (od verze 1.0.1n a 1.0.2b) snaží při ověření certifikátu najít alternativní cestu ke kořenovému certifikátu, pokud první pokus o její nalezení selže.

Chyba v implementaci způsobila, že útočník může obejít některé kontroly nedůvěryhodných certifikátů a následně využít vlastní certifikát jako certifikační autoritu vydávající podvodné certifikáty. U těchto certifikátů nebude mít OpenSSL problém s důvěryhodností. Přesně se jedná o kontrolu X.509 Basic Constraints cA.

Je nutné zdůraznit, že se nejedná v žádném případě o chybu rozměru Heartbleed. Praktická zneužitelnost je u této zranitelnosti výrazně nižší, protože internetové prohlížeče knihovny OpenSSL nepoužívají. Prohlížeče jsou vůči zranitelnosti imunní a odhalí falešný certifikát díky svým ověřovacím mechanismům, které jsou na OpenSSL nezávislé (Explorer, Firefox, Safari a Chrome). Ke špatnému ověření může dojít u komunikace mezi servery, kdyby se k ověření certifikátu použilo OpenSSL, avšak tento scénář není častý.

Jak ověřit zranitelnost vašeho serveru

Zranitelnost se naštěstí netýká všech verzí OpenSSL. Postižené čtyři verze OpenSSL najdete níže. Verzi OpenSSL nainstalované na vašem serveru zjistíte snadno tímto příkazem v terminálu:

dpkg -s openssl | grep 'Version'

Záplatu musí nasadit uživatelé čtyř verzí OpenSSL; zranitelnost CVE-2015-1793 se týká pouze verzi 1.0.2c, 1.0.2b, 1.0.1n, 1.0.1o.

Verze OpenSSL 1.0.2b a 1.0.2c nechť povýší na 1.0.2d; verze 1.0.1n a 1.0.1o je vhodné povýšit na 1.0.1p.

Pokud už OpenSSL nevěříte, vyzkoušejte alternativy

Popřejme vývojářům OpenSSL více štěstí při kontrole chyb v tomto balíku a méně zranitelností do budoucna. Pokud jste však nad OpenSSL zlomili hůl, můžete zvážit přechod na některou z alternativ. Například LibreSSL (vyvíjeno autory OpenBSD, ve kterém je i používáno) nebo BoringSSL. Právě autoři BoringSSL (alternativa od Google) 24. června 2015 chybu nadaci OpenSSL nahlásili.

Zdroje:

  1. The OpenSSL "CVE-2015-1793" certificate verification bug - what you need to know 
  2. OpenSSL Security Advisory [9 Jul 2015]
  3. Dle plánu byly vydány OpenSSL 1.0.2d a 1.0.1p

Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz