
Cloudflare rregullon rrjedhjen e të dhënave ndër-qiramarrëse në Containers
Cloudflare rregulloi një defekt në Containers që i lejonte kërkuesit të rikuperonin të dhëna të mbetura të klientëve të tjerë nga blloqet e përbashkëta të ruajtjes, pa kërkuar asnjë veprim nga përdoruesit.
Cloudflare ka rregulluar një cenueshmëri të rëndësishme të rrjedhjes së të dhënave ndër-qiramarrëse në shërbimin e saj Containers, e cila, nëse shfrytëzohej aktivisht, mund t'i lejonte një klienti të lexonte skedarë të mbetur të lënë pas nga kontejnerët e klientëve të tjerë në të njëjtin strehë fizik. Defekti, i raportuar nga një kërkues sigurie përmes programit të shpërblimeve për gabime të kompanisë, u rregullua automatikisht dhe nuk kërkon asnjë veprim nga përdoruesit e Cloudflare.
Cloudflare Containers është një veçori e përfshirë në planin Workers Paid që u lejon zhvilluesve të ekzekutojnë aplikacionet e tyre brenda mjediseve të lehta dhe të izoluara të njohura si kontejnerë. Kompanitë që ndërtojnë shërbime backend, përpunojnë punë ose drejtojnë platforma të ekzekutimit të kodit në infrastrukturën e Cloudflare e përdorin zakonisht atë. Secili kontejner supozohet të jetë i ndarë nga të tjerët, por dobësia e sapo zbuluar minoi këtë ndarje, duke ngritur shqetësime në lidhje me sigurinë e shërbimeve cloud me shumë qiramarrës për aplikacionet e ndjeshme ndaj të dhënave.
Çështja u gjet nga Oren Yomtov, një kërkues sigurie në kompaninë e teknologjisë Accomplish, i cili e paraqiti atë në platformën HackerOne më 4 shtator. Zbulimi pasues i Cloudflare shpjegon se problemi ekzistonte në një grup ruajtjeje të përbashkët që, në rrethana të caktuara, anashkalonte procesin e zeroizimit (mbishkrimit me zero) të blloqeve fizike të ruajtjes 64 kibibajt (64 KiB) të ripërdorur përpara se t'i dorëzonte ato te një kontejner i ri.
Ja se si funksiononte cenueshmëria. Kur një kontejner fshihet, volumi i hollë që mbështet diskun e tij rrënjë hiqet dhe blloqet e tij fizike kthehen në një grup të përbashkët që u shërben shumë klientëve. Normalisht, përpara se këto blloqe të rialokohen, ato duhet të zeroizohen për të fshirë çdo të dhënë të mbetur. Megjithatë, një gabim konfigurimi bëri që zeroizimi të anashkalohej. Kërkuesit më pas demonstruan se duke shkruar vetëm 4 KiB të dhëna në një zonë të papërdorur të diskut të një kontejneri të sapokrijuar, ata mund të detyronin alokimin e një blloku fizik 64 KiB të ripërdorur. Për shkak se zeroizimi mungonte, vetëm 4 KiB që ata shkruan do të mbishkruanin bllokun; 60 KiB të mbetura do të ruanin çfarëdo informacioni që ishte lënë nga kontejneri i klientit të mëparshëm. Ky është në thelb një problem klasik i memories së painicializuar, i aplikuar në ruajtjen e qëndrueshme.
Në testet e tyre, Yomtov dhe kolegët e tij gjetën materiale të mbetura në 18 nga 24 vendosje kontejnerësh dhe në 20 nga 22 nyjet fizike themelore që ekzaminuan. Këto të dhëna të mbetura përfshinin struktura direktorish, faqe bazash të dhënash nga motori i integruar i bazës së të dhënave të bazuara në skedarë, të zakonshme në aplikacione web, fragmente të profilit Chromium dhe skedarë si skedarë konfigurimi .env dhe skedarë kredencialesh, të gjitha potencialisht të lexueshme nga një sulmues me një llogari Workers Paid në të njëjtin strehë.
Cloudflare vëren se një sulmues nuk do të kishte asnjë kontroll mbi të dhënat e cilit klient specifik rikuperonte, as nuk mund të lexonte një disk të bashkangjitur aktivisht. Skriptet e kërkuesit kryen vetëm kontrolle që kthenin numra agregatë të blloqeve të ekspozuara, pa marrë kurrë përmbajtje aktuale të lexueshme të skedarëve. Si rezultat, asnjë e dhënë reale e klientit nuk u ekspozua gjatë këtij kërkimi.
Pasi rregulloi konfigurimin që po anashkalonte zeroizimin e blloqeve, Cloudflare tërhoqi disqet ekzistuese të kontejnerëve dhe pastroi çdo pamje të ruajtur në memorien e fshehtë që mund të mbante ende hartëzime të vjetruara. E gjithë puna e zbutjes përfundoi deri më 19 shtator. Kompania gjithashtu shqyrtoi regjistrat e brendshëm, telemetrinë dhe të dhënat historike dhe nuk gjeti asnjë provë që ndonjë e dhënë e klientit të ishte ekspozuar përmes kësaj metode jashtë testeve të kontrolluara të kërkuesit.
Për shkak se rregullimi u aplikua automatikisht në infrastrukturën e Cloudflare, klientët nuk kanë nevojë të përditësojnë asgjë ose të ndërmarrin hapa të veçantë për t'u mbrojtur nga kjo cenueshmëri specifike. Megjithatë, për këdo që ekzekuton aplikacione në infrastrukturë cloud të përbashkët, incidenti nënvizon një mësim më të gjerë: trajtimi i të dhënave të fshira nga shtresa e ruajtjes është kritik për sigurinë me shumë qiramarrës.
Për pronarët e faqeve të internetit dhe bizneset që strehojnë faqet ose aplikacionet e tyre me një ofrues, ndarja midis mjediseve të klientëve është një nga masat mbrojtëse më të rëndësishme. Një shërbim strehimi i projektuar me izolim rigoroz të qiramarrësve, si platforma e menaxhuar WordPress e AEU Hosting, siguron që të dhënat e një klienti nuk mund të rrjedhin pa dashje te një tjetër. Kur vlerësoni një ofrues strehimi ose cloud, është e mençur të pyesni se si dezinfektohet ruajtja midis qiramarrësve dhe sa shpejt rregullohen cenueshmëritë serioze. Nuk kërkohet asnjë veprim për përdoruesit e Cloudflare në këtë rast, por parimi themelor zbatohet gjerësisht: dini gjithmonë se si ofruesi juaj trajton të dhënat e klientëve që ndajnë të njëjtin pajisje fizike.
Si të Mbroheni
- Nëse përdorni Cloudflare Workers ose Containers, nuk nevojitet asnjë veprim sepse rregullimi u aplikua automatikisht.
- Pyetni çdo ofrues cloud që përdorni nëse ata mbushin me zero blloqet e ruajtjes ndërmjet qiramarrësve për të parandaluar rrjedhjen e të dhënave.
- Rrotulloni rregullisht kredencialet dhe fjalëkalimet për bazat e të dhënave dhe shërbimet e palëve të treta nga të cilat varen aplikacionet tuaja.
- Ruani skedarët e ndjeshëm si skedarët e konfigurimit .env në ruajtje të koduar ose në një menaxher sekretesh, jo në tekst të thjeshtë në disk.
- Monitoroni regjistrat tuaj të strehimit ose aplikacionit për modele të pazakonta aksesi skedarësh, veçanërisht pasi një shitës shpall një cenueshmëri.
Termat e Shpjeguar
- container Një mjedis i lehtë, i izoluar për ekzekutimin e një aplikacioni, i ngjashëm me një makinë virtuale por që ndan sistemin operativ të pritësit.
- zeroing Mbishkrimi i blloqeve të ruajtjes me zero para ripërdorimit të tyre, gjë që siguron që asnjë e dhënë e vjetër të mos mbetet e lexueshme.
- cross-tenant Situata ku të dhënat ose aktiviteti i një klienti bëhet i dukshëm ose ndikon një klient tjetër në të njëjtën infrastrukturë të përbashkët.
- thin volume Një volum ruajtjeje që përdor hapësirën fizike të diskut vetëm kur të dhënat shkruhen, në vend që të paracaktojë kapacitetin e plotë që në fillim.
- residual data Të dhëna të mbetura nga një përdorues ose proces i mëparshëm që qëndrojnë në një medium ruajtjeje pasi është çliruar.