Een nieuwe week, een nieuwe BWAIN!
Zoals je zult weten als je vorige week hebt geluisterd Podcast (zinspelen, zinspelen!), BWAIN is een afkorting van Bug met een indrukwekkende naam:
Het is een bijnaam die we gebruiken als de vinders van een nieuwe cyberbeveiligingsaanval zo enthousiast zijn over hun ontdekking dat ze er een PR-vriendelijke naam aan geven, er een vanity-domeinnaam voor registreren, er een aangepaste website voor bouwen en er een speciaal logo voor ontwerpen.
Deze keer de naam Botsen+Kracht bevat een vervelend leesteken, wat een pluspunt is bij het benoemen van bugs, maar een minpuntje bij het registreren van een internetdomein. (Ironisch genoeg is het toegestaan om domeinnamen te gebruiken -
, Maar niet +
).
De domeinnaam moest dus iets worden afgekort tot https://collidepower.com, maar de website geeft je toch een overzicht van het probleem, zelfs als het optelteken is afgetrokken.
Verzamel gegevens in de cache en meet het benodigde vermogen
De onderzoekers achter dit nieuwe papier zijn Andreas Kogler, Jonas Juffinger, Lukas Giner, Martin Schwarzl, Daniel Gruss en Stefan Mangard van de Universiteit van Graz in Oostenrijk, en Lukas Gerlach en Michael Schwarz van het CISPA Helmholtz Center for Information Security in Duitsland.
We gaan niet proberen de verschillende vormen van deze aanval uitgebreid uit te leggen, omdat de technische details van hoe de metingen moeten worden uitgevoerd en de wiskundige modellen die worden gebruikt om conclusies te trekken uit die metingen, complex zijn.
Maar de kern van het probleem, als u de gedeeltelijke woordspeling vergeeft, is dat het cachegeheugen dat is begraven in moderne processorchips, bedoeld om een onzichtbare en automatische prestatieverbetering te bieden...
...is niet altijd zo onzichtbaar als je zou denken, en lekt soms een deel of de hele inhoud, zelfs naar processen die deze niet zouden moeten kunnen zien.
Zoals de naam al doet vermoeden, cachegeheugen (het wordt uitgesproken geld, zoals in dollars en centen, niet postzegel, wat betreft respect en prestige, als je je dat ooit hebt afgevraagd), bewaart speciale kopieën van gegevenswaarden van conventionele RAM op verborgen locaties in de CPU-chip zelf.
Als de CPU de RAM-adressen (geheugenlocaties) bijhoudt die u recentelijk hebt gebruikt, en goed genoeg kan raden welke u waarschijnlijk binnenkort weer zult gebruiken, kan hij deze tijdelijk in zijn cachegeheugen bewaren en zo enorm versnellen uw tweede toegang tot die waarden, en de derde toegang, de vierde, enzovoort.
Als u bijvoorbeeld een reeks gegevenswaarden in een tabel opzoekt om afbeeldingspixels van het ene kleurformaat naar het andere te converteren, zult u merken dat de opzoektabel u meestal vertelt om RAM-adres 0x06ABCC00 te bezoeken (wat waar de speciale code voor "zwarte pixel" is opgeslagen) of adres 0x3E00A040 (wat de locatie van de "transparante pixel"-code kan zijn).
Door automatisch de waarden van die twee veelgebruikte geheugenadressen in de cache te bewaren, kan de CPU toekomstige pogingen om toegang te krijgen tot die adressen kortsluiten (figuurlijk, niet letterlijk), zodat het niet nodig is om elektrische signalen buiten de processor te sturen, over het moederbord en in de eigenlijke RAM-chips om de hoofdkopie uit te lezen van de gegevens die daar zijn opgeslagen.
Gegevens in de cache zijn dus meestal veel sneller toegankelijk dan gegevens in het RAM-geheugen van het moederbord.
Over het algemeen kunt u echter niet kiezen welke cacheregisters worden gebruikt om welke RAM-adressen op te slaan, en u kunt niet kiezen wanneer de CPU besluit om te stoppen met het cachen van uw "transparante pixelcode" -waarde en begint met het cachen van de waarde van een ander programma. "supergeheime cryptografische sleutel" in plaats daarvan.
De cache kan inderdaad een liberale mix van waarden bevatten, van een liberale mix van RAM-adressen, die behoren tot een liberale mix van verschillende gebruikersaccounts en privilegeniveaus, allemaal tegelijkertijd.
Om deze reden, samen met redenen van efficiëntie en prestatie, kunnen zelfs programma's op beheerdersniveau niet direct kijken naar de lijst met adressen die momenteel in de cache worden opgeslagen, of hun waarden achterhalen, om de gegevens in de cache te beschermen tegen extern meekijken.
Als programmeur gebruik je nog steeds de machinecode-instructie “lees de transparante pixelcode uit adres 0x3E00A040”, en het besturingssysteem beslist nog steeds of je toegang mag hebben tot die gegevens op basis van het numerieke adres 0x3E00A040, zelfs als de gegevens komen uiteindelijk rechtstreeks uit de cache in plaats van uit het echte RAM-adres 0x3E00A040.
De prijs van een bitflip
Wat de Collide+Power-onderzoekers ontdekten, sterk vereenvoudigd, is dat hoewel je niet direct naar de tijdelijke gegevens in de cacheopslag kunt kijken, en daarom de geheugenbescherming niet kunt omzeilen die zou worden toegepast als je via het officiële RAM-adres zou gaan. …
...u kunt raden wanneer specifieke gegevenswaarden op het punt staan om in specifieke cacheopslagregisters te worden geschreven.
En wanneer een reeds in de cache opgeslagen nummer wordt vervangen door een ander, u kunt conclusies trekken over beide waarden door te meten hoeveel stroom de CPU gebruikt in het proces.
(Moderne processors bevatten meestal speciale interne registers die stroomverbruikmetingen voor u leveren, dus u hoeft de computerbehuizing niet open te breken en ergens op het moederbord een fysieke sondedraad aan te sluiten.)
Het is intrigerend dat het stroomverbruik van de CPU zelf, wanneer deze een cachewaarde overschrijft met een nieuwe, afhangt van het aantal bits dat is gewijzigd tussen de nummers.
Vereenvoudigen we de zaken tot individuele bytes, dan wordt de binaire waarde overschreven 0b00000000
Met 0b11111111
(veranderen van decimaal 0 naar decimaal 255) vereist het omdraaien van alle bits in de byte, wat het meeste vermogen zou verbruiken.
Het ASCII-teken overschrijven A
(65 in decimalen) met Z
(90 in decimalen) betekent veranderen 0b01000001
in 0b01011010
, waar vier bitposities worden omgedraaid, waardoor een gemiddelde hoeveelheid stroom wordt verbruikt
En als de nummers toevallig hetzelfde zijn, hoeven er geen bits te worden omgedraaid, wat het minste stroom zou verbruiken.
In het algemeen, als je de twee getallen samen XOR en het aantal 1-bits in het antwoord telt, vind je het aantal keren, omdat 0 XOR 0 = 0
en 1 XOR 1 = 0
(dus nul betekent geen flip), terwijl 0 XOR 1 = 1
en 1 XOR 0 = 1
(duidt op een omslag).
Met andere woorden, als u toegang kunt krijgen tot een aantal zelfgekozen adressen op een manier die een specifieke set cacheregisters in de CPU voorbereidt, en vervolgens het stroomverbruik nauwkeurig genoeg kunt bewaken wanneer de code van iemand anders zijn gegevens toegewezen krijgt aan die cache locaties in plaats...
…dan je kunt conclusies trekken over het aantal omgedraaide bits tussen de oude cache-inhoud en de nieuwe.
Natuurlijk mag je de waarden kiezen die zijn opgeslagen in de adressen waarmee je de cacheregisters hebt geprimed, dus je weet niet alleen hoeveel bits waarschijnlijk zijn omgedraaid, maar je weet ook wat de startwaarden van die bits waren voordat de flips plaatsvonden plaats.
Dat geeft u nog meer statistische gegevens waarmee u de waarschijnlijke nieuwe waarden in de cache kunt voorspellen, aangezien u weet wat er eerder was en het waarschijnlijke aantal bits dat nu anders is.
Je kunt misschien niet precies achterhalen welke gegevens het proces van je slachtoffer gebruikte, maar zelfs als je enkele bitpatronen kunt elimineren, heb je zojuist iets geleerd dat je niet hoort te weten.
En als die gegevens bijvoorbeeld een soort coderingssleutel zouden zijn, zou je een onhaalbare brute force-aanval kunnen omzetten in een aanval waarbij je misschien wel slaagt.
Als u bijvoorbeeld 70 bits in een 128-bits coderingssleutel kunt voorspellen, dan moet u in plaats van alle combinaties van 128 bits uit te proberen, wat een onmogelijke taak zou zijn, 258 in plaats daarvan andere sleutels (128 – 70 = 58), wat heel goed mogelijk zou kunnen zijn.
Geen reden tot paniek
Gelukkig is deze "kwetsbaarheid" (nu nagesynchroniseerd CVE-2023-20583) zal waarschijnlijk niet snel tegen u gebruikt worden.
Het is meer een theoretische kwestie waar chipfabrikanten rekening mee moeten houden, op basis van de waarheid dat cyberbeveiligingsaanvallen "alleen maar beter en sneller worden", dan een exploiteerbaar gat dat vandaag zou kunnen worden gebruikt.
In feite geven de onderzoekers bijna schaapachtig toe dat "u maak je geen zorgen. '
Ze hebben echt geschreven u cursief gedrukt, en de vervloeking maak je geen zorgen vetgedrukt:
In de conclusie van het artikel merken de onderzoekers spijtig genoeg op dat enkele van hun beste real-world resultaten met deze aanval, onder ideale laboratoriumomstandigheden, slechts 5 bits per uur lekten.
Voor een van hun aanvalsscenario's gaven ze zelfs toe dat ze "praktische beperkingen tegenkwamen die leidden tot lekkagesnelheden van meer dan [een] jaar per bit".
Ja, je leest het goed - we hebben het verschillende keren in de krant gecontroleerd om er zeker van te zijn dat we het ons niet verbeeldden.
En dat roept natuurlijk de vraag op: "Hoe lang moet je een verzameling gegevensoverdrachtstests laten lopen voordat je zo lage transmissiesnelheden betrouwbaar kunt meten?"
Volgens onze berekeningen geeft één bit per jaar u ongeveer 125 bytes per millennium. In dat tempo de onlangs uitgebrachte blockbusterfilm van drie uur downloaden Oppenheimer in IMAX-kwaliteit, die blijkbaar ongeveer een halve terabyte in beslag neemt, zou ongeveer 4 miljard jaar duren. Om dat bizarre feit in perspectief te plaatsen: de aarde zelf is slechts ongeveer 4.54 miljard jaar oud, een paar honderd miljoen maanden.
Wat te doen?
De eenvoudigste manier om nu met CVE-2023-20538 om te gaan, is niets te doen, aangezien de onderzoekers u zelf hebben geadviseerd zich geen zorgen te maken.
Als u de behoefte voelt om iets te doen, hebben zowel Intel- als AMD-processors manieren om de nauwkeurigheid van hun vermogensmeetinstrumenten expres te verminderen door willekeurige ruis toe te voegen aan de vermogensmetingen.
Hierdoor blijven uw gemiddelden correct, maar variëren de individuele metingen voldoende om deze toch al niet echt haalbare aanval nog moeilijker te maken.
Intel's beperking van vermogensmetingen staat bekend als Running Average Power Limit (RAPL)-filtering; AMD's wordt genoemd prestatie determinisme modus.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- PlatoData.Network Verticale generatieve AI. Versterk jezelf. Toegang hier.
- PlatoAiStream. Web3-intelligentie. Kennis versterkt. Toegang hier.
- PlatoESG. Automotive / EV's, carbon, CleanTech, Energie, Milieu, Zonne, Afvalbeheer. Toegang hier.
- BlockOffsets. Eigendom voor milieucompensatie moderniseren. Toegang hier.
- Bron: https://nakedsecurity.sophos.com/2023/08/03/performance-and-security-clash-yet-again-in-collidepower-attack/
- :is
- :niet
- :waar
- $UP
- 1
- 15%
- 25
- 70
- 700
- a
- in staat
- Over
- absoluut
- toegang
- Account
- accounts
- nauwkeurigheid
- nauwkeurig
- over
- daadwerkelijk
- toe te voegen
- toevoeging
- adres
- adressen
- toegeven
- toegegeven
- weer
- tegen
- Alles
- toegestaan
- langs
- al
- ook
- Hoewel
- altijd
- AMD
- bedragen
- an
- en
- Nog een
- beantwoorden
- elke
- toegepast
- Solliciteer
- ongeveer
- ZIJN
- AS
- toegewezen
- At
- hechten
- aanvallen
- Aanvallen
- pogingen
- Oostenrijk
- auteur
- auto
- Automatisch
- webmaster.
- gemiddelde
- background-image
- gebaseerde
- basis
- BE
- omdat
- vaardigheden
- achter
- wezen
- BEST
- Betere
- tussen
- Miljard
- Beetje
- blockbuster
- pin
- grens
- zowel
- Onder
- brute kracht
- Bug
- bouw
- Bos
- maar
- by
- cache
- berekeningen
- CAN
- geval
- Centreren
- veranderd
- veranderende
- karakter
- gecontroleerd
- spaander
- chips
- Kies
- uitgekozen
- Botsing
- code
- Collectie
- kleur
- COM
- combinaties
- komt
- complex
- computer
- conclusie
- voorwaarden
- consumeren
- consumptie
- bevatten
- content
- inhoud
- conventioneel
- converteren
- Kern
- te corrigeren
- kon
- Type cursus
- deksel
- barst
- Op dit moment
- gewoonte
- Cybersecurity
- Daniel
- gegevens
- transactie
- duidt
- afhankelijk
- Design
- gegevens
- DEED
- anders
- direct
- ontdekt
- ontdekking
- Display
- do
- dollar
- domein
- domeinnaam
- DOMEINNAMEN
- Dont
- nagesynchroniseerde
- aarde
- doeltreffendheid
- beide
- elimineren
- anders'
- encryptie
- genoeg
- Zelfs
- OOIT
- precies
- voorbeeld
- opgewonden
- Verklaren
- extern
- feit
- sneller
- uitvoerbaar
- voelen
- weinig
- Figuur
- VIND DE PLEK DIE PERFECT VOOR JOU IS
- Tik
- flips
- Voor
- Dwingen
- formaat
- formulieren
- vier
- Vierde
- oppompen van
- toekomst
- Algemeen
- Duitsland
- krijgen
- Geven
- gegeven
- geeft
- gaan
- sterk
- HAD
- Helft
- gebeuren
- harder
- Hebben
- Hoogte
- verborgen
- Gat
- uur
- zweven
- Hoe
- How To
- Echter
- HTML
- HTTPS
- honderd
- ideaal
- if
- beeld
- onmogelijk
- indrukwekkend
- in
- omvatten
- omvat
- individueel
- informatie
- informatiebeveiliging
- binnen
- verkrijgen in plaats daarvan
- Intel
- bestemde
- intern
- Internet
- in
- ironisch
- IT
- HAAR
- zelf
- voor slechts
- Houden
- houden
- sleutel
- toetsen
- blijven
- bekend
- laboratorium
- Achternaam*
- leidend
- lekken
- geleerd
- minst
- Verlof
- links
- Lengte
- niveaus
- Waarschijnlijk
- LIMIT
- beperkingen
- Lijst
- plaats
- locaties
- logo
- lang
- op zoek
- lookup
- Laag
- machine
- maken
- Fabrikanten
- veel
- Marge
- Martin
- meester
- wiskundig
- Materie
- Zaken
- max-width
- Mei..
- middel
- maatregel
- maat
- maten
- het meten van
- Geheugen
- Michael
- macht
- Millennium
- miljoen
- verzachting
- mengen
- mengsel
- modellering
- Modern
- monitor
- maanden
- meer
- meest
- filmpje
- veel
- naam
- namen
- naamgeving
- Noodzaak
- New
- geen
- Geluid
- Geen
- een
- niets
- nu
- aantal
- nummers
- of
- korting
- officieel
- Oud
- on
- EEN
- degenen
- Slechts
- open
- werkzaam
- besturingssysteem
- or
- Overige
- onze
- uit
- buiten
- overzicht
- het te bezitten.
- Papier
- patronen
- Paul
- voor
- prestatie
- perspectief
- Fysiek
- pixel
- plaats
- Plato
- Plato gegevensintelligentie
- PlatoData
- plus
- positie
- Berichten
- energie
- voorspellen
- Prestige
- prijs
- privilege
- waarschijnlijk
- sonde
- probleem
- processen
- Gegevensverwerker
- processors
- Programmeur
- Programma's
- geprononceerd
- beschermen
- bescherming
- zorgen voor
- doel
- zetten
- kwaliteit
- vraag
- verhoogt
- RAM
- willekeurige
- tarief
- Tarieven
- Lees
- echte wereld
- werkelijk
- reden
- redenen
- onlangs
- verminderen
- verwezen
- registreren
- registreren
- register
- relatief
- uitgebracht
- vervangen
- vereist
- onderzoekers
- culturele wortels
- Resultaten
- rechts
- lopend
- dezelfde
- ervaren
- scenario's
- Zwart
- Tweede
- veiligheid
- zien
- sturen
- -Series
- reeks
- verscheidene
- Bermuda's
- teken
- signalen
- vereenvoudigd
- vereenvoudigen
- website
- snooping
- So
- solide
- sommige
- Iemand
- iets
- ergens
- binnenkort
- spreken
- special
- specifiek
- snelheid
- begin
- Start
- statistisch
- Still
- stop
- mediaopslag
- shop
- opgeslagen
- slagen
- Stelt voor
- vermeend
- zeker
- SVG
- system
- tafel
- Nemen
- neemt
- Taak
- Technisch
- vertelt
- tijdelijk
- testen
- neem contact
- dat
- De
- hun
- Ze
- zich
- harte
- theoretisch
- Er.
- daarom
- ze
- denken
- Derde
- dit
- die
- Dus
- niet de tijd of
- naar
- vandaag
- samen
- nam
- tools
- top
- spoor
- overdracht
- overgang
- transparant
- waar
- proberen
- twee
- Tenslotte
- voor
- universiteit-
- onwaarschijnlijk
- URL
- Gebruik
- .
- gebruikt
- Gebruiker
- gebruik
- doorgaans
- waarde
- Values
- VANITY
- divers
- zeer
- via
- Bezoek
- was
- Manier..
- manieren
- we
- Website
- week
- GOED
- gegaan
- waren
- Wat
- wanneer
- of
- welke
- en
- Breedte
- wil
- Draad
- Met
- woorden
- zorgen
- zou
- schrijven
- geschreven
- jaar
- jaar
- nog
- You
- Your
- zephyrnet
- nul