Nok en uke, enda en BWAIN!
Som du vil vite om du hørte på forrige ukes podcast (ymte, ymte!), BWAIN er en forkortelse for Feil med et imponerende navn:
Det er et kallenavn vi bruker når finnerne av et nytt cybersikkerhetsangrep blir så begeistret for oppdagelsen at de gir den en PR-vennlig moniker, registrerer et forfengelighetsdomenenavn for det, bygger det et tilpasset nettsted og designer det en spesiell logo.
Denne gangen, navnet Kollider + Strøm inkluderer et irriterende tegnsettingstegn, som er et pluss ved navngivning av feil, men et minus når du registrerer et internettdomene. (Ironisk nok er domenenavn tillatt å bruke -
, Men ikke +
).
Så domenenavnet måtte forkortes litt til https://collidepower.com, men nettsiden vil gi deg en oversikt over problemet uansett, selv med tilleggstegnet trukket fra.
Kollider hurtigbufrede data, og mål kraften som kreves
Forskerne bak dette nye papir er Andreas Kogler, Jonas Juffinger, Lukas Giner, Martin Schwarzl, Daniel Gruss og Stefan Mangard fra Graz University i Østerrike, og Lukas Gerlach og Michael Schwarz fra CISPA Helmholtz Center for Information Security i Tyskland.
Vi skal ikke prøve å forklare de ulike formene for dette angrepet i noen lengde, fordi de tekniske detaljene om hvordan man tar målingene, og den matematiske modelleringen som brukes til å trekke slutninger fra disse målingene, er komplekse.
Men kjernen i problemet, hvis du vil unnskylde det delvise ordspillet, er at cache-minnet som er begravd i moderne prosessorbrikker, ment å gi en usynlig og automatisk ytelsesøkning...
…er ikke alltid fullt så usynlig som du kanskje tror, og kan noen ganger lekke noe eller hele innholdet, selv til prosesser som ikke burde kunne se det.
Som navnet antyder, cache-minne (det uttales kontanter, som i dollar og cent, ikke frimerke, som i respekt og prestisje, hvis du noen gang har lurt på), holder spesielle kopier av dataverdier fra konvensjonell RAM på skjulte steder inne i selve CPU-brikken.
Hvis CPU-en holder styr på RAM-adressene (minneplasseringene) som du har brukt nylig, og kan gjette godt nok hvilke du sannsynligvis kommer til å bruke igjen snart, kan den holde dem midlertidig i cache-minnet og dermed øke hastigheten betydelig. din andre tilgang til disse verdiene, og den tredje tilgangen, den fjerde og så videre.
For eksempel, hvis du ser opp en serie dataverdier i en tabell for å konvertere bildepiksler fra ett fargeformat til et annet, kan du finne ut at oppslagstabellen mesteparten av tiden ber deg besøke enten RAM-adressen 0x06ABCC00 (som kan være der spesialkoden for "svart piksel" er lagret) eller adressen 0x3E00A040 (som kan være plasseringen til den "gjennomsiktige piksel"-koden).
Ved automatisk å holde verdiene fra disse to vanlig nødvendige minneadressene i hurtigbufferen, kan CPU-en kortslutte (figurativt, ikke bokstavelig talt!) fremtidige forsøk på å få tilgang til disse adressene, slik at det ikke er behov for å sende elektriske signaler utenfor prosessoren, på tvers av hovedkortet, og inn i selve RAM-brikkene for å lese ut hovedkopien av dataene som er lagret der.
Så bufrede data er vanligvis mye raskere å få tilgang til enn data i hovedkortets RAM.
Generelt sett kan du imidlertid ikke velge hvilke cache-registre som skal brukes til å lagre hvilke RAM-adresser, og du kan ikke velge når CPU-en bestemmer seg for å slutte å bufre din "transparente pikselkode"-verdi og begynne å cache et annet programs "superhemmelig kryptografisk nøkkel" i stedet.
Faktisk kan cachen inneholde en liberal blanding av verdier, fra en liberal blanding av RAM-adresser, som tilhører en liberal blanding av forskjellige brukerkontoer og rettighetsnivåer, alt på samme tid.
Av denne grunn, sammen med årsaker til effektivitet og ytelse, kan ikke selv programmer på administratornivå se direkte på listen over adresser som for øyeblikket bufres, eller finne verdiene deres, for å beskytte de hurtigbufrede dataene mot ekstern snoking.
Som programmerer bruker du fortsatt maskinkodeinstruksjonen "les ut den gjennomsiktige pikselkoden fra adressen 0x3E00A040", og operativsystemet bestemmer fortsatt om du skal ha tilgang til disse dataene basert på den numeriske adressen 0x3E00A040, selv om data kommer til slutt direkte fra hurtigbufferen i stedet for fra den sanne RAM-adressen 0x3E00A040.
Prisen på en bit-flip
Det Collide+Power-forskerne oppdaget, veldig mye forenklet, er at selv om du ikke kan se direkte på de midlertidige dataene i hurtigbufferlagringen, og derfor ikke kan omgå minnebeskyttelsen som ville blitt brukt hvis du gikk via den offisielle RAM-adressen. …
…du kan gjette når spesifikke dataverdier er i ferd med å bli skrevet inn i spesifikke cachelagringsregistre.
Og når ett allerede bufret nummer erstattes av et annet, du kan trekke slutninger om begge verdiene ved å måle hvor mye strøm CPUen bruker i prosessen.
(Moderne prosessorer inkluderer vanligvis spesielle interne registre som gir strømforbruksavlesninger for deg, slik at du ikke trenger å åpne datamaskindekselet og feste en fysisk sondeledning et sted på hovedkortet.)
Spennende nok avhenger strømforbruket til selve CPU-en, når den overskriver en cache-verdi med en ny, av hvor mange biter som er endret mellom tallene.
Hvis vi forenkler saker til individuelle byte, så overskriver vi den binære verdien 0b00000000
med 0b11111111
(endring av desimal 0 til desimal 255) krever å snu alle bitene i byten, noe som vil forbruke mest strøm.
Overskriver ASCII-tegnet A
(65 i desimal) med Z
(90 i desimal) betyr endring 0b01000001
inn 0b01011010
, hvor fire bit-posisjoner blir snudd, og dermed bruker en middels mengde strøm
Og hvis tallene tilfeldigvis er de samme, trenger ingen biter å snu, noe som vil forbruke minst strøm.
Generelt, hvis du XOR de to tallene sammen og teller antall 1-biter i svaret, finner du antall vendinger, fordi 0 XOR 0 = 0
og 1 XOR 1 = 0
(så null betyr ingen flip), mens 0 XOR 1 = 1
og 1 XOR 0 = 1
(angir en flipp).
Med andre ord, hvis du kan få tilgang til en haug med valgte adresser på en måte som primer et spesifikt sett med hurtigbufferregistre inne i prosessoren, og deretter overvåker strømforbruket nøyaktig nok når en annens kode får dataene tilordnet disse cachen. steder i stedet...
…deretter du kan trekke slutninger om hvor mange biter som ble snudd mellom det gamle cache-innholdet og det nye.
Selvfølgelig kan du velge verdiene som er lagret i adressene du primet cache-registrene med, slik at du ikke bare vet hvor mange biter som sannsynligvis ble snudd, men du vet også hva startverdiene til disse bitene var før flippene tok plass.
Det gir deg enda flere statistiske data for å forutsi de sannsynlige nye verdiene i cachen, gitt at du vet hva som var der før og det sannsynlige antallet biter som nå er annerledes.
Du kan kanskje ikke finne ut nøyaktig hvilke data offerets prosess brukte, men selv om du kan eliminere noen bitmønstre, har du nettopp lært noe du ikke skal vite.
Og hvis disse dataene for eksempel var en krypteringsnøkkel av noe slag, kan du kanskje konvertere et ugjennomførbart brute force-angrep til et angrep hvor du kanskje bare lykkes.
For eksempel, hvis du kan forutsi 70 biter i en 128-bits krypteringsnøkkel, må du prøve 128 i stedet for å prøve ut alle kombinasjoner av 2 biter, noe som ville være en umulig oppgave58 forskjellige nøkler i stedet (128 – 70 = 58), noe som godt kan være gjennomførbart.
Ingen grunn til panikk
Heldigvis er denne "sårbarheten" (nå kalt CVE-2023-20583) vil neppe bli brukt mot deg med det første.
Det er mer en teoretisk sak som brikkeprodusenter må ta i betraktning, på grunnlag av sannheten om at cybersikkerhetsangrep "bare blir bedre og raskere", enn et utnyttbart hull som kan brukes i dag.
Faktisk innrømmer forskerne, nesten fårete, at "du trenger ikke å bekymre deg».
De skrev virkelig du i kursiv, og imprecasjonen ikke vær redd med fet skrift:
I konklusjonen av artikkelen bemerker forskerne med sorg at noen av deres beste virkelige resultater med dette angrepet, under ideelle laboratorieforhold, lekket bare 5 biter i timen.
For et av angrepsscenariene deres innrømmet de faktisk at de møtte "praktiske begrensninger som førte til lekkasjerater på mer enn [ett] år per bit".
Ja, du leste det riktig – vi sjekket det flere ganger i avisen bare for å være sikker på at vi ikke innbilte det.
Og det reiser selvfølgelig spørsmålet: "Hvor lenge må du la en samling av dataoverføringstester kjøre før du pålitelig kan måle så lave overføringshastigheter?"
Etter våre beregninger gir én bit per år deg omtrent 125 byte per årtusen. Med den hastigheten, nedlasting av den nylig utgitte tre-timers storfilmen Oppenheimer i IMAX-kvalitet, som tilsynelatende tar opp omtrent en halv terabyte, vil ta omtrent 4 milliarder år. For å sette den bisarre faktaen i perspektiv, er Jorden selv bare omtrent 4.54 milliarder år gammel, gi eller ta noen hundre millioner måneder.
Hva gjør jeg?
Den enkleste måten å håndtere CVE-2023-20538 akkurat nå er å ikke gjøre noe, gitt at forskerne selv har rådet deg til ikke å bekymre deg.
Hvis du føler behov for å gjøre noe, har både Intel- og AMD-prosessorer måter å redusere nøyaktigheten til strømmålingsverktøyene sine med vilje, ved å legge til tilfeldig støy i effektavlesningene.
Dette lar gjennomsnittene dine være korrekte, men varierer individuelle avlesninger tilstrekkelig til å gjøre dette allerede ikke-virkelig mulige angrepet enda vanskeligere å gjennomføre.
Intels effektmålingsreduksjon er kjent som kjører gjennomsnittlig effektgrense (RAPL) filtrering; AMD er referert til som ytelsesdeterminismemodus.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk deg selv. Tilgang her.
- PlatoAiStream. Web3 Intelligence. Kunnskap forsterket. Tilgang her.
- PlatoESG. Bil / elbiler, Karbon, CleanTech, Energi, Miljø, Solenergi, Avfallshåndtering. Tilgang her.
- BlockOffsets. Modernisering av eierskap for miljøkompensasjon. Tilgang her.
- kilde: https://nakedsecurity.sophos.com/2023/08/03/performance-and-security-clash-yet-again-in-collidepower-attack/
- :er
- :ikke
- :hvor
- $OPP
- 1
- 15%
- 25
- 70
- 700
- a
- I stand
- Om oss
- Absolute
- adgang
- Logg inn
- kontoer
- nøyaktighet
- nøyaktig
- tvers
- faktiske
- legge
- tillegg
- adresse
- adresser
- innrømme
- innrømmet
- en gang til
- mot
- Alle
- tillatt
- langs
- allerede
- også
- Selv
- alltid
- AMD
- beløp
- an
- og
- En annen
- besvare
- noen
- anvendt
- Påfør
- ca
- ER
- AS
- tildelt
- At
- feste
- angripe
- Angrep
- forsøk
- Østerrike
- forfatter
- auto
- Automatisk
- automatisk
- gjennomsnittlig
- background-image
- basert
- basis
- BE
- fordi
- før du
- bak
- være
- BEST
- Bedre
- mellom
- Milliarder
- Bit
- blockbuster
- pin
- grensen
- både
- Bunn
- brute force
- Bug
- bygge
- Bunch
- men
- by
- Cache
- beregninger
- CAN
- saken
- sentrum
- endret
- endring
- karakter
- sjekket
- chip
- chips
- Velg
- valgt ut
- Clash
- kode
- samling
- farge
- COM
- kombinasjoner
- kommer
- komplekse
- datamaskin
- konklusjon
- forhold
- forbruke
- forbruk
- inneholde
- innhold
- innhold
- konvensjonell
- konvertere
- Kjerne
- korrigere
- kunne
- Kurs
- dekke
- crack
- I dag
- skikk
- Cybersecurity
- Daniel
- dato
- avtale
- betegner
- avhenger
- utforming
- detaljer
- gJORDE
- forskjellig
- direkte
- oppdaget
- Funnet
- Vise
- do
- dollar
- domene
- Domain Name
- DOMENENAVN
- ikke
- dubbet
- jord
- effektivitet
- enten
- eliminere
- Else's
- kryptering
- nok
- Selv
- NOEN GANG
- nøyaktig
- eksempel
- opphisset
- Forklar
- utvendig
- Faktisk
- raskere
- gjennomførbart
- føler
- Noen få
- Figur
- Finn
- Flip
- flips
- Til
- Tving
- format
- skjemaer
- fire
- Fjerde
- fra
- framtid
- general
- Tyskland
- få
- Gi
- gitt
- gir
- skal
- sterkt
- HAD
- Halvparten
- skje
- hardere
- Ha
- høyde
- skjult
- Hole
- time
- hover
- Hvordan
- Hvordan
- Men
- HTML
- HTTPS
- hundre
- ideell
- if
- bilde
- umulig
- imponerende
- in
- inkludere
- inkluderer
- individuelt
- informasjon
- informasjonssikkerhet
- innsiden
- i stedet
- Intel
- tiltenkt
- intern
- Internet
- inn
- ironisk
- IT
- DET ER
- selv
- bare
- Hold
- holde
- nøkkel
- nøkler
- Vet
- kjent
- lab
- Siste
- ledende
- lekke
- lært
- minst
- Permisjon
- venstre
- Lengde
- nivåer
- Sannsynlig
- BEGRENSE
- begrensninger
- Liste
- plassering
- steder
- logo
- Lang
- ser
- oppslag
- Lav
- maskin
- gjøre
- Produsenter
- mange
- Margin
- Martin
- Master
- matematiske
- Saken
- Saker
- max bredde
- Kan..
- midler
- måle
- måling
- målinger
- måling
- Minne
- Michael
- kunne
- Millennium
- millioner
- skadebegrensning
- bland
- blanding
- modellering
- Moderne
- Overvåke
- måneder
- mer
- mest
- film
- mye
- navn
- navn
- navngiving
- Trenger
- Ny
- Nei.
- Bråk
- none
- normal
- ingenting
- nå
- Antall
- tall
- of
- off
- offisiell
- Gammel
- on
- ONE
- seg
- bare
- åpen
- drift
- operativsystem
- or
- Annen
- vår
- ut
- utenfor
- oversikt
- egen
- Papir
- mønstre
- paul
- for
- ytelse
- perspektiv
- fysisk
- pixel
- Sted
- plato
- Platon Data Intelligence
- PlatonData
- i tillegg til
- posisjon
- innlegg
- makt
- forutsi
- Prestisje
- pris
- privilegium
- sannsynligvis
- probe
- Problem
- prosess
- Prosesser
- prosessor
- prosessorer
- Programmerer
- programmer
- uttales
- beskytte
- beskyttelse
- gi
- formål
- sette
- kvalitet
- spørsmål
- hever
- RAM
- tilfeldig
- Sats
- priser
- Lese
- virkelige verden
- virkelig
- grunnen til
- grunner
- nylig
- redusere
- referert
- registrere
- registrering
- registre
- slektning
- utgitt
- erstattet
- Krever
- forskere
- respekt
- Resultater
- ikke sant
- rennende
- samme
- sier
- scenarier
- Svart
- Sekund
- sikkerhet
- se
- send
- Serien
- sett
- flere
- Kort
- undertegne
- signaler
- forenklet
- forenkle
- nettstedet
- snooping
- So
- solid
- noen
- Noen
- noe
- et sted
- snart
- sett
- spesiell
- spesifikk
- fart
- Begynn
- Start
- statistisk
- Still
- Stopp
- lagring
- oppbevare
- lagret
- lykkes
- foreslår
- ment
- sikker
- SVG
- system
- bord
- Ta
- tar
- Oppgave
- Teknisk
- forteller
- midlertidig
- tester
- enn
- Det
- De
- deres
- Dem
- seg
- deretter
- teoretiske
- Der.
- derfor
- de
- tror
- Tredje
- denne
- De
- Dermed
- tid
- til
- i dag
- sammen
- tok
- verktøy
- topp
- spor
- overføre
- overgang
- gjennomsiktig
- sant
- prøve
- to
- Til syvende og sist
- etter
- universitet
- usannsynlig
- URL
- bruk
- bruke
- brukt
- Bruker
- ved hjelp av
- vanligvis
- verdi
- Verdier
- FORFENGELIGHET
- ulike
- veldig
- av
- Besøk
- var
- Vei..
- måter
- we
- Nettsted
- uke
- VI VIL
- gikk
- var
- Hva
- når
- om
- hvilken
- mens
- bredde
- vil
- Metalltråd
- med
- ord
- bekymring
- ville
- skrive
- skrevet
- år
- år
- ennå
- Du
- Din
- zephyrnet
- null