Heartbleed


Heartbleed je jedan od najvećih sigurnosnih problema koji su se pojavili u zadnjih 10-ak godina iz razloga što gotovo dvije trećine servera na Internetu koristi OpenSSL koji sadržava ovaj problem

Ako pratite Internet portale, onda ste vjerojatno opazili jednu stvar – ne prođe niti jedan tjedan, a da neka stranica nije hakirana, da nije ukradeno milijun ili više zaporki i korisničkih imena i slično. Takvi „propusti“ su normalna stvar, odnosno mnoge web stranice imaju nekakav propust koje haker ili hakerska grupa iskoristi kako bi ukrala spomenute podatke. Nažalost, zaporke se najčešće čuvaju u bazi podataka u običnom tekstu koje svaka osoba može pročitati ukoliko ima dotičnu bazu podataka. Kada se to dogodi, hakirani web servis ili web stranica objavi vijest o tome, resetira vam šifru ili vas zamoli da to učinite i problem je riješen. Najčešće je šteta minimalna i uvijek se može popraviti. No što kada se pojavi bug u softverskom libraryju koji koristi dvije trećine web stranica? Takav bug je iznimno opasan za cijeli Internet i nedavno smo imali prilike svjedočiti tome. Zasigurno ste na svim IT portalima, pa čak i domaćim portalima koji rijetko prenose korisne i važne informacije iz IT svijeta, mogli vidjeti tekstove o bugu koji se zove Heartbleed.

To je definitivno jedan od najvećih propusta u zadnjih desetak godina, ako ne i više, i kompromitirane su gotovo sve važnije web stranice Interneta koje koriste na stotine milijuna ljudi. Zakrpa je došla izuzetno brzo, no taj propust postoji već godinama. Da li je prije toga učinjena kakva šteta, o čemu se tu zapravo radi, saznajte više u nastavku teksta.

Piše: Boris Plavljanić

Što je Heartbleed?

Heartbleed je bug u nekim verzijama OpenSSL-a koji upravlja sigurnosnim aspektima i kojeg koriste mnoge web stranice. Ukratko rečeno, slabost je u jednom dodatku koji se zove „Heartbeat“. Točnije, to je ekstenzija OpenSSL-a koja inače omogućava određenom servisu da održava sigurnu konekciju duži period vremena, ali nažalost propust omogućava hakerima da za to vrijeme ukradu podatke koji su spremljeni u memoriji sistema. Taj propust je otkrila nezavisna sigurnosna kompanija Codenomicon i Googleov stručnjak Neel Mehta. Najveći problem je što je ovaj propust tehničke prirode i „običnom“ korisniku je zapravo jako teško shvatiti o čemu se tu točno radi. Vjerujemo da će se mnogi priupitati kako je moguće da open source library, na kojem radi toliko veliki broj programera, ima takav banalni propust. Zar je moguće da ga do sada nitko nije primijetio? Neki čak dovode u pitanje znanje onih koji razvijaju OpenSSL. No, kako god bilo, kasno je za kritiziranje onih koji rade na istome, puno je važnije da se bug otkrio i da se gotovo odmah i popravio.

Kripto stručnjak John Hopkin i profesor Matthew Green su jako dobro opisali ovaj problem. Heartbeat ima sitan tehnički problem – nedostaje mu jednostavna provjera granica određenih podataka – u kôdu koji upravlja TLS porukama. Iskorištavanjem tog propusta, točnije mehanizma za održavanje sigurnosne konekcije, haker/napadač može zatražiti da mu TLS server preda relativno puno podataka iz memorije (do 64 kB). Taj dio predanih podataka kompromitira sigurnosni ključ koji se koristi za identifikaciju one osobe koja koristi određeni servis, te za kriptiranje podataka (korisničkog imena i zaporke korisnika), ali i samog sadržaja koji se razmjenjuje između korisnika i servera putem sigurnosnog kanala. Na Internetu postoji puni dokument u kojem je do detalja objašnjen ovaj problem, pa ako ste znatiželjni, svakako ga pročitajte. Napisao ga je spomenuti dvojac.

Osvrnimo se još malo na web preglednike i „zaštićene“ web stranice koje ste posjećivali, a koristile su OpenSSL. U vašem web pregledniku, točnije u traci gdje upisujete web stranicu, mogli ste vidjeti ikonicu lokota koja vam je govorila da ste zaštićeni i koja je signalizirala da nijedna treća osoba ne može pročitati informacije koje razmjenjujete sa serverom. U pravilu, samo vi imate ključ s kojim možete dešifrirati (dekriptirati) podatke koje vam server šalje.

