Ännu en vecka, ännu en BWAIN!
Som ni vet om ni lyssnade på förra veckans podcast (antyda, antyda!), BWAIN är en förkortning för Bugg Med Ett Imponerande Namn:
Det är ett smeknamn vi använder när upptäckarna av en ny cybersäkerhetsattack blir så exalterade över sin upptäckt att de ger den en PR-vänlig moniker, registrerar ett fåfänga domännamn för den, bygger en anpassad webbplats och designar den en speciell logotyp.
Den här gången namnet Kollidera+Ström innehåller en irriterande skiljetecken, vilket är ett plus i felnamn, men ett minus när du registrerar en internetdomän. (Ironiskt nog är domännamn tillåtna att använda -
, Men inte +
).
Så domännamnet måste förkortas något till https://collidepower.com, men webbplatsen kommer att ge dig en översikt över problemet ändå, även med additionstecknet subtraherat.
Kollidera cachad data och mät den effekt som krävs
Forskarna bakom detta nya papper är Andreas Kogler, Jonas Juffinger, Lukas Giner, Martin Schwarzl, Daniel Gruss och Stefan Mangard från Graz University i Österrike samt Lukas Gerlach och Michael Schwarz från CISPA Helmholtz Center for Information Security i Tyskland.
Vi kommer inte att försöka förklara de olika formerna av denna attack i någon längd, eftersom de tekniska detaljerna för hur man gör mätningarna och den matematiska modelleringen som används för att dra slutsatser från dessa mätningar, är komplexa.
Men kärnan i problemet, om du ursäktar den partiella ordleken, är att cacheminnet som är begravt i moderna processorchips, avsett att ge en osynlig och automatisk prestandaökning...
… är inte alltid så osynlig som du kanske tror, och kan ibland läcka en del av eller allt innehåll, även till processer som inte borde kunna se det.
Som namnet antyder, cacheminne (det uttalas kontanter, som i dollar och cent, inte frimärke, som i respekt och prestige, om du någonsin undrat), förvarar speciella kopior av datavärden från konventionellt RAM-minne på dolda platser inuti själva CPU-chippet.
Om processorn håller reda på RAM-adresserna (minnesplatserna) som du har använt nyligen och kan gissa tillräckligt bra vilka du troligtvis kommer att använda igen snart, kan den hålla dem tillfälligt i sitt cacheminne och på så sätt snabba upp kraftigt din andra tillgång till dessa värden, och den tredje åtkomsten, den fjärde och så vidare.
Om du till exempel letar upp en serie datavärden i en tabell för att konvertera bildpixlar från ett färgformat till ett annat, kanske du upptäcker att uppslagstabellen för det mesta talar om för dig att besöka antingen RAM-adressen 0x06ABCC00 (vilket kan vara där specialkoden för "svart pixel" är lagrad) eller adress 0x3E00A040 (vilket kan vara platsen för den "transparenta pixel"-koden).
Genom att automatiskt behålla värdena från dessa två vanliga minnesadresser i sin cache, kan CPU:n kortsluta (bildligt, inte bokstavligen!) framtida försök att komma åt dessa adresser, så att det inte finns något behov av att skicka elektriska signaler utanför processorn, över moderkortet och in i själva RAM-kretsen för att läsa ut masterkopian av data som finns lagrad där.
Så cachad data är vanligtvis mycket snabbare att komma åt än data i moderkortets RAM.
Generellt sett får du dock inte välja vilka cacheregister som används för att lagra vilka RAM-adresser, och du får inte välja när CPU:n bestämmer sig för att sluta cachelagra ditt "transparenta pixelkod"-värde och börja cache ett annat programs "superhemlig kryptografisk nyckel" istället.
Faktum är att cachen kan innehålla en liberal blandning av värden, från en liberal blandning av RAM-adresser, som tillhör en liberal blandning av olika användarkonton och privilegienivåer, allt på samma gång.
Av denna anledning, tillsammans med effektivitets- och prestandaskäl, kan inte ens program på administratörsnivå titta direkt på listan över adresser som för närvarande cachelagras, eller komma åt deras värden, för att skydda cachad data mot extern snooping.
Som programmerare använder du fortfarande maskinkodsinstruktionen "läs upp den transparenta pixelkoden från adress 0x3E00A040", och operativsystemet bestämmer fortfarande om du ska ha tillgång till den datan baserat på den numeriska adressen 0x3E00A040, även om data kommer i slutändan direkt från cachen istället för från den sanna RAM-adressen 0x3E00A040.
Priset på en bit-flip
Vad Collide+Power-forskarna upptäckte, väldigt mycket förenklat, är att även om du inte direkt kan kika på den tillfälliga datan i cachelagring, och därför inte kan kringgå minnesskyddet som skulle tillämpas om du gick via dess officiella RAM-adress …
…du kan gissa när specifika datavärden är på väg att skrivas in i specifika cachelagringsregister.
Och när ett redan cachat nummer ersätts av ett annat, du kan dra slutsatser om båda värdena genom att mäta hur mycket ström processorn använder i processen.
(Moderna processorer inkluderar vanligtvis speciella interna register som ger dig strömförbrukningsavläsningar, så du behöver inte spricka upp datorhöljet och fästa en fysisk sondkabel någonstans på moderkortet.)
Spännande nog beror strömförbrukningen för själva CPU:n, när den skriver över ett cachevärde med ett nytt, på hur många bitar som ändrats mellan siffrorna.
Om vi förenklar saker till enskilda bytes, skriver vi över det binära värdet 0b00000000
med 0b11111111
(att ändra decimal 0 till decimal 255) kräver att alla bitar i byten vänds, vilket skulle förbruka mest ström.
Skriver över ASCII-tecknet A
(65 i decimaler) med Z
(90 i decimal) betyder att ändra 0b01000001
in 0b01011010
, där fyra bitpositioner vänds, vilket förbrukar en medelmängd energi
Och om siffrorna råkar vara desamma behöver inga bitar vändas, vilket skulle förbruka minst ström.
I allmänhet, om du XOR de två talen tillsammans och räknar antalet 1-bitar i svaret, hittar du antalet vändningar, eftersom 0 XOR 0 = 0
och 1 XOR 1 = 0
(så noll betecknar ingen flip), medan 0 XOR 1 = 1
och 1 XOR 0 = 1
(betecknar en flip).
Med andra ord, om du kan komma åt ett gäng utvalda adresser på ett sätt som förbereder en specifik uppsättning cacheregister inuti CPU:n och sedan övervaka strömförbrukningen tillräckligt noggrant när någon annans kod får sin data tilldelad till dessa cache platser istället...
…sedan du kan dra slutsatser om hur många bitar som vänts mellan det gamla cacheminnehållet och det nya.
Naturligtvis får du välja de värden som lagras i adresserna som du primade cacheregistren med, så att du inte bara vet hur många bitar som troligen vänds, utan du vet också vilka startvärdena för dessa bitar var innan vändningarna tog plats.
Det ger dig ännu mer statistisk data för att förutsäga de troliga nya värdena i cachen, givet att du vet vad som fanns där tidigare och det sannolika antalet bitar som nu är annorlunda.
Du kanske inte kan ta reda på exakt vilken data ditt offers process använde, men även om du kan eliminera vissa bitmönster har du precis lärt dig något som du inte borde veta.
Och om dessa data var, säg, en krypteringsnyckel av något slag, kanske du skulle kunna konvertera en omöjlig brute force-attack till en attack där du kanske bara lyckas.
Till exempel, om du kan förutsäga 70 bitar i en 128-bitars krypteringsnyckel, då istället för att prova alla kombinationer av 128 bitar, vilket skulle vara en omöjlig uppgift, skulle du behöva prova 258 olika nycklar istället (128 – 70 = 58), vilket mycket väl kan vara genomförbart.
Ingen anledning att få panik
Lyckligtvis är denna "sårbarhet" (nu kallad CVE-2023-20583) kommer sannolikt inte att användas mot dig inom kort.
Det är mer en teoretisk fråga som chiptillverkare måste ta hänsyn till, på grundval av sanningen att cybersäkerhetsattacker "bara blir bättre och snabbare", än ett exploateringsbart hål som skulle kunna användas idag.
Faktiskt erkänner forskarna, nästan fåraktigt, att "dig behöver inte oroa dig. "
De skrev verkligen dig i kursiv stil och imprecationen oroa dig inte i fetstil:
I slutsatsen av artikeln noterar forskarna sorgligt att några av deras bästa verkliga resultat med denna attack, under idealiska labbförhållanden, läckte bara 5 bitar i timmen.
För ett av deras attackscenarier erkände de faktiskt att de stötte på "praktiska begränsningar som ledde till läckagehastigheter på mer än [ett] år per bit".
Ja, du läste det rätt – vi kollade det flera gånger i tidningen bara för att vara säker på att vi inte inbillade det.
Och det väcker naturligtvis frågan, "Hur länge måste du lämna en samling dataöverföringstester igång innan du på ett tillförlitligt sätt kan mäta så låga överföringshastigheter?"
Enligt våra beräkningar ger en bit per år dig cirka 125 byte per millennium. I den takten, ladda ner den nyligen släppta tretimmars storfilmen Oppenheimer i IMAX-kvalitet, som uppenbarligen tar upp ungefär en halv terabyte, skulle ta ungefär 4 miljarder år. För att sätta den bisarra fakta i perspektiv, är jorden själv bara cirka 4.54 miljarder år gammal, ge eller ta några hundra miljoner månader.
Vad göra?
Det enklaste sättet att hantera CVE-2023-20538 just nu är att inte göra någonting, med tanke på att forskarna själva har rådet dig att inte oroa dig.
Om du känner att du behöver göra något, har både Intel- och AMD-processorer sätt att minska noggrannheten i sina kraftmätningsverktyg med avsikt genom att lägga till slumpmässigt brus i effektavläsningarna.
Detta lämnar dina medelvärden korrekta men varierar individuella avläsningar tillräckligt för att göra denna redan inte riktigt genomförbara attack ännu svårare att genomföra.
Intels effektmätning är känd som kör medeleffektgräns (RAPL) filtrering; AMD kallas prestationsdeterminismläge.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- PlatoData.Network Vertical Generative Ai. Styrka dig själv. Tillgång här.
- PlatoAiStream. Web3 Intelligence. Kunskap förstärkt. Tillgång här.
- Platoesg. Fordon / elbilar, Kol, CleanTech, Energi, Miljö, Sol, Avfallshantering. Tillgång här.
- BlockOffsets. Modernisera miljökompensation ägande. Tillgång här.
- Källa: https://nakedsecurity.sophos.com/2023/08/03/performance-and-security-clash-yet-again-in-collidepower-attack/
- :är
- :inte
- :var
- $UPP
- 1
- 15%
- 25
- 70
- 700
- a
- Able
- Om oss
- Absolut
- tillgång
- Konto
- konton
- noggrannhet
- exakt
- tvärs
- faktiska
- tillsats
- Dessutom
- adress
- adresser
- erkänna
- medgav
- igen
- mot
- Alla
- tillåts
- längs
- redan
- också
- Även
- alltid
- AMD
- mängd
- an
- och
- Annan
- svara
- vilken som helst
- tillämpas
- Ansök
- cirka
- ÄR
- AS
- delad
- At
- bifoga
- attackera
- Attacker
- Försök
- Österrike
- Författaren
- bil
- Automat
- automatiskt
- genomsnitt
- bakgrund-bild
- baserat
- grund
- BE
- därför att
- innan
- bakom
- Där vi får lov att vara utan att konstant prestera,
- BÄST
- Bättre
- mellan
- Miljarder
- Bit
- blockbuster
- nål
- gränsen
- båda
- Botten
- brute force
- Bug
- SLUTRESULTAT
- Bunch
- men
- by
- Cache
- beräkningar
- KAN
- Vid
- Centrum
- ändrats
- byte
- karaktär
- kontrollerade
- chip
- Pommes frites
- Välja
- valda
- Clash
- koda
- samling
- färg
- COM
- kombinationer
- kommer
- komplex
- dator
- slutsats
- villkor
- konsumera
- konsumtion
- innehålla
- innehåll
- innehåll
- konventionell
- konvertera
- Kärna
- korrekt
- kunde
- Kurs
- täcka
- spricka
- För närvarande
- beställnings
- Cybersäkerhet
- Daniel
- datum
- behandla
- betecknar
- beror
- Designa
- detaljer
- DID
- olika
- direkt
- upptäckt
- Upptäckten
- Visa
- do
- dollar
- domän
- Domain Name
- DOMÄNNAMN
- inte
- dubbade
- jord
- effektivitet
- antingen
- eliminera
- Annars
- kryptering
- tillräckligt
- Även
- NÅGONSIN
- exakt
- exempel
- exciterade
- Förklara
- extern
- Faktum
- snabbare
- möjlig
- känna
- få
- Figur
- hitta
- Flip
- flips
- För
- kraft
- format
- former
- fyra
- Fjärde
- från
- framtida
- Allmänt
- Tyskland
- skaffa sig
- Ge
- ges
- ger
- kommer
- kraftigt
- hade
- Hälften
- hända
- hårdare
- Har
- höjd
- dold
- Hål
- timme
- hovring
- Hur ser din drömresa ut
- How To
- Men
- html
- HTTPS
- hundra
- idealisk
- if
- bild
- omöjligt
- imponerande
- in
- innefattar
- innefattar
- individuellt
- informationen
- informationssäkerhet
- inuti
- istället
- Intel
- avsedd
- inre
- Internet
- in
- Ironiskt
- IT
- DESS
- sig
- bara
- Ha kvar
- hålla
- Nyckel
- nycklar
- Vet
- känd
- lab
- Efternamn
- ledande
- läckage
- lärt
- t minst
- Lämna
- vänster
- Längd
- nivåer
- sannolikt
- BEGRÄNSA
- begränsningar
- Lista
- läge
- platser
- logotyp
- Lång
- du letar
- slå upp
- Låg
- Maskinen
- göra
- Tillverkare
- många
- Marginal
- Martin
- Master
- matematisk
- Materia
- Betyder Något
- max-bredd
- Maj..
- betyder
- mäta
- mätning
- mätningar
- mätning
- Minne
- Michael
- kanske
- Årtusende
- miljon
- begränsning
- Blanda
- blandning
- modellering
- Modern Konst
- Övervaka
- månader
- mer
- mest
- film
- mycket
- namn
- namn
- namngivning
- Behöver
- Nya
- Nej
- Brus
- Ingen
- normala
- inget
- nu
- antal
- nummer
- of
- sänkt
- tjänsteman
- Gamla
- on
- ONE
- ettor
- endast
- öppet
- drift
- operativsystem
- or
- Övriga
- vår
- ut
- utanför
- Översikt
- egen
- Papper
- mönster
- paul
- för
- prestanda
- perspektiv
- fysisk
- pixel
- Plats
- plato
- Platon Data Intelligence
- PlatonData
- plus
- placera
- inlägg
- kraft
- förutse
- Prestige
- pris
- privilegium
- förmodligen
- sond
- Problem
- process
- processer
- Processorn
- processorer
- Programmerare
- Program
- uttalad
- skydda
- skydd
- ge
- Syftet
- sätta
- kvalitet
- fråga
- höjer
- RAM
- slumpmässig
- Betygsätta
- rates
- Läsa
- verkliga världen
- verkligen
- Anledningen
- skäl
- nyligen
- minska
- avses
- registrera
- registrera
- register
- relativ
- frigörs
- ersättas
- Kräver
- forskare
- avseende
- Resultat
- höger
- rinnande
- Samma
- säga
- scenarier
- Svart
- Andra
- säkerhet
- se
- sända
- Serier
- in
- flera
- Kort
- signera
- signaler
- förenklade
- förenkla
- webbplats
- snokande
- So
- fast
- några
- någon
- något
- någonstans
- snart
- tala
- speciell
- specifik
- fart
- starta
- Starta
- statistisk
- Fortfarande
- Sluta
- förvaring
- lagra
- lagras
- lyckas
- Föreslår
- förment
- säker
- SVG
- system
- bord
- Ta
- tar
- uppgift
- Teknisk
- berättar
- temporär
- tester
- än
- den där
- Smakämnen
- deras
- Dem
- sig själva
- sedan
- teoretiska
- Där.
- därför
- de
- tror
- Tredje
- detta
- de
- Således
- tid
- till
- i dag
- tillsammans
- tog
- verktyg
- topp
- spår
- överföring
- övergång
- transparent
- sann
- prova
- två
- Ytterst
- under
- universitet
- osannolik
- URL
- Användning
- användning
- Begagnade
- Användare
- med hjälp av
- vanligen
- värde
- Värden
- FÅFÄNGA
- olika
- mycket
- via
- Besök
- var
- Sätt..
- sätt
- we
- Webbplats
- vecka
- VÄL
- begav sig
- były
- Vad
- när
- om
- som
- medan
- bredd
- kommer
- Wire
- med
- ord
- oro
- skulle
- skriva
- skriven
- år
- år
- ännu
- Om er
- Din
- zephyrnet
- noll-