Svet sajber-bezbednosti je u maju 2016. godine bio svedok jedne od najfascinantnijih i najkreativnijih priča o pronalaženju propusta u modernoj istoriji interneta. Tri nezavisna bezbednosna istraživača – Dario Weißer, Ruslan Habalov i istraživač poznat pod pseudonimom „cutz“ – uspeli su da ostvare udaljenu izvršnost koda (Remote Code Execution – RCE) nad infrastrukturom Pornhuba, jedne od najvećih i najposećenijih platformi za odrasle na svetu.

Umesto da iskoriste pristup za krađu podataka ili ucenu, istraživači su prijavili ranjivost u okviru tada novog Pornhubovog bug bounty programa, postavivši lekciju o tome kako duboka tehnička ekspertiza i odgovorno obelodanjivanje grešaka mogu da promene bezbednosni pejzaju čitavog veba.

Pozadina: Kada standardne metode ne daju rezultate

Nekoliko meseci pre ovog incidenta, tačnije u proleće 2016. godine, Pornhub je pokrenuo zvanični program nagrađivanja za pronalaženje grešaka (bug bounty) preko platforme HackerOne. Cilj je bio da se privuku etički hajkeri koji će testirati robusnost njihovih sistema i otkriti potencijalne propuste pre nego što ih zlonamerni akteri zloupotrebe.

Međutim, trio istraživača suočio se sa ozbiljnim izazovom. Pornhubova infrastruktura bila je pažljivo konfigurisana, a primarni veb-sajt je koristio prilagođenu (custom-compiled) verziju PHP-a uz dobro zaštićene standardne ulazne tačke. Tradicionalne tehnike napada, poput uobičajenih SQL injekcija ili jednostavnih pogrešnih konfiguracija, nisu davale rezultate.

Umesto da odustanu, istraživači su primenili radikalniji pristup: odlučili su da napadnu samu osnovu na kojoj počiva veći deo veba – programski jezik PHP.

Tehnička analiza: Otkriće PHP zero-day ranjivosti

Kopajući po mehanizmima funkcionisanja PHP-a, istraživači su usmerili pažnju na funkciju unserialize(), koja se na Pornhubu koristila za obradu podataka koje su korisnici otpremali (poput slika i multimedijalnog sadržaja na stranicama za otpremanje albuma).

Kroz dubinsku analizu, otkrili su dve kritične ranjivosti tipa use-after-free (upotreba memorije nakon njenog oslobađanja) koje su kasnije zavedene pod zvaničnim oznakama:

CVE-2016-5771 

CVE-2016-5773 

Kako su ranjivosti funkcionisale?

Ovi propusti su bili direktno povezani sa načinom na koji je PHP-ov algoritam za sakupljanje otpadaka u memoriji (garbage collection) komunicirao sa određenim tipovima objekata tokom procesa deserijalizacije. Manipulacijom memorijskih struktura, napadač je mogao da natera PHP interpreter da izvrši proizvoljan kod.

S obzirom na to da su ovi propusti postojali u samom izvornom kodu PHP-a (pogađajući sve verzije PHP 5.3 pa naviše), radilo se o pravim zero-day ranjivostima za koje u tom trenutku nisu postojale zakrpe ni svest u široj zajednici.

Izvođenje napada i odgovorno obelodanjivanje (Responsible Disclosure)

Iako su imali moćan alat u rukama – sposobnost da izvršavaju komande na serverima jedne od najposećenijih web stranica na planeti – istraživači su postupili krajnje profesionalno i etički:

Bezbedna demonstracija: Umesto da kradu baze podataka korisnika, pregledaju osetljive fajlove ili naprave štetu, na serverima su ostavili jednostavnu tekstualnu datoteku sa porukom: „Greetings from HackerOne“.

Obaveštavanje kompanije: Odmah su kontaktirali bezbednosni tim Pornhuba preko platforme HackerOne, detaljno im objasnivši kako su uspeli da zaobiđu zaštitu koristeći ranjivosti u PHP-u.

Reakcija administracije: Pornhubov bezbednosni tim je reagovao munjevito. U roku od samo nekoliko sati uklonjeni su problematični pozivi funkcije unserialize() i zakrpljene su direktne tačke izloženosti na serverima.

Nagrada i širi uticaj na IT zajednicu

Nakon temeljne verifikacije prijavljenog propusta, čelni ljudi Pornhuba su dve nedelje kasnije obavestili istraživače da im se dodeljuje novčana nagrada u iznosu od 20.000 dolara u okviru njihovog bug bounty programa. Pored toga, komitet Internet Bug Bounty je nagradio istraživače sa dodatnih 2.000 dolara zbog otkrivanja dubljih problema u samom jeziku PHP.

Uticaj ovog otkrića daleko je prevazišao okvire jedne platforme:

Zvanične zakrpe za PHP: Istraživači su sredinom juna 2016. godine zvanično obavestili PHP razvojni tim. PHP je izbacio hitne bezbednosne ispravke 23. juna 2016. godine kroz verzije PHP 7.0.8, 5.6.23 i 5.5.37, čime su milioni web servera širom sveta zaštićeni od potencijalnih zloupotreba.

Promena percepcije o industriji adult sadržaja: Ovaj slučaj je pokazao da platforme sa velikim prometom često ulažu ozbiljna sredstva u bezbednost i sarađuju sa vrhunskim stručnjacima, rušeći predrasude da sajtovi ovog tipa zanemaruju sajber-sigurnost.

Zaključak

Slučaj hakerskog probijanja Pornhuba iz 2016. godine ostaje upamćen kao školski primer vrhunskog istraživačkog rada, dubokog poznavanja niskoslojnih sistema (poput memorijskog menadžmenta u PHP-u) i uspešne saradnje između etičkih hakera i kompanija. Umesto katastrofalnog curenja podataka, incident se završio unapređenjem bezbednosti celog PHP ekosistema i zasluženom nagradom za tim koji je pokazao kako se internet čini bezbednijim mestom.

Leave a Reply