Zaradi hrošča iz Cloudflara več mesecev curljalo

Matej Huš

24. feb 2017 ob 18:14:39

V kodi, ki jo uporablja ponudnik spletnih storitev Cloudflare, so odkrili zahrbtnega hrošča, zaradi katerega so od septembra do minulega konca tedna v internet počasi curljali občutljivi podatki. Napako je slučajno odkril Googlov inženir, ki je po odkritju stopil v stik s Cloudflarom. Ta je hitro sestavil dve ekipi inženirjev, eno v Londonu in drugo v San Franciscu, ki sta izmenjaje delali in napako popravili. Po do sedaj zbranih podatkih nepridipravi hrošča niso izkoriščali, ker ga niso poznali.

Tavis Ormandy iz Googlovega programa Project Zero je pri svojem delu naletel na nenavadne odzive, ki so jih Cloudflarovi strežniki vračali kot odgovore na HTTP-zahtevke. Napaka je bila najverjetneje prisotna od 26. septembra, najpogosteje pa se je iz razlogov, ki jih Cloudflare podrobno pojasnjuje, pojavljala med 13. in 18. februarjem. V povprečju je eden na 3,3 milijona zahtevkov vseboval podatke, ki so curljali iz pomnilnika, ker se je jim je v kodo prikradla prekoračitev predpomnilnika (buffer overflow). Zaradi tega so vračali naključne podatke, ki so se nahajali v pomnilniku na prizadetem mestu.

SSL-ključi strank jim sicer niso ušli, so pa na internet pricurljali zasebni ključi, s katerimi si je Cloudflare podpisoval interni promet med svojimi strežniki. Prav tako so na internet leteli deli podatkov v POST, HTTPS-zahtevki, piškotki, gesla in ostalo. Ker se tega ni zavedal nihče, so vse te informacije poindeksirali Googlovi in ostali pajki, zato jih je Cloudflare prosil, da jih ročno pobrišejo iz svojih baz. Cloudflare ima namreč veliko strank, ki imajo zelo občutljive podatke, denimo Uber, Fitbit, OkCupid ipd.

Cloudflare se je na težavo odzval vzorno. Zakrpali so jo v najkrajšem možnem času - prva pomoč je bila na voljo še isti dan, napako pa so v popolnosti odpravili v dveh dneh. Šest dni po obvestilu so na internetu v celoti razkrili, kaj je šlo narobe. Napaka je tičala v parserju HTML, ki ga Cloudflare uporablja za sprotno (on-the-fly) modifikacijo spletnih strani. Tri funkcije (email obfuscation, Server-side excludes in automatic HTTPS rewrites) niso bile primerno implementirane, saj je eno preverjanje pogoja vsebovala enačaj namesto znaka za neenakost.