Endnu en uge, endnu en BWAIN!
Som du ved, hvis du lyttede til sidste uges podcast (vink, vink!), BWAIN er en forkortelse for Bug med et imponerende navn:
Det er et kaldenavn, vi bruger, når finderne af et nyt cybersikkerhedsangreb bliver så begejstrede for deres opdagelse, at de giver det et PR-venligt navn, registrerer et forfængeligt domænenavn til det, bygger det et brugerdefineret websted og designer det et specielt logo.
Denne gang navnet Collide+Power indeholder et irriterende tegnsætningstegn, hvilket er et plus ved navngivning af fejl, men et minus ved registrering af et internetdomæne. (Ironisk nok er domænenavne tilladt at bruge -
, Men ikke +
).
Så domænenavnet skulle forkortes lidt til https://collidepower.com, men hjemmesiden giver dig alligevel et overblik over problemet, selv med tilføjelsestegnet fratrukket.
Kollider cachelagrede data, og mål den nødvendige effekt
Forskerne bag dette nye papir er Andreas Kogler, Jonas Juffinger, Lukas Giner, Martin Schwarzl, Daniel Gruss og Stefan Mangard fra Graz Universitet i Østrig, og Lukas Gerlach og Michael Schwarz fra CISPA Helmholtz Center for Information Security i Tyskland.
Vi vil ikke forsøge at forklare de forskellige former for dette angreb i nogen længde, fordi de tekniske detaljer om, hvordan man tager målingerne, og den matematiske modellering, der bruges til at drage slutninger fra disse målinger, er komplekse.
Men kernen af problemet, hvis du vil undskylde det delvise ordspil, er, at cachehukommelsen, der er begravet inde i moderne processorchips, beregnet til at give et usynligt og automatisk ydelsesboost...
…er ikke altid helt så usynlig, som du måske tror, og kan nogle gange lække noget af eller alt dets indhold, selv til processer, der ikke burde kunne se det.
Som navnet antyder, cachehukommelse (det udtales kontanter, som i dollars og øre, ikke frimærke, som i respekt og prestige, hvis du nogensinde har undret dig), opbevarer specielle kopier af dataværdier fra konventionel RAM på skjulte steder inde i selve CPU-chippen.
Hvis CPU'en holder styr på de RAM-adresser (hukommelsesplaceringer), du har brugt for nylig, og kan gætte godt nok, hvilke du sandsynligvis snart vil bruge igen, kan den opbevare dem midlertidigt i sin cache-hukommelse og dermed fremskynde kraftigt din anden adgang til disse værdier, og den tredje adgang, den fjerde og så videre.
Hvis du f.eks. slår en række dataværdier op i en tabel for at konvertere billedpixel fra et farveformat til et andet, vil du måske opdage, at det meste af tiden fortæller opslagstabellen dig, at du skal besøge enten RAM-adressen 0x06ABCC00 (hvilket måske være hvor den særlige kode for "sort pixel" er gemt) eller adressen 0x3E00A040 (som kan være placeringen af den "gennemsigtige pixel"-kode).
Ved automatisk at holde værdierne fra disse to almindeligt nødvendige hukommelsesadresser i sin cache, kan CPU'en kortslutte (figurativt, ikke bogstaveligt!) fremtidige forsøg på at få adgang til disse adresser, så der ikke er behov for at sende elektriske signaler uden for processoren, på tværs af bundkortet og ind i de faktiske RAM-chips for at læse masterkopien af de data, der er gemt der.
Så cachelagrede data er normalt meget hurtigere at få adgang til end data i bundkortets RAM.
Generelt kan du dog ikke vælge, hvilke cache-registre, der skal bruges til at gemme hvilke RAM-adresser, og du kan ikke vælge, hvornår CPU'en beslutter at stoppe med at cache din "gennemsigtige pixelkode"-værdi og begynde at cache et andet programs "superhemmelig kryptografisk nøgle" i stedet for.
Faktisk kan cachen indeholde en liberal blanding af værdier, fra en liberal blanding af RAM-adresser, der tilhører en liberal blanding af forskellige brugerkonti og privilegieniveauer, alt sammen på samme tid.
Af denne grund, sammen med årsager til effektivitet og ydeevne, kan selv programmer på administratorniveau ikke direkte kigge på listen over adresser, der i øjeblikket gemmes, eller finde deres værdier for at beskytte de cachelagrede data mod ekstern snooping.
Som programmør bruger du stadig maskinkodeinstruktionen "læs den gennemsigtige pixelkode op fra adresse 0x3E00A040", og operativsystemet bestemmer stadig, om du skal have adgang til disse data baseret på den numeriske adresse 0x3E00A040, selvom data kommer i sidste ende direkte fra cachen i stedet for fra den sande RAM-adresse 0x3E00A040.
Prisen på en bit-flip
Hvad Collide+Power-forskerne opdagede, meget forenklet, er, at selvom du ikke direkte kan kigge på de midlertidige data i cache-lageret, og derfor ikke kan omgå den hukommelsesbeskyttelse, der ville blive anvendt, hvis du gik via dens officielle RAM-adresse …
…du kan gætte, hvornår specifikke dataværdier er ved at blive skrevet ind i specifikke cache-lagerregistre.
Og når et allerede cachelagret nummer bliver erstattet af et andet, du kan drage slutninger om begge værdier ved at måle, hvor meget strøm CPU'en bruger i processen.
(Moderne processorer inkluderer normalt specielle interne registre, der giver dig strømforbrugsaflæsninger, så du ikke behøver at åbne computerkabinettet og tilslutte en fysisk sondeledning et sted på bundkortet.)
Spændende nok afhænger strømforbruget af selve CPU'en, når den overskriver en cacheværdi med en ny, af hvor mange bits der er ændret mellem tallene.
Hvis vi forenkler sagen til individuelle bytes, så overskriver vi den binære værdi 0b00000000
med 0b11111111
(ændring af decimal 0 til decimal 255) kræver at vende alle bits i byten, hvilket ville forbruge mest strøm.
Overskrivning af ASCII-tegnet A
(65 i decimal) med Z
(90 i decimal) betyder ændring 0b01000001
ind 0b01011010
, hvor fire bit-positioner bliver vendt, og dermed forbruger en middel mængde strøm
Og hvis tallene tilfældigvis er de samme, behøver ingen bit at vende, hvilket ville forbruge mindst strøm.
Generelt, hvis du XOR de to tal sammen og tæller antallet af 1-bit i svaret, finder du antallet af vendinger, fordi 0 XOR 0 = 0
, 1 XOR 1 = 0
(så nul angiver ingen flip), mens 0 XOR 1 = 1
, 1 XOR 0 = 1
(betegner et flip).
Med andre ord, hvis du kan få adgang til en masse udvalgte adresser på en måde, der primer et bestemt sæt cache-registre inde i CPU'en og derefter overvåger strømforbruget nøjagtigt nok, når en andens kode får sine data tildelt disse cache steder i stedet...
…derefter du kan drage slutninger om, hvor mange bits der er vendt mellem det gamle cacheindhold og det nye.
Du kan selvfølgelig vælge de værdier, der er gemt i de adresser, som du primede cache-registrene med, så du ikke bare ved, hvor mange bit der sandsynligvis blev vendt, men du ved også, hvad startværdierne for de bits var, før flippene tog placere.
Det giver dig endnu flere statistiske data til at forudsige de sandsynlige nye værdier i cachen, givet at du ved, hvad der var der før, og det sandsynlige antal bit, der nu er anderledes.
Du er måske ikke i stand til at finde ud af præcis, hvilke data dit offers proces brugte, men selvom du kan fjerne nogle bitmønstre, har du lige lært noget, som du ikke burde vide.
Og hvis disse data f.eks. var en krypteringsnøgle af en slags, kunne du måske konvertere et uigennemførligt brute force-angreb til et angreb, hvor du måske bare lykkes.
For eksempel, hvis du kan forudsige 70 bit i en 128-bit krypteringsnøgle, så i stedet for at prøve alle kombinationer af 128 bit, hvilket ville være en umulig opgave, skal du prøve 258 forskellige nøgler i stedet for (128 – 70 = 58), hvilket meget vel kunne lade sig gøre.
Ingen grund til panik
Heldigvis er denne "sårbarhed" (nu døbt CVE-2023-20583) vil næppe blive brugt imod dig på et tidspunkt.
Det er mere en teoretisk sag, som chipproducenter skal tage højde for, på baggrund af den sandhed, at cybersikkerhedsangreb "kun nogensinde bliver bedre og hurtigere", end et udnytteligt hul, der kunne bruges i dag.
Faktisk indrømmer forskerne, næsten fåret, at "dig behøver ikke bekymre dig".
De skrev virkelig dig i kursiv, og afsløringen Ikke at bekymre sig med fed skrift:
I konklusionen af artiklen bemærker forskerne sorgfuldt, at nogle af deres bedste resultater i den virkelige verden med dette angreb, under ideelle laboratorieforhold, lækkede kun 5 bits i timen.
For et af deres angrebsscenarier indrømmede de faktisk, at de stødte på "praktiske begrænsninger, der førte til lækagerater på mere end [et] år pr. bit".
Ja, du læste det rigtigt – vi tjekkede det flere gange i avisen for at sikre, at vi ikke forestillede os det.
Og det rejser selvfølgelig spørgsmålet: "Hvor længe skal du lade en samling af dataoverførselstest køre, før du pålideligt kan måle så lave transmissionshastigheder?"
Ved vores beregninger giver en bit om året dig omkring 125 bytes per årtusinde. Med den hastighed downloader man den nyligt udgivne tre-timers storfilm Oppenheimer i IMAX-kvalitet, som tilsyneladende fylder omkring en halv terabyte, ville tage cirka 4 milliarder år. For at sætte den bizarre factoid i perspektiv, er Jorden selv kun omkring 4.54 milliarder år gammel, giv eller tag et par hundrede millioner måneder.
Hvad skal jeg gøre?
Den enkleste måde at håndtere CVE-2023-20538 lige nu er at gøre ingenting, da forskerne selv har rådet dig til ikke at bekymre dig.
Hvis du føler behov for at gøre noget, har både Intel- og AMD-processorer måder at reducere nøjagtigheden af deres strømmålingsværktøjer med vilje ved at tilføje tilfældig støj i effektaflæsningerne.
Dette efterlader dine gennemsnit korrekte, men varierer de individuelle aflæsninger tilstrækkeligt til at gøre dette allerede ikke-virkelig gennemførlige angreb endnu sværere at gennemføre.
Intels effektmålingsreduktion er kendt som kører gennemsnitseffektgrænse (RAPL) filtrering; AMD'er omtales som præstationsdeterminismetilstand.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- PlatoData.Network Vertical Generative Ai. Styrk dig selv. Adgang her.
- PlatoAiStream. Web3 intelligens. Viden forstærket. Adgang her.
- PlatoESG. Automotive/elbiler, Kulstof, CleanTech, Energi, Miljø, Solenergi, Affaldshåndtering. Adgang her.
- BlockOffsets. Modernisering af miljømæssig offset-ejerskab. Adgang her.
- Kilde: https://nakedsecurity.sophos.com/2023/08/03/performance-and-security-clash-yet-again-in-collidepower-attack/
- :er
- :ikke
- :hvor
- $OP
- 1
- 15 %
- 25
- 70
- 700
- a
- I stand
- Om
- absolutte
- adgang
- Konto
- Konti
- nøjagtighed
- præcist
- tværs
- faktiske
- tilføje
- Desuden
- adresse
- adresser
- indrømme
- indrømmede
- igen
- mod
- Alle
- tilladt
- sammen
- allerede
- også
- Skønt
- altid
- AMD
- beløb
- an
- ,
- En anden
- besvare
- enhver
- anvendt
- Indløs
- cirka
- ER
- AS
- tildelt
- At
- vedhæfte
- angribe
- Angreb
- Forsøg på
- Østrig
- forfatter
- auto
- Automatisk Ur
- automatisk
- gennemsnit
- background-billede
- baseret
- grundlag
- BE
- fordi
- før
- bag
- være
- BEDSTE
- Bedre
- mellem
- Billion
- Bit
- blockbuster
- pin
- grænse
- både
- Bund
- brute force
- Bug
- bygge
- Bunch
- men
- by
- Cache
- beregninger
- CAN
- tilfælde
- center
- ændret
- skiftende
- karakter
- afkrydset
- chip
- Chips
- Vælg
- valgt
- Clash
- kode
- samling
- farve
- KOM
- kombinationer
- kommer
- komplekse
- computer
- konklusion
- betingelser
- forbruge
- forbrug
- indeholder
- indhold
- indhold
- konventionelle
- konvertere
- Core
- korrigere
- kunne
- Kursus
- dæksel
- sprække
- For øjeblikket
- skik
- Cybersecurity
- Daniel
- data
- deal
- betegner
- afhænger
- Design
- detaljer
- DID
- forskellige
- direkte
- opdaget
- opdagelse
- Skærm
- do
- dollars
- domæne
- Domain Name
- DOMÆNENAVNE
- Dont
- døbt
- jorden
- effektivitet
- enten
- eliminere
- Ellers
- kryptering
- nok
- Endog
- NOGENSINDE
- præcist nok
- eksempel
- ophidset
- Forklar
- ekstern
- Faktisk
- hurtigere
- gennemførlig
- føler sig
- få
- Figur
- Finde
- Flip
- flips
- Til
- Tving
- format
- formularer
- fire
- Fjerde
- fra
- fremtiden
- Generelt
- Tyskland
- få
- Giv
- given
- giver
- gå
- stærkt
- havde
- Halvdelen
- ske
- hårdere
- Have
- højde
- Skjult
- Hole
- time
- hover
- Hvordan
- How To
- Men
- HTML
- HTTPS
- hundrede
- ideal
- if
- billede
- umuligt
- imponerende
- in
- omfatter
- omfatter
- individuel
- oplysninger
- informationssikkerhed
- indvendig
- i stedet
- Intel
- beregnet
- interne
- Internet
- ind
- ironisk
- IT
- ITS
- selv
- lige
- Holde
- holde
- Nøgle
- nøgler
- Kend
- kendt
- lab
- Efternavn
- førende
- lække
- lærte
- mindst
- Forlade
- til venstre
- Længde
- niveauer
- Sandsynlig
- GRÆNSE
- begrænsninger
- Liste
- placering
- placeringer
- logo
- Lang
- leder
- kig op
- Lav
- maskine
- lave
- Producenter
- mange
- Margin
- Martin
- Master
- matematiske
- Matter
- Matters
- max-bredde
- Kan..
- midler
- måle
- måling
- målinger
- måling
- Hukommelse
- Michael
- måske
- Millennium
- million
- afbødning
- blande
- blanding
- modellering
- Moderne
- Overvåg
- måned
- mere
- mest
- film
- meget
- navn
- navne
- navngivning
- Behov
- Ny
- ingen
- Støj
- Ingen
- normal
- intet
- nu
- nummer
- numre
- of
- off
- officiel
- Gammel
- on
- ONE
- dem
- kun
- åbent
- drift
- operativsystem
- or
- Andet
- vores
- ud
- uden for
- oversigt
- egen
- Papir
- mønstre
- paul
- per
- ydeevne
- perspektiv
- fysisk
- pixel
- Place
- plato
- Platon Data Intelligence
- PlatoData
- plus
- position
- Indlæg
- magt
- forudsige
- Prestige
- pris
- privilegium
- sandsynligvis
- sonde
- Problem
- behandle
- Processer
- Processor
- processorer
- programmør
- Programmer
- udtalt
- beskytte
- beskyttelse
- give
- formål
- sætte
- kvalitet
- spørgsmål
- rejser
- RAM
- tilfældig
- Sats
- priser
- Læs
- virkelige verden
- virkelig
- grund
- årsager
- for nylig
- reducere
- benævnt
- register
- registrering
- registre
- relative
- frigivet
- udskiftes
- Kræver
- forskere
- respekt
- Resultater
- højre
- kører
- samme
- siger
- scenarier
- Black
- Anden
- sikkerhed
- se
- send
- Series
- sæt
- flere
- Kort
- underskrive
- signaler
- forenklet
- forenkle
- websted
- snooping
- So
- solid
- nogle
- Nogen
- noget
- et eller andet sted
- snart
- taler
- særligt
- specifikke
- hastighed
- starte
- Starter
- statistiske
- Stadig
- Stands
- opbevaring
- butik
- opbevaret
- lykkes
- foreslår
- formodes
- sikker
- SVG
- systemet
- bord
- Tag
- tager
- Opgaver
- Teknisk
- fortæller
- midlertidig
- tests
- end
- at
- deres
- Them
- selv
- derefter
- teoretisk
- Der.
- derfor
- de
- tror
- Tredje
- denne
- dem
- Dermed
- tid
- til
- i dag
- sammen
- tog
- værktøjer
- top
- spor
- overførsel
- overgang
- gennemsigtig
- sand
- prøv
- to
- Ultimativt
- under
- universitet
- usandsynligt
- URL
- Brug
- brug
- anvendte
- Bruger
- ved brug af
- sædvanligvis
- værdi
- Værdier
- FORFÆNGELIGHED
- forskellige
- meget
- via
- Besøg
- var
- Vej..
- måder
- we
- Hjemmeside
- uge
- GODT
- gik
- var
- Hvad
- hvornår
- hvorvidt
- som
- mens
- bredde
- vilje
- Tråd
- med
- ord
- bekymre sig
- ville
- skriver
- skriftlig
- år
- år
- endnu
- Du
- Din
- zephyrnet
- nul