Den 3:e januari offentliggjordes två mycket allvarliga buggar, Meltdown och Spectre, i Intelprocessorer. Buggarna är rena säkerhetshål, men kräver fortfarande tillgång till datorn för att kunna utgöra ett hot. Problemet är därmed akutast för sk molntjänster, där man enkelt kan köpa processortid och köra vilka program man vill. Som ägare av en privat dator eller telefon behöver man inte oroa sig i det här läget, men har du känslig data på molntjänster där utomstående kan köra program kan datat helt utan att du vet om det läcka ut.
Säkerhetshålen skulle offentliggjorts den 9:e januari, då också motåtgärder hade förväntats finnas på plats. Nu blev man på grund av rykten tvungen att gå ut med det hela tidigare.
Meltdown och Spectre är inte säkerhetshål nätverk, och hotar därmed bara en dator eller mobiltelefon om man laddar ner en elakartad programvara som nyttjar buggen, en trojan.
Datorer (och mobiler etc) kan sedan 80-talet köra flera processer (som användare ser man det oftast bara som flera olika program, t ex webläsare, Word, e-postprogrammet även om dessa i sig kan köra flera processer eller trådar, som det då kalals) samtidigt. Varje process har sitt eget minne och kan inte läsa minnet som andra processer används, om processerna inte har särskilda rättigheter. Din webläsare kan alltså inte se vad som pågår inuti ditt e-postprogram, även om de kör på samma dator.
Meltdown och Spectre kommer runt detta och gör att ett program, som utnyttjar säkerhetshålet, kan läsa minnespositioner tillhörande andra program. Om man laddar ner en trojan eller drabbas av ett virus eller säkerhetsintrång som kör Meltdown eller Spectre-kod kan dessa läsa i minnet hos andra program och se vad som finns där, kanske läsa ditt senaste mail, eller mer allvarligt fiska ut kryptonycklar, lösenord mm.
Kortfattat utnyttjar Meltdown och Spectre fel i optimeringstekniken för processorer. Rent tekniskt hittas felet i spekulativ exekvering. Moderna processorer kör ibland delar av program i förväg när de inte vet vad som ska ske härnäst. Det har nu upptäckts att om man i vissa sådana situationer väljer att i förväg läsa från förbjudna adresser så utförs detta i förväg och läggs i cacheminnet, som också är en optimeringsfunktion där nyligen lästa minnespositioner lagras närmare processorn för snabbare åtkomst. Dessa positioner i cacheminnet går att läsa, eftersom det först blir ett minnesfel i processorn när programmet når till positionen i “verkligheten”.
Man kan säga att programvaror kan se en liten bit in i sin egen framtid, och det har alltså visat sig att i denna framtid gäller inte processorns lagar tills verkligheten kommit ikapp.
För att personligen drabbas måste du alltså ladda ner skadlig programvara. Generellt kommer inte privatpersoner drabbas direkt, utan bara indirekt. Det sk Internet of things kommer i princip inte drabbas alls, eftersom man generellt inte laddar ner och kör tredjeparts programvara på olika hushållsprylar, som uppkopplade brödrostar.
Däremot kan molntjänstdata drabbas på datorer i molntjänster där kunderna kan exekvera egen kod. Alla som kör egna applikationer i molnet är potentiellt drabbade, och eventuellt kan även vanliga färdiga molntjänster drabbas om dessa också kör i ett sådant moln. Hotet drabbar främst de som outsourcat till dessa moln. Har man full kontroll på sina servrar så krävs det fortfarande ett sedvanligt datorintrång för att drabbas. Som privatperson kan du främst drabbas genom att någon lyckas läsa ditt lösenord eller ditt data när det utnyttjas i en molntjänst, men bara om molntjänsten tillåter exekvering av godtycklig kundkod.
Ett problem är dock att du som privatperson inte vet var ditt molndata egentligen kör. Apples iCloud kanske är inhyrt hos Amazons AWS, och annan programvara från en annan kund på den plattformen skulle kunna läsa ditt lösenord om processerna råkar köra på samma server. Det är en hel del slump inblandat, lite som att bli träffad av blixten. Det går inte att avgöra exakt vilka privatpersoner som drabbas, men sannolikheten för den enskilda individen kan anses vara mycket låg eftersom minnesdumparna är ögonblicksbilder. Helst vill en hacker dock få tag på inloggningsuppgifter för administratörskonton, och då kan i princip vad som helst sedan hända.
Säkerheten mellan processer är det som normalt gör att just molntjänster kan fungera säkert. Men nu är detta alltså hotat. En hacker kan köpa processortid hos en molntjänstleverantör, ladda upp programvara som kör Meltdown eller Spectre och systematiskt läsa av allt minne hos alla andra processer på datorn. Och där kan lite vad som helst finnas. Dock inte allt som finns på datorns hårddiskar, men det kan mycket väl kommas åt sekundärt genom att man läser inloggningsuppgifter när dessa finns i minnet på datorn.
Det kan dock ta en del tankekraft och arbete att faktiskt veta var man ska läsa och hur det ska nyttjas. Som jag killgissar så kan man få ner minnesdumpar, men det är inte systematiserat. Dumparna måste sedan gås igenom (maskinellt med programvara) och tolkas. Det är inte säkert att man kommer åt något känsligt vid dumptillfället. Det går ju inte att veta vad de andra programmen gör vid tillfället. Det mest intressanta är att försöka få tag på lösenord och kryptonycklar, så man kan gå in i system på “normalt vis” och se data strukturerat.
En (kort) minnesdump skulle kunna se ut så här: t46783ygqpehpgbmamma786q373q4€854h439f.
I den dumpen är mamma ett lösenord, men det är inte uppenbart varför det står mamma där. Om ditt lösenord dock är q4€854h4 så är det rätt svårt för en hacker att identifiera just det som ett lösenord.
Som privatperson ska du förstås installera alla säkerhetsuppdateringar, som kommer släppas de närmaste veckorna.
Detta blogginlägg är en förenkling och gör inga anspråk på att vara komplett eller 100% korrekt i vare sig generella fall eller i specialfall. IT-proffs kan naturligtvis ha synpunkter i mängder på denna text, men ni är inte målgruppen även om ni utgör ca 30% av mina läsare.
Generellt råd är gör inget idiotiskt som ladda ner programvaror från okända leverantörer, besök inte okända skumma hemsidor och använd oavsett inte operativsystem med enkla säkerhetsläckor som främst Windows och Android.
Tillägg: Microsoft har visat att det i kan vara möjligt att använda JavaScript för att läsa data ifrån andra websidor i webläsaren, men inte från resten av datorn. Normalt är detta inte tillåtet, men det ger alltså inte fri tillgång till processorn, utan bara andra websidors data i webläsaren. Därtill kan data i webläsaren läsas, t ex lösenord och kryptonycklar. Så håll dig borta från pr0nsajterna och Russia Today ett tag. Skatteverkets websajt lär dock inte lägga ut någon skadlig kod.
36 kommentarer
Kan ju vara värt att beakta att det går att utnyttja det i tex JavaScript, så stänga av script kan nog vara bra. Och för privat användare så tror jag största effekten är att malware kan komma åt mer utan att behöva fråga om root/admin
Sedan när kan JavaScript anropa specifika minnesadresser i processorn och sedan när kan JavaScript köra den maskinkod som behövs för att vara säker på att spekulativ exekvering används?
Jag har väldigt svårt att se det, nej.
I övrigt, som privat användare kan malware komma åt mer. Men det förutsätter att man drabbas av malware.
https://www.mozilla.org/en-US/security/advisories/mfsa2018-01/
Finns proof of concept kod med JavaScript med disassemble om man vill se hur det ser ut i maskinkod
Javascript kan användas.
Chrome ska patchas 23:e Januari.
https://support.google.com/faqs/answer/7622138#chrome
Se kapitel 4.3
https://spectreattack.com/spectre.pdf
Snyggt. Men du kan inte styra var i minnet du läser, utan det blir slumpmässigt, inte ens systematiskt, i sebläsarens minne.
Webläsarens
Lämpligen stänger man ner webläsaren helt före och efter man gör ngt känsligt, t ex använder kreditkort på nätet.
Hur är det med NaCl och PNaCl som tillåter en att köra Intel assembler kod i en sandbox i webläsaren? (Chrome). Sen har vi det nya WebAssembly/asm.js som också tillåter en att köra lågnivåkod i webläsaren (Chrome, Safari, mfl.)
Ang första meningen, det är inte bara Intel-processorer som har problemet. Se nedan.
"The Spectre flaw affects most modern processors made by a variety of manufacturers, including Intel, AMD and those designed by ARM…"
https://www.google.se/amp/s/amp.theguardian.com/technology/2018/jan/04/meltdown-spectre-worst-cpu-bugs-ever-found-affect-computers-intel-processors-security-flaw
Det är ju två olika svagheter/buggar.
Meltdown – som nu fixats delvis – drabbar vad vi vet hittills bara Intels CPU:er.
Spectre – har inte fixats – drabbar alla CPU:er.
Meltdown verkar mycket elakare än Spectre och fixen för Meltdown verkar påverka prestandan med 5-30% – inget som märks för gemene man men för stora datacenter märks det – direkt 5-30% mer ström som går åt för samma arbete.
I ditt tillägg missade du den ack så viktiga delen: " or private data from the browser itself". Dvs tex alla lösenord/cookies/etc som din browser har sparat.
Det som oroar mig är väl mest att deras patchar ska slöa ner min dator.
services.msc > Windows update_> Disable, tills vidare då..
Glöm inte "netsh interface set interface name="Local Area Connection" admin=disabled" bara
Kan inte EU lagstifta om att alla som använder Windows måste sluta med det omedelbart?
Drabbar alla OS, sårbarheten är i hårdvaran. Önskan om bättre prestanda introducerade detta problem. Utan cache och utan branch prediction hade denna sårbarhet inte funnits. De är helt enkelt de som har bråttom som är skyldiga till denna fadäs.
Ja precis din 386 är så klart inte drabbad av detta och kör man bara dos fortfarande så går det ju snabbt…
Spekulativ exekvering kom runt 95. Så 386 ej drabbat, nej…
BoT: Varför då? Innan man yttrar sig kanske man borde läsa på lite eller?
https://support.apple.com/en-us/HT208394
Även Linux är drabbat.
Visst det är väl ett bra generellt råd att hålla sig borta från skumma siter. Men de är oftast inte de som ligger bakom skadlig kod via browser, utan betydligt större risk är att någon får in script via något ad nätverk.
Iofs sant. Besök inte reklamsajter som denna. Håll dig t SR, SVT etc.
Huh! Hemska tanke!
Man behöver kanske inte låta bli, men bör inte känna sig säker bara för att det är seriösa sidor. Man bör ju följa alla gammla vanliga råd patcha osv… Men många verkar leva under uppfattning att om man inte porrsurfsr så är man safe.
@Cornu men de siter du räknar upp sprider mentala virus som identitetspolitik och genuscertifiering, vilket lär vara mycket värre än något som kan drabba datorn.
@Mnils: och mot dessa lär inte någon säkerhetsuppdatering komma i det första taget…
Den här kommentaren har tagits bort av skribenten.
Att använda sig av molntjänster för att få samma information på olika egna enheter förefaller ovanligt dumt. Att åtskilliga kändisars nakenbilder och sexbilder hamnat på nätet beror som jag förstår det främst på att man synkroniserar sina filer med någon molntjänst, typ Google Drive.
Jupp.
Den här kommentaren har tagits bort av skribenten.
Det var ett misslyckat försök att göra en länk till tuben och Ronny Erikssons "Molnet". Fredagsmüs.
Om man är intresserad är detta en bra sida:https://meltdownattack.com/
Mycket bra sammanfattning.
Tilläggas kan för den teknikintresserade, att programmen i molnet kör i s.k. containers som innehåller allt som de behöver, inklusive i normalfallet de "högre" delarna av operativsystemet. De "ser" en helt egen maskin där bara de programmen som finns i containern exekverar. Än så länge finns funktionaliteten för att konfigurera detta fullt ut endast på Linux (LXC). Man kan kalla det för första nivån av virtualisering och isolering. Man kör på samma kärna i operativet, men med egna tillägg och ser en egen virtuell maskin enligt specifikationen för containern.
Ifall man i sin container vill köra ett annat operativ än Linux behöver man gå till nästa nivå av virtualisering och köra en "emulator" som kör det andra operativet ovanpå Linux som en del i sin container. Det kräver dock mer resurser i form av minne eftersom varje container behöver ett helt eget OS. Det tar dessutom längre att skala upp systemet då varje container måste boota upp när den startas. Däremot lider inte exekveringsprestandan när contanern väl startat speciellt mycket då processorer nuförtiden har inbyggt stöd för virtualisering.
Vad som kör på samma hårdvara i andra containers vet i bästa fall bara den som har konfigurerat molnet, så med tanke på det och ovanstående om virtualisering så är sannolikheten rätt liten att en illvilligt container skall kunna få ut något användbart ur minnet.
Dessutom kan man som ägare av något säkerhetskritiskt förmodligen betala molnleverantören för att ens containers går på en egen maskin, vilket då eliminerar problemet helt. Alternativt har man sitt eget moln, med egen hårdvara, vilket förekommer. Tror inte en bank eller en telecomoperatör ens skulle tänka på att köra sina kritiska containers på en maskin där kreti och pleti kör sina containers.
För exempelvis en större statlig eller kommunal verksamhet torde det vara ett utmärkt och verkligen rekommendabelt alternativ och att ha ett eget separat moln (egen drift eller hyrt). Man får fortfarande massor med fördelar, och separerar driften av hårdvaran från driften av applikationerna.
Google Chrome har något som kallas "site-isoloation", vilket i princip gör att varje site i webbläsaren körs helt isolerat ifrån varandra. Äter lite mer internminne, men förhindrar dataläckage mellan siter:
https://support.google.com/chrome/a/answer/7581529
Sorry, det här har du missuppfattat. Det är ofta möjligt att läsa utanför ett programs minnesområde, vanligen på grund av programmeringsmissar. Exempelvis om man allokerar 1 byte för data, och sedan kollar inte programmet att den ska läsa just 1 byte utan tar allt som användaren skriver in. Den delen skrivs i någon annan process minne, och då kan t.ex. skadlig kod injiceras. Det finns massor av sådana möjligheter, så detta kan definitivt påverka alla som har nämnda processorer.
Varför skulle annars MS trycka ut en patch i all hast, som redan har orsakat massa problem med kompatibilitet (mig själv inkluderad).
Njae, det är bara möjligt att läsa utanför programmets allokerade minne under vissa omständigheter, vilket beror på hur det virtuella minnet som allokeras i sidor om 4kB block används. D.v.s. bara de sidor som processen skrivit till (kanske bara 1 byte som programmet allokerat och skrivit till) och därmed av operativet allokerat fysiskt 4kB kan läsas utan att operativet kraschar processen. Försöker programmet adressera/läsa en sida som inte allokerats till processen av operativet kraschar programmet garanterat, typ SEGV i linux. Sidor som allokerats fysiskt ägs och delas ut (new/malloc) från buckets i lib malloc i linux, och kan under vissa omständigheter lämnas tillbaka till operativet när programmet lämnar tillbaka minne (delete/free). Förmodligen så funkar det på liknande sätt i Windows. Virtuell minneshantering är extremt komplicerad att förstå sig på. Speciellt hur det uppför sig i runtime och man försöker mäta på det.