Beteja e Workers të Cloudflare kundër Spectre: Si mbrohet kodi serverless nga sulmet anësore të CPU-së
Cloudflare shpjegon se si platforma e saj Workers neutralizon kërcënimet e mëparshme si Spectre, duke përdorur kufizime të datës, ekzekutim me një fije të vetme dhe izolim dinamik të proceseve për ta mbajtur kodin serverless të sigurt nga sulmet anësore.
Cloudflare drejton një rrjet global që ruan dhe shërben përmbajtjen e faqeve të internetit, dhe platforma e saj Workers u lejon zhvilluesve të ekzekutojnë kod në atë rrjet. Por ekzekutimi i kodit në cloud do të thotë të mendosh për sigurinë në çdo shtresë. Një nga sfidat më të mëdha është mbrojtja nga dobësitë e procesorit si Spectre. Në një postim të detajuar në blog më 29 korrik 2020, Kenton Varda i Cloudflare shpjegoi se si platforma Workers i zbut këto kërcënime. Postimi i tij mbulon një sërë teknikash, duke përfshirë kufizimet në kohë, thread-et dhe izolimin e proceseve.
Armë e parë kundër sulmeve anësore është bllokimi i kodit për të matur kohën lokalisht. Në Workers, objekti Date është zbutur në mënyrë që vlerat e fillimit dhe të fundit të çdo operacioni të dalin gjithmonë saktësisht të njëjta. Kjo heq mjetin bazë që një sulmues do të duhej për të ndërtuar një kanal anësor kohor. Një kanal anësor është një mënyrë për të nxjerrë të dhëna sekrete duke vëzhguar shenja indirekte, si p.sh. sa kohë zgjat një llogaritje. Cloudflare e zbatoi këtë në mes të vitit 2017, shumë kohë përpara se Spectre të shpallej publikisht. Ekipi ishte i shqetësuar për kanalet anësore kohore që në fillim dhe e projektoi sistemin me atë shqetësim në mendje.
Workers gjithashtu nuk mund të përdorë multi-threading ose memorie të përbashkët. Multi-threading do të thotë ekzekutimi i disa detyrave në të njëjtën kohë, dhe memoria e përbashkët do të thotë që thread-et e shumta mund të hyjnë në të njëjtat të dhëna. Nëse ndonjëra prej tyre lejohej, një Worker keqdashës mund të garonte thread-et për të krijuar një kohëmatës të fshehur. Pra, çdo ngjarje përpunohet në një fije të vetme, dhe edhe nëse disa Workers trajtojnë të njëjtën kërkesë, ato ekzekutohen në mënyrë sekuenciale në të njëjtën fije. Kjo parandalon krijimin e kohëmatësve të nënkuptuar.
Këto masa e ndalojnë kodin të masë kohën e tij të ekzekutimit. Por një sulmues mund ta masë atë nga distanca. Klienti HTTP që dërgon një kërkesë thjesht mund të masë sa kohë duhet për të marrë një përgjigje. Kjo matje është e zhurmshme sepse trafiku në internet është i paparashikueshëm. Por një sulmues mund ta kryejë sulmin shumë herë dhe të mesatarizojë rezultatet për të filtruar zhurmën. Cloudflare tashmë e ka konsideruar rivendosjen e gjendjes së aplikacionit midis kërkesave, por kjo nuk ndihmon sepse klienti i sulmuesit mund ta ruajë gjendjen dhe ta dërgojë përsëri në kërkesën tjetër. Cloudflare thotë se, me ndihmën e ekspertëve të shquar të Spectre, nuk ka arritur të prodhojë një sulm real që funksionon në prodhim. Megjithatë, mungesa e një sulmi që funksionon nuk e ndalon kompaninë të ndërtojë mbrojtje në thellësi. Aktualisht po teston masa më të avancuara.
Një nga ato masa është izolimi dinamik i proceseve. Sulmet Spectre janë shumë të ngadalta nga natyra. Atyre u duhen orë ose javë për të pasur sukses. Por edhe pas një sekonde ekzekutimi, një sulm lë një shenjë. Sulmuesit e Spectre krijojnë qëllimisht modele të panatyrshme të performancës, veçanërisht kur detyrohen të përsërisin miliarda herë për të kaluar mbrojtjet e mëparshme. Këto modele shfaqen në numëruesit e performancës së CPU-së, të cilët janë regjistra specialë që regjistrojnë statistika si humbjet e cache-it dhe parashikimet e degëve.
Problemi me numëruesit e performancës është se kodi legjitim gjithashtu mund të duket i çuditshëm. Një program me performancë të dobët mund të shënohet si i dyshimtë. Cloudflare nuk dëshiron të mbyllë programe të tilla. Në vend të kësaj, mund të riplanifikojë një Worker që tregon performancë të dyshimtë në procesin e tij. Një proces është një hapësirë e veçantë memorie për një program. Pasi një Worker është në procesin e tij, mbrojtjet e integruara të sistemit operativ kundër Spectre mund të hyjnë në veprim, ashtu siç bëjnë për shfletuesit e desktopit. Kjo e mbron Worker-in pa dëmtuar funksionalitetin e tij, megjithëse ka një kosto të lehtë.
Izolimi i çdo Worker do të ishte shumë i shtrenjtë. Por izolimi i disave është i pranueshëm. Dhe sa më shumë kohë CPU të përdorë një Worker, aq më i ulët bëhet kostoja relative e izolimit. Pra, Cloudflare përdor izolimin e proceseve për çdo Worker që është i uritur për CPU. Është gjithashtu në rregull të riplanifikosh një Worker në çdo moment, pasi platforma është fleksibël.
Cloudflare ka punuar në këtë metodë për një vit me ekspertë në Universitetin Teknik të Gracit në Austri. Ai ekip zbuloi së bashku dobësinë Spectre dhe ka qenë përgjegjës për një numër të madh zbulimesh vijuese. Bashkëpunimi nënvizon rëndësinë e kërkimit për të qëndruar përpara kërcënimeve të sigurisë.
Për pronarët e faqeve të internetit dhe ekipet e IT-së, ky zhytje e thellë tregon se sa komplekse mund të jetë siguria në prapaskenë. Ndërsa Cloudflare i mbron Workers-t e saj nga sulmet anësore në nivelin e CPU-së, ju mund të shtoni një shtresë tjetër mbrojtjeje për trafikun tuaj duke përdorur një DNS që i jep përparësi privatësisë si AEU DNS, i cili bllokon domene me qëllim të keq dhe i mban pyetjet tuaja DNS të koduara. Në këtë mënyrë, edhe nëse sulmuesit përpiqen t'ju arrijnë përmes faqeve të njohura të këqija, kërkesa ndalon përpara se të arrijë në shfletuesin tuaj.
Termat e shpjeguar
- Spectre
- Një dobësi sigurie në procesorët modernë të kompjuterit që lejon një program keqdashës të lexojë potencialisht të dhëna nga memoria e një programi tjetër.
- side channel
- Një mënyrë indirekte për të vjedhur informacion duke vëzhguar shenja si kohëzgjatja e një llogaritjeje ose sa energji përdoret.
- serverless
- Një model cloud computing ku ofruesi menaxhon serverët dhe shkallëzon automatikisht, kështu që zhvilluesit mund të ekzekutojnë kod pa u shqetësuar për infrastrukturën.
- Workers
- Platforma serverless e Cloudflare që u lejon zhvilluesve të ekzekutojnë kod JavaScript në rrjetin global të Cloudflare.
- process isolation
- Ekzekutimi i çdo programi në hapësirën e tij të veçantë memorie, në mënyrë që një problem sigurie në një program të mos ndikojë lehtësisht në një tjetër.
Si të mbroheni
- Aktivizoni përditësimet automatike për sistemin tuaj operativ dhe shfletuesin e internetit, sepse arnimet për dobësitë e procesorit si Spectre shpesh jepen në këtë mënyrë.
- Përdorni një shërbim DNS të fokusuar në privatësi si AEU DNS për të bllokuar domene me qëllim të keq që mund të lidhen me sulme kibernetike.
- Shmangni shkarkimin dhe instalimin e softuerëve nga burime jo të besueshme, sepse sulmuesit mund t'i përdorin ato për të provuar të shfrytëzojnë dobësitë anësore.
- Kontrolloni cilësimet e sigurisë së shfletuesit tuaj për t'u siguruar që veçori si izolimi i faqeve ose izolimi i proceseve janë aktivizuar. Në Chrome, kjo është e aktivizuar si parazgjedhje; verifikoni te Cilësimet > Privatësia dhe siguria
Burimi: blog.cloudflare.com
