Heartbleed
Heartbleed je bug (greška) u izvornom kodu OpenSSL biblioteke koji je zbog rasprostranjenja imao posljedice za veliki dio interneta. U 2014. su mnogi svjetski mediji objavljivali o tome.
Opis
urediGreška je nastala tokom implementacije Heartbreak dodatka, koji osigurava prijenos informacija na nivou TLS i DTLS. Heartbreak je predviđen da korisnik A šalje korisniku B dodatne pakete veličine 16 kB (payload i padding), koje se vraćaju nazad. Na taj način se ispituje postojeća veza sa serverom.[1] Kod implementacije Heartbreaka nije predviđena kontrola veličine paketa, time je moguće da potencijalni napadač predstavljajući se kao korisnik A, šalje pakete i od 64 kB. Druga strana (korisnik B) vraća pakete iste veličine.[2][3]
Ovaj postupak napadač može više puta zaredom uraditi. Testovi su potvrdili da se na taj način mogu učitati osim privatnog ključa X.509 za serverski certifikat, korisničko ime i lozinka za server.[4]
Nastanak
urediIzvorni kod sa OpenSSL bugom unesen je 31. decembra 2011. od strane jedinog saradnika u timu OpenSSL fondacije.[5] Ova verzija objavljena je pod brojem 1.0.1 i dostupljena 14. marta 2012. Prije toga je na njemačkom fakultetu u Münsteru jedan student napravio izmjene u izvornom kodu u okviru svoje disertacije. Tema je bila SCTP (Stream Control Transmission Protocol), izmijenjeni kod sa Heartbreak dodatkom predao je po završetku OpenSSL organizaciji.[6]
Student je imao pomoć dvojice saradnika prilikom specifikacije prema RFC 6520.[7] Kada je student branio svoju dizertaciju, izmjenu dizajna je obrazložio tim da će biti poboljšana zaštita od kriptoanalitičkih napada tzv. ubačenog teksta (en. Known-Plaintext).[6]
Kod ovog buga radi se o čitanju keša (engleski: buffer-over-read). Za razliku od buffer-over-flow ne upisuju se podaci izvan keš memorije. Programer (student) je obrazložio da je greška nastala slučajno, pošto je izostavljena kontrola jedne ulazne varijable, a koja sadrži informaciju o veličini paketa. Ova greška je bila trivijalna ali s posljedicama. Uz to je dodao da nije mogla biti neposredno otkrivena jer OpenSSL fondacija ne raspolaže s dovoljno ljudi.[8][9]
Otkriće
urediNa dan 7. aprila 2014. OpenSSL fondacija izdala je upozorenje da bi verzije 1.0.1 do 1.0.1f, kao i 1.0.2 beta do 1.0.2 beta1[10][11] mogle sadržavati Hearthbleed grešku. Moguće je kompilirati OpenSSL i bez Heartbreake varijante čime ona postaje imuna za Hearthbleed.[12] Ovaj sigurnosni propust je ostao neprimjećen ukupno 27 mjeseci, sve dok Antii Karjalainen (Coednomicon, Oulu, Finska) i Neel Mehta (Google Security), nezavisno jedan od drugog, nisu otkrili i uspješno otklonili grešku.[13][14][15][16][17]
Posljedice
urediPored kompromitacije korisničkog imena i lozinke za server, moguće je naknadno dešifrirati s privatnim ključem i cjelokupni prijašnji prenos podataka. Izuzetak su oni podaci koji su zaštićeni pomoću Perfect Forward Secrecy. Uz to je moguće s kompromitovanom serverskim certifikatom izvršiti kriptoanalitički napad "čovjek u sredini" (en.Man-in-the-middle). Ovaj bug se smatra da je obuhvatio pretežno email korisnike kao i chat stranice. To važi samo za one servere koji koriste dotičnu verziju OpenSSL-a. SSH se smatra sigurnim pošto ne koristi TLS.[18] Do sada je obuhvaćeno oko 500.000 web stranica.[19]
Privatni ključ serverskih certifikata, koji koriste dotičnu verziju OpenSSL, mora se smatrati kompromitovanim. Preporučuje se njihova izmjena.[20] Zbog mnoštva obuhvaćenih sistema, i sami komercijani proizvođači certifikata stajali su u aprilu 2014. pred velikim izazovom.[21] Kriptolog i stručnjak za sigurnost interneta Bruce Schneier dao je, tim povodom, sljedeći komentar:[22]
Katastrofalno je prava riječ. Na skali od 1 do 10 to je 11 (eng. Catastrophic is the right word. On the scale of 1 to 10, this is an 11)
Theo de Raadt dizajner za OpenBSD i OpenSSH nazvao je "neodgovornim" postupak OpenSSL tima, zbog toga što su stavili brzinu objavljivanja nove verzije važnijim od kontrole vitalnih sigurnosnih funkcija.[23] Konkretno se radilo o tome da se za OpenSSL koriste funkcije malloc i free čime se zaobilaze mogući zaštitni mehanizmi operativnog sistema. OpenSSL fondacija je izjavila da su njihovi resursi ograničeni i da se ne radi o problemu vodećih struktura, tim povodom su zatražili veću finansijsku pomoć.[24] Linux fondacija je pokrenula inicijativu Core Infrastructure Initiative kojoj su se priključile poznate kompanije. Navodno su Amazon, Cisco, Dell, Facebook, Fujitsu, Google, IBM, Intel, Microsoft i još neki drugi spremni donirati milione dolara koji bi se utrošili za OpenSSL kao i druge projekte. OpenSSL fondacija, bi prema prvim informacijama, imala na raspolaganju oko 100.000 dolara godišnje.[25]
Eventualna kompromitacija ne ostavlja tragove na dotičnom sistemu, pa nije moguće ustanoviti da li je ovaj sigurnosni proboj ranije već upotrebljavan. Postoje indicije za određene događaje u novembru 2013.[26][27][28] Informativna agencija Bloomberg objavila je o "dvije informisane osobe", prema kojime je Heartbleed masivno upotrebljavan od strane NSA,[29] što je od strane NSA odmah demantovano.[30][31] Michael Daniel, glasnogovornik NSA je na zvaničnom blogu Bijele kuće izjavio da se proboji upotrebljavaju u određenim slučajevima ali samo za "sprečavanje terorističkih napada". U tom slučaju NSA i ne objavljuje eventualno otkrivene bugove.[19]
U okviru povlačenja problematičnih certifikata,(CRL i OCSP) nisu postojale mogućnosti da se isti podrobno ispitaju.[32]
Razno
uredi- Kod kanadske porezne uprave zapažena je krađa oko 900 identifikacionih brojeva za socijalno osiguranje, i to samo u roku od 6 sati.[33]
- Cisco Systems je objavio da su pojedini modeli IP telefona obuhvaćeni Heartbleed problematikom.[34]
- Operativni sistem Android s verzijom 4.1.1, dostupnoj u aprilu 2014, nije obuhvaćen HeartBleedom.[35]
- Postojeće osvježavanje firmwarea dovelo je do potpunog zakazivanja NAS marke Synology.[36]
Također pogledajte
urediVanjski linkovi
uredi- Zvanična stranica od Codenomicon Ltd., na kojoj je otrkiće HeartBleeda objavljeno Arhivirano 7. 4. 2014. na Wayback Machine 18.4.2014. (en)
- Golem.de: Fragen und Antworten zu Heartbleed 18.4.2014. (de)
- Funkcija HeartBleed eksploita 18.4.2014. (de)
- Štete nastale HeartBleedom, ove lozinke moraju se odmah izmijeniti. Spisak dotičnih veb stranica i mejl provajdera 18.4.2014. (en)
- Kako ispitati da li je neka stranica ranjiva i da li je certifikat promijenjen? 24.4.2014. (de)
Reference
uredi- ^ R. Seggelmann, M. Tuexen, M. Williams: Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension (RFC 6520), februar 2012. (en)
- ^ Funkcija Heartbleed ekpsloita učitano 18.4.2014 (de)
- ^ existential type crisis: Diagnosis of the OpenSSL Heartbleed Bug Arhivirano 9. 4. 2014. na Wayback Machine opširniji opis funcije učitano 18.4.2014 (en)
- ^ Lozinka kompromitovana: HeartBleed proboj s katastrofalnim posljedicama, učitano 18.4.2014. (de)
- ^ git-commit Nalazi se u datotekama ssl/d1_both.c Arhivirano 1. 9. 2017. na Wayback Machine i ssl/t1_lib.c Arhivirano 1. 9. 2017. na Wayback Machine učitano 18.4.2014. (en)
- ^ a b SCTP. Strategies to Secure End-To-End Communication, S. 66f.[mrtav link] učitano 18.4.2014. (en)
- ^ R. Seggelmann, M. Tuexen, M. Williams: Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension (RFC 6520), februar 2012. (en)
- ^ Programer u intervjuu za Sunday Morning Herlad učitano 18.4.2014. (en)
- ^ "Heartbleed" programer kaže da je greška nastala zbog nepažnje učitano 18.4.2014. (de)
- ^ OpenSSL sigurnosno upozorenje Arhivirano 8. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
- ^ Heartbleed bug, zasebna stranica Arhivirano 7. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
- ^ OpenSSL bug: Preporučen update učitano 18.4.2014. (de)
- ^ Objava od Codenomicona učitano 18.4.2014. (en)
- ^ Kako je Codenomicon našao internet kugu Heartbleed Bug učitano 18.4.2014. (en)
- ^ Google i šest Finaca otkrili bug učitano 18.4.2014. (de)
- ^ Proces otrkivanja učitano 18.4.2014. (en)
- ^ Bug otklonjen Arhivirano 13. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
- ^ Najvažnija pitanja i odgovori oko Heartbleeda učitano 18.4.2014. (de)
- ^ a b NSA obaviještava kada se koriste sigurnosni proboji a kada ne - iz[mrtav link] Gulli učitano 29.04.2014. (de)
- ^ Heartbleed bug: Ove lozinke morate odmah izmijeniti učitano 18.4.2014. (de)
- ^ Heartbleed SSL lančana reakcija: Država traži nove certfikate učitano 18.4.2014. (de)
- ^ Heartbleed.učitano 18.4.2014. (en)
- ^ Theo De Raadt o Hearbleedu Arhivirano 11. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
- ^ Poslije Heartbleeda: OpenSSL projekat moli za novčane donacije učitano 16.4.2014. (de)
- ^ Linux fondacija skuplja milione iz Heise učitano 29.04.2014. (de)
- ^ Lančana reakcija za internet: Horor bug u OpenSSL-u. učitano am 18.4.2014.
- ^ Učitavanje klučeva sa OpenSSL-om. učitano 18.4.2014. (de)
- ^ Tragovi Heartbleeda već u novembru 2013 učitano 10.4.2014. (de)
- ^ Sigurnosni proboj u internetu: NSA je sistematski koristila Heartbleed učitano 18.4.2014. (de)
- ^ NSA i HeartBleed u talasu sumnji učitano 18.4.2014. (de)
- ^ NSA demantuje zloupotrebu Heartbleeda učitano 18.4.2014. (en)
- ^ Povlačenje certifikata ne donosi mnogo 18.4.2014. (de)
- ^ Heartbleed: Krađa podataka kod kanadske porezne uprave učitano 18.4.2014. (de)
- ^ Brojni Cisco i Juniper proizvodi zadešeni učitano 18.4.2014. (de)
- ^ Saopštenje Google korporacije učitano 18.4.2014. (de)
- ^ Heartbleed bugfix dovodi do zakazivanja NAS sistema 18.4.2014. (de)