Cloudbleed ishte një cënueshmëri serioze e sigurisë në rrjetin e Cloudflare, zbuluar në shkurt të vitit 2017. Një gabim latent në një parser më të vjetër HTML, i cili bazohej në kompiluesin e makinerisë së gjendjes Ragel, shkaktoi një tejkalim bufferi që rrjedhi të dhëna të ndjeshme të klientëve nga memoria e serverit.
Incidenti mori emrin Cloudbleed për shkak të ngjashmërisë së tij me gabimin Heartbleed, i cili preku OpenSSL në 2014.
Shkaku kryesor: Ragel dhe cf-html
Dobësia ishte një gabim i fjetur në parserin e vjetër të Cloudflare për HTML, i shkruar fillimisht duke përdorur kompiluesin e makinerisë së gjendjes Ragel.
- Një parser i ri (cf-html) solli një ndryshim: Gabimi mbeti joaktiv për vite me radhë. Megjithatë, kur Cloudflare filloi të shpërndante një parser të ri HTML të quajtur cf-html, ai ndryshoi në mënyrë të hollë mënyrën se si trajtoheshin bufferat e memories brenda NGINX.
- Gabimi i kodimit me një karakter të vetëm: Në kodin e gjeneruar nga Ragel, një kontroll për të parë nëse parseri kishte arritur në fund të një bufferi përdorte një operator barazie (==) në vend të një operatori më i madh ose i barabartë (>=).
- Tejkalimi i bufferit: Kjo nënkuptonte se nëse parseri e tejkalonte bufferin me më shumë se një karakter (gjë që mund të ndodhte me etiketa të caktuara të keqformuara HTML), kontrolli përfundimtar i fundit të bufferit do të dështonte, duke i lejuar procesit të lexonte përtej fundit të bufferit dhe në memorien e afërt.
- Memorie e rrjedhur: Kjo memorie e afërt përmbante të dhëna të ndjeshme nga kërkesa të tjera të klientëve të Cloudflare që po përpunoheshin nga i njëjti server.
Ndikimi i rrjedhjes
Dobësia preku miliona faqe interneti që përdornin shërbimet e Cloudflare.
- Periudha kohore: Gabimi ishte aktiv nga 22 shtatori 2016 deri më 18 shkurt 2017. Periudha e ndikimit më të madh ishte midis 13 dhe 18 shkurtit, kur një përditësim mundësoi gabimin në më shumë faqe interneti të klientëve.
- Të dhëna të rrjedhura: Të dhënat e rrjedhura përmbanin një sërë informacione të ndjeshme nga trafiku HTTPS i klientëve, duke përfshirë:
- Cookies HTTP dhe tokena autentifikimi
- Fjalëkalime nga faqet e takimeve, shërbimet e bisedave dhe menaxherët e fjalëkalimeve
- Të dhëna të ndjeshme nga kërkesat HTTPS POST (p.sh., rezervimet e hoteleve)
- Informacione të brendshme të Cloudflare, siç janë çelësat privatë të enkriptimit
- Fshirja nga motorët e kërkimit: Një problem i madh ishte se kërkuesit e motorëve të kërkimit, si Google, Yahoo dhe Bing, fshihnin disa nga të dhënat e rrjedhura ndërsa kërkonin në internet. Kjo i bëri informacionet private të aksesueshme publikisht në rezultatet e kërkimit.
- Ndikimi te klientët:
- Të dhënat rrjedhën në mënyrë të rastësishme, kështu që klientët e një faqe interneti mund të shihnin të dhëna nga një faqe tjetër e palidhur.
- Ndërsa shumë faqe të mëdha u prekën (p.sh., Uber, OkCupid, Fitbit), shumica e rrjedhjeve të të dhënave ishin të rastësishme dhe përmbanin shkrime të pakuptimta. Megjithatë, potenciali për ekspozim të të dhënave shumë të ndjeshme ishte i rëndësishëm.
Zbulimi dhe sanimi
- Zbulimi: Gabimi u zbulua dhe u raportua te Cloudflare nga studiuesi i sigurisë i Projektit Zero të Google, Tavis Ormandy, më 18 shkurt 2017.
- Reagim i shpejtë: Reagimi i Cloudflare ishte i shpejtë. Pas njoftimit, ata:
- Çaktivizuan veçoritë e dobëta në më pak se një orë.
- Vendosën plotësisht një zgjidhje globalisht brenda shtatë orësh.
- Punuan me motorët e kërkimit për të pastruar informacionin e fshirë nga rezultatet e kërkimit përpara se të publikonin incidentin publikisht.
- Rekomandime: Si masë paraprake, Cloudflare dhe ekspertët e sigurisë këshilluan përdoruesit e prekur të ndryshonin fjalëkalimet e tyre dhe të aktivizonin autentifikimin me dy faktorë në të gjitha llogaritë. Ata gjithashtu pavlefshëmuan dhe rishpërndanë tokena autentifikimi të brendshëm për të zbutur rrezikun.