Propust u Heartbeatu je omogućio da pametno složen upit TLS serveru, kao što smo rekli, dohvati određeni dio memorije sa ključem i da treća osoba također može dešifrirati sav sadržaj koji vam server šalje. Zato ubuduće nemojte vjerovati bilo kakvim porukama da ste sigurni – niste i nikada nećete biti 100 sigurni na Internetu. Pitanje je dana kada će se naći neki novi veliki propust u nekom drugom sigurnosnom protokolu.

Zašto je ovo važno

OpenSSL koristi otprilike dvije trećine servera na Internetu, što je zapravo strašno veliki broj servera. Neki od tih servera imaju određene verzije OpenSSL-a koje nemaju propust, odnosno ovu ekstenziju Heartbeat, no broj takvih servera je u postotku jako mali. Neke od velikih kompanija koje su pogođene ovim bugom su Yahoo koji je među prvima priznao da je problem ogroman i da se ispričavaju svojim korisnicima, iako taj propust nije njihova greška. Nadalje tu je OKCupid, Reddit, Facebook, Instagram, Pinterest, Tumblr, Google, Amazon, GoDaddy, Etsy, Flickr, Netflix, YouTube, SoundCloud, Box, Dropbox, GitHub, IFTTT, Wikipedia, WordPress, Wunderlist i još mnoge. Ako imate korisnički račun na spomenutim web stranicama obavezno promijenite šifru. Zapravo, preporučujemo vam da promijenite šifre na svim servisima, a ne samo na onima koji su priznali da imaju problem. Vjerujemo da i neke stranice koje tvrde da nisu pogođene ovim propustom koriste OpenSSL ili neke njegove dijelove. A pošto većina korisnika koristi istu šifru na svim servisima, ovo je dobra prilika da to promijenite – koristite nekoliko različitih zaporki za svoje korisničke račune. Ako ih ne možete sve zapamtiti, koristite softver za čuvanje korisničkog imena i zaporke kao što su 1Password, LastPass i slični. Većina spomenutih web stranica je vrlo brzo „zakrpala“ propuste na svim svojim serverima jer se propust riješio praktički 2 dana nakon što je u javnost procurio ovaj bug.

Da li će se i dalje koristiti OpenSSL? Hoće jer je to najpopularniji open source kriptografski library i jedan je od najsigurnijih, usprkos ovom problemu. Da li će biti još ovakvih propusta? Vjerojatno hoće, no dobra stvar je što će se sada cijeli library pretražiti, odnosno ponovno prekontrolirati i ako postoji još kakav problem vjerojatno će ga se brzo riješiti.

NSA je sve znala dvije godine

Možda najveći problem je što je NSA znala za ovaj sigurnosni problem još prije dvije godine i navodno ga je iskorištavala za prikupljanje korisničkih imena i šifri o stotinama milijuna korisnika. Ova informacija je navodno došla od nekih ljudi koji su prije radili u NSA ili još uvijek rade. Poznati časopis Bloomberg je prenio ovu informaciju, ali naravno bez imena i prezimena onoga tko je ovu tvrdnju iznio. Iskreno rečeno, ovo nas i ne čudi previše – i Edward Snowden je rekao da NSA koristi razne sigurnosne propuste kako bi prikupila informacije koje ne bi zapravo smjela imati. Naravno, čim se ova informacija pojavila u javnosti, ljudi iz NSA su se požurili demantirati istu. U svojoj kratkoj objavi su rekli da nisu znali ništa o tome, da su i njihovi stručnjaci iznenađeni ovim bugom i da je sve ostalo laž. Pri tome misle na nekoliko članaka koji optužuju Bijelu kuću i NSA da su znali za Heartbleed i prije.

Ako je istina da su znali, to znači da su i mnoge druge američke agencije znale za Heartbleed i da je postojao „backdoor“ s kojim su mogli bez problema ulaziti u tuđe korisničke račune, uzimati sve informacije koje su im bile dostupne, a to nitko ne bi znao iz razloga što su se mogli spojiti bez ikakvog „nasilnog“ hakerskog napada. Server bi ih identificirao kao osobu za koju se predstavljaju i dao bi im podatke koje su htjeli. Što baca jedno novo svjetlo na njihov rad – možda i mnoge IT kompanije koje su nedavno optužene da su dale pristup NSA svojim podacima, nisu krive za to. Nisu jednostavno mogle znati tko dohvaća podatke sa servera. Jedan zanimljiv tweet objavio je Matthew Prince, vlasnik sigurnosne kompanije Cloudflare – on je rekao da je danas izuzetno teško biti na čelu tech kompanije jer se morate boriti protiv ovakvih propusta, ali i vlastite države i vlade koja ju predstavlja.

Oglasio se i programer koji je napravio ovaj propust

