Heartbleed

S Wikipedije, slobodne enciklopedije
Simbol Heartbleeda

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[uredi | uredi izvor]

Šema napada preko Hearthbleed buga

Greš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[uredi | uredi izvor]

Izvorni 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[uredi | uredi izvor]

Na 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[uredi | uredi izvor]

Pored 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 | uredi izvor]

  • 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[uredi | uredi izvor]

Vanjski linkovi[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ R. Seggelmann, M. Tuexen, M. Williams: Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension (RFC 6520), februar 2012. (en)
  2. ^ Funkcija Heartbleed ekpsloita učitano 18.4.2014 (de)
  3. ^ 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)
  4. ^ Lozinka kompromitovana: HeartBleed proboj s katastrofalnim posljedicama, učitano 18.4.2014. (de)
  5. ^ 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)
  6. ^ a b SCTP. Strategies to Secure End-To-End Communication, S. 66f.[mrtav link] učitano 18.4.2014. (en)
  7. ^ R. Seggelmann, M. Tuexen, M. Williams: Transport Layer Security (TLS) and Datagram Transport Layer Security (DTLS) Heartbeat Extension (RFC 6520), februar 2012. (en)
  8. ^ Programer u intervjuu za Sunday Morning Herlad učitano 18.4.2014. (en)
  9. ^ "Heartbleed" programer kaže da je greška nastala zbog nepažnje učitano 18.4.2014. (de)
  10. ^ OpenSSL sigurnosno upozorenje Arhivirano 8. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
  11. ^ Heartbleed bug, zasebna stranica Arhivirano 7. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
  12. ^ OpenSSL bug: Preporučen update učitano 18.4.2014. (de)
  13. ^ Objava od Codenomicona učitano 18.4.2014. (en)
  14. ^ Kako je Codenomicon našao internet kugu Heartbleed Bug učitano 18.4.2014. (en)
  15. ^ Google i šest Finaca otkrili bug učitano 18.4.2014. (de)
  16. ^ Proces otrkivanja učitano 18.4.2014. (en)
  17. ^ Bug otklonjen učitano 18.4.2014. (en)
  18. ^ Najvažnija pitanja i odgovori oko Heartbleeda učitano 18.4.2014. (de)
  19. ^ a b NSA obaviještava kada se koriste sigurnosni proboji a kada ne - iz[mrtav link] Gulli učitano 29.04.2014. (de)
  20. ^ Heartbleed bug: Ove lozinke morate odmah izmijeniti učitano 18.4.2014. (de)
  21. ^ Heartbleed SSL lančana reakcija: Država traži nove certfikate učitano 18.4.2014. (de)
  22. ^ Heartbleed.učitano 18.4.2014. (en)
  23. ^ Theo De Raadt o Hearbleedu Arhivirano 11. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
  24. ^ Poslije Heartbleeda: OpenSSL projekat moli za novčane donacije učitano 16.4.2014. (de)
  25. ^ Linux fondacija skuplja milione iz Heise učitano 29.04.2014. (de)
  26. ^ Lančana reakcija za internet: Horor bug u OpenSSL-u. učitano am 18.4.2014.
  27. ^ Učitavanje klučeva sa OpenSSL-om. učitano 18.4.2014. (de)
  28. ^ Tragovi Heartbleeda već u novembru 2013 učitano 10.4.2014. (de)
  29. ^ Sigurnosni proboj u internetu: NSA je sistematski koristila Heartbleed učitano 18.4.2014. (de)
  30. ^ NSA i HeartBleed u talasu sumnji učitano 18.4.2014. (de)
  31. ^ NSA demantuje zloupotrebu Heartbleeda učitano 18.4.2014. (en)
  32. ^ Povlačenje certifikata ne donosi mnogo 18.4.2014. (de)
  33. ^ Heartbleed: Krađa podataka kod kanadske porezne uprave učitano 18.4.2014. (de)
  34. ^ Brojni Cisco i Juniper proizvodi zadešeni učitano 18.4.2014. (de)
  35. ^ Saopštenje Google korporacije učitano 18.4.2014. (de)
  36. ^ Heartbleed bugfix dovodi do zakazivanja NAS sistema 18.4.2014. (de)