Idi na sadržaj

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.

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

  • 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 Arhivirano 16. 4. 2014. na Wayback Machine 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. 1 2 SCTP. Strategies to Secure End-To-End Communication, S. 66f. Arhivirano 13. 5. 2014. na Wayback Machine 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 Arhivirano 13. 4. 2014. na Wayback Machine učitano 18.4.2014. (en)
  18. Najvažnija pitanja i odgovori oko Heartbleeda učitano 18.4.2014. (de)
  19. 1 2 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 Arhivirano 27. 12. 2017. na Wayback Machine 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)