heartbleed - vysoké učení technické v...

13
HeartBleed Dominika Lauková Brno 2015

Upload: others

Post on 12-Jun-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

HeartBleed

Dominika Lauková

Brno 2015

Page 2: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

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í.

Page 3: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

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

Page 4: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

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).

Page 5: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

Š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)

Page 6: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

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)

Page 7: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

AKO FUNGOVAL HEARTBLEED BUG?

[4]

Page 8: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

[4]

Page 9: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

[4]

Page 10: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

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í,...

Page 11: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

[5]

Page 12: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

Oprava bugu a nová verzia OpenSSL 1.0.1g

Page 13: HeartBleed - Vysoké učení technické v Brněbuslab.fit.vutbr.cz/.../2015/stud_prezentace/HeartBleed.pdfCVE-2014-0160 HEARTBLEED BUG [1] Heartbleed bug bola chyba v kryptovacej kižici

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