Kako to obično biva, krenula je potraga za onim programerom koji stoji iza ovog propusta. Kako je OpenSSL open source projekt, nije bilo teško naći programera koji je napisao sporni dio kôda. Riječ je o programeru Robinu Seggelmannu. On je napisao prvo dio kôda koji je bio dobar, a zatim je išao „popravljati“ kôd te dodati neke nove mogućnosti. U tom trenutku je nastao Heartbleed. No, nije on jedini krivac. Svaki dio kôda koji se objavi, ostali programeri pregledaju i odobre. Tako je bilo i u ovom slučaju. Sve u svemu, riječ je o trivijalnoj greški za koju nitko ne treba odgovarati. Dogodila se greška koja je brzo ispravljena. Ako ju je netko i zloupotrijebio, onda bi taj trebao odgovarati. U ovom slučaju to su razne agencije i hakeri, no kako to obično biva, nikome se ništa neće dogoditi. Spomenuti programer, Robin Seggelmann, je dao intervju za jedne Australske novine u kojem je objasnio da je riječ o trivijalnom tehničkom propustu, ali je šteta takva kakva je.

Ono na što se Seggelmann naročito naljutio je što ga se sada proziva za propust, a zapravo mali broj ljudi radi na razvoju OpenSSL-a. Točnije veliki broj programera pokušava doprinijeti razvoju dotičnog libraryja, ali mali broj programera u tome i uspijeva. Ti isti programeri su i zaduženi za pregledavanje tuđeg kôda, implementaciju i slično. No, tu nije kraj. Mnoge IT kompanije se žale na propust, a niti jedna ne želi pomoći. Svi ti sigurnosni stručnjaci rade na implementaciji OpenSSL-a unutar svoje kompanije ili web stranice, ali se ne žele upuštati u razvoj OpenSSL-a. Naravno jer za to nisu plaćeni. Stoga su sve kritike upućene prema ovom programeru neutemeljene. Da, učinio je propust, no to je open source library koji se razvija u slobodno vrijeme i od kojeg nitko nema financijske koristi, te ga koristi na svoju odgovornost. Iskreno se nadamo da će se u budućnosti situacija promijeniti i da će se ipak veći broj stručnjaka uključiti u razvoj OpenSSL-a.

Heartbleed „pogodio“ i Android uređaje

Osim što je dvije trećine web stranica i servisa bilo pogođeno ovim bugom, problem je i u mobilnom svijetu. Točnije, pogođena je najpopularnija mobilna platforma Android. Kako što znate, trenutačno na svijetu ima oko milijardu aktiviranih Android uređaja, no nisu svi ranjivi. Google je izdao upozorenje za one korisnike koji koriste operativni sustav 4.1.1. Upravo ta verzija OS-a koristi OpenSSL sa Heartbleed propustom i Google je preporučio da se koristi novija verzija, tj. da korisnici naprave ‘upgrage. Nažalost, to ne ide tako i ljudi u Googleu to znaju ali ne žele priznati. Kao prvo, Google ima politiku da svaki uređaj može dobiti dva do tri ažuriranja, točnije, ako ste kupili uređaj sa Androidom 2.5, možda ste dobili mogućnost da instalirate verziju Androida 4.0, te eventualno 4.1. Sigurno na takav uređaj ne možete instalirati Android 4.2. Jednostavno je takva politika Googlea, kao i telekomunikacijskih kompanija koje svaku novu verziju operativnog sustava Androida moraju odobriti i prilagoditi svojim korisnicima. Kod nas u Hrvatskoj taj proces traje i mjesecima. Točnije, kada dođe nova verzija Androida mi ju moramo čekati par mjeseci uz uvjet da uopće odobre tu novu verziju za određeni uređaj. Što će reći da oni koji imaju Android 4.1.1. ne mogu ništa napraviti ako ne postoji novija verzija za isti.

Mogu napraviti „downgrade“ i vratiti verziju 4.0 ili verziju 4.1.0. Ili rootati telefon i staviti noviju verziju, no tada gubite garanciju na telefon i možete ga oštetiti ako cijeli proces postavljanja novog ROM-a ne odradite dobro. Ono što bi vam mi preporučili je da ipak vratite Android na manju verziju ako već ne možete staviti noviju. Postotak Android korisnika koji ima ovu verziju je 34.3 posto, odnosno malo više od trećine korisnika ili oko 350-400 milijuna korisnika! Najpopularniji uređaji koji imaju ovaj propust su HTC uređaji One S, One X, Evo, One X+. Tu su i LG uređaji L5, L7 i Optimus serija. Od ostalih kompanija, tu su još i Motorola sa svojom Droid serijom, Samsung i većina njihovih uređaja, posebice onih koji spadaju u neku „srednju“ kategoriju, zatim Sony i njihove Xperije, te mnogi tableti svih proizvođača. Trenutačno, u ovom trenutku, mnogo bolja je pozicija iPhone korisnika koji nemaju ovih problema.

