HeartBleed - Vysoké učení technické v...

Preview:

Citation preview

HeartBleed

Dominika Lauková

Brno 2015

CVE-2014-0160

HEARTBLEED BUG[1]

Heartbleed bug bola chyba v kryptovacej knižnici OpenSSL a dovolovala útočníkovi vytiahnuť z pamäte až 64kB dát. Chyba sa našla až 2 roky po jej zavední.

OpenSSL 1.0.1-1.0.1f[2]

OplenSSl – implementuje protokoly SSL/TLS - univerzálna kryptovacia knižnica- opensource- kód voľne dostupný- obsahuje nástroje na generáciu RSA kľúčov, CRS (Certificate Signing Request)

- slúži na ochranu e-mailových serverov

HEARTBEAT

[3]

Slúži na udržovanie spojenia „nažive“ medzi klientom a serverom aj keď sa medzi nimi práve neposielajú žiadne data. Pretože vytvárať neustále nové spojenie je výpočetne náročne, využívajú sa správy typu REQUEST (žiadosť, od klienta k serveru) a RESPONSE (odpoveď, od servera klientovi).

Štruktúra HEARTBEAT správy:

• Type: Request (žiadosť)/ Response(opoveď)

• Payload Length: informácia pre server ako dlhý má byť payload

• Payload: ľubovoľná hodnota, ktorú klient odošle na server a server odpovie tým istým payloadom.

• Padding

• RFC (online zdroj, štruktúra Heartbeat sekcia 4)

AKO FUNGUJE HEARTBEAT?Heartbeat

Message(Request, 6, “HQ18Z”, 88 BC F6 AD FD 00 00 10)

Heartbeat Message(Response, 6,

“HQ18Z”, 10 A5 BB FA 08 FF FF 00)

Heartbeat Message(Request, 10, “FE9CS61FX2”, 38 BF F0 00 FD 12 AB CD)

Heartbeat Message(Response, 10,

“FE9CS61FX2”, 10 E5 AC 11 FF AF 64 28)

AKO FUNGOVAL HEARTBLEED BUG?

[4]

[4]

[4]

Kde bola chyba?• Bug bol commitnutý do repozitára Git commit a do zložky t1_lib.c

(dĺžka payloadu nebola nikde v kóde overovaná a preto si útočník mohol vyžiadať správu [request, 159, macka,padding], ale kedže mačka(5znakov) nie je totožná s dĺžkou paylodu (159) server odošle správu [response,159,macka+ďalších 154B dát ktoré nasledujú v pamäti, padding])

Takýmto spôsobom mohli z pamäte vytiahnuť tajné kľúce certifikátov/protokolov, prihlasovacie údaje, heslá, detaily predošlýchžiadostí,...

[5]

Oprava bugu a nová verzia OpenSSL 1.0.1g

Zdroje

[1] http://heartbleed.com/[2] https://www.deepdotweb.com/2014/06/06/security-alert-six-bugs-found-openssl/[3] https://blogs.oracle.com/dataintegration/entry/oracle_goldengate_knowledge_document_post1[4] http://xkcd.com/1354/[5] http://blog.cryptographyengineering.com/2014/04/attack-of-week-openssl-heartbleed.htmlhttp://www.pixelstech.net/article/1397040419-HeartBleed%3A-Inside-the-heart-what-causes-the-bleeding-https://www.openssl.org/news/vulnerabilities.htmlhttp://git.openssl.org/gitweb/?p=openssl.git;a=commitdiff;h=4817504https://www.youtube.com/watch?v=1dOCHwf8zVQ