Operativni sustavi

Postoje mnogi open source operativni sustavi koji su također pogođeni ovim problemom i koje bi trebalo ažurirati ili promijeniti. Microsoft Windowsi i Appleov Mac OS nisu u problemima jer ne dolaze sa OpenSSL libraryjem. No, zato razne Linux distribucije, kao i FreeBSD, imaju ugrađen OpenSSL u samu jezgru OS-a i ranjivi su. Neki od njih su Debian 7, Ubuntu 12.04 LTS, CentOS 6.5, Fedora 18, OpenBSD 5.3, NetBSD 5.0.2, OpenSUSE 12.2, SUSE Linux Enterprise Server, FreeBSD 8.4, FreeBSD 9.2 …

Preporučamo vam da instalirate novije verzije ovih distribucija ili da ažurirate OpenSSL. To možete sa tri linije napisane u Terminalu, a vodič za svaku ovu distribuciju možete naći na Internetu.

Što mogu učiniti Internet korisnici

Ako ste „običan“ Internet korisnik i pitate se što vi sada možete učiniti po ovom pitanju, odgovor je – ne mnogo toga zapravo. Možete provjeriti listu web stranica koje su pogođene ovim bugom i na njima odmah promijeniti šifru. Ponavljamo, preporučamo korištenje više šifri za više web stranica! Nemojte svuda koristiti istu (slabu) šifru. Također, koristite više email adresa prilikom registracije na web servise. Također, bilo bi dobro koristiti razne alate koji su se pojavili na Internetu, a daju vam detaljniji uvid u to koja je web stranica pogođena ovim bugom, kao i alate za zaštitu web preglednika. Točnije, to su ekstenzije koje će vam navodno pomoći u zaštiti. Neki od njih su Heartbleed test (https://filippop.io/Heartbleed), SSL Server test (www.ssllabs.com/ssltest), Chromebleed (Google Chrome ekstenzija), Heartbleed-Ext 3.0 (Firefox Mozilla) … Samo zaguglajte alate i dobiti ćete jako veliki broj istih.

Nadalje, ako ste mrežni administrator ili upravljate određenom web stranicom, trebali biste već (ako već niste) postaviti novu verziju OpenSSL-a u kojoj je Heartbleed riješen, kao i „natjerati“ korisnike da promijene šifre. Problem je što je jako puno servera i jako puno korisnika i ovaj proces bi mogao potrajati još tjednima, ako ne i mjesecima. Ono što možemo izvući kao pouku iz ovog svega je lekcija da je bugove jako teško naći, pogotovo u ovako velikim i open source libraryjima i da treba biti oprezan. Naravno da običan korisnik ne može biti „oprezan“ jer ne utječe na to, no oni koji koriste takve softvere moraju biti svjesni činjenice da sigurnosne rupe postoje i nastojati implementirati što više različitih sigurnosnih mehanizama, a ne osloniti se na jedan koji vam se čini najsigurniji. Sve u svemu, možemo vjerojatno očekivati još ovakvih bugova, pitanje je samo da li će nanijeti štetu ili ne. Nadamo se da Heartbleed nije nanio štetu i da NSA i ostale agencije nisu znale za njega prije nego se ovaj problem pojavio u javnosti.

Pitanja i odgovori
– Da li je ovo „Man in the middle“ problem?
Ne, ovo nema veze sa „čovjekom u sredini“. Napadač je mogao napasti TLS server od bilo kuda i zatražiti ga ključ bilo kojeg korisnika koji je spojen na server, a koji ima implementiran OpenSSL sa ovim propustom. Ako uzmete u obzir da Facebook i slični servisi konstantno imaju milijune korisnika online, onda je ovo ogroman problem koji ako se dovoljno dugo koristi, može prikupiti jako puno podataka o mnogim korisnicima.
– Da li je 64 kB informacija dovoljno da se dobiju svi potrebni podaci?
Ovisi. Nekada je, nekada nije. No napadač, odnosno osoba koja napada TLS server može zahtijevati više „komadića“ od 64 kB dok ne skupi dovoljno podataka koji će mu omogućiti pristup serveru, tj. podacima koji ga zanimaju. Svaki „heartbeat“ prenosi 64 kB informacija.
– Koje verzije OpenSSL-a su kritične?
Samo najnovije verzije OpenSSL-a su kritične, a to su OpenSSL 1.0.1 do OpenSSL-a 1.0.1f. Starije i novije verzije nemaju ovaj bug.


RELATED ARTICLES

1 komentar

Komentiraj

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular