Une autre semaine, un autre BWAIN !
Comme vous le saurez si vous avez écouté la semaine dernière Podcast (allusion, allusion!), BWAIN est l'abréviation de Bug avec un nom impressionnant:
C'est un surnom que nous appliquons lorsque les découvreurs d'une nouvelle attaque de cybersécurité sont tellement enthousiasmés par leur découverte qu'ils lui donnent un surnom adapté aux relations publiques, enregistrent un nom de domaine personnalisé, construisent un site Web personnalisé et lui concevent un logo spécial.
Cette fois, le nom Collision+Puissance inclut un caractère de ponctuation embêtant, ce qui est un avantage dans la dénomination des bogues, mais un inconvénient lors de l'enregistrement d'un domaine Internet. (Ironiquement, les noms de domaine sont autorisés à utiliser -
, Mais pas +
).
Ainsi, le nom de domaine a dû être légèrement abrégé pour https://collidepower.com, mais le site Web vous donnera quand même un aperçu du problème, même avec le signe d'addition soustrait.
Collisionnez les données mises en cache et mesurez la puissance requise
Les chercheurs à l'origine de ce nouveau papier sont Andreas Kogler, Jonas Juffinger, Lukas Giner, Martin Schwarzl, Daniel Gruss et Stefan Mangard de l'Université de Graz en Autriche, et Lukas Gerlach et Michael Schwarz du CISPA Helmholtz Center for Information Security en Allemagne.
Nous n'allons pas essayer d'expliquer en détail les différentes formes de cette attaque, car les détails techniques sur la façon de prendre les mesures et la modélisation mathématique utilisée pour faire des déductions à partir de ces mesures sont complexes.
Mais le cœur du problème, si vous voulez bien pardonner le jeu de mots partiel, est que la mémoire cache qui est enterrée à l'intérieur des puces de processeur modernes, destinée à fournir une amélioration invisible et automatique des performances…
… n'est pas toujours aussi invisible qu'on pourrait le penser, et peut parfois divulguer tout ou partie de son contenu, même à des processus qui ne devraient pas être en mesure de le voir.
Comme son nom l'indique, la mémoire cache (elle se prononce espèces, comme en dollars et en cents, et non cachet, comme dans le respect et le prestige, si vous vous êtes déjà demandé), conserve des copies spéciales des valeurs de données de la RAM conventionnelle dans des emplacements cachés à l'intérieur de la puce CPU elle-même.
Si le processeur conserve une trace des adresses RAM (emplacements mémoire) que vous avez utilisées récemment, et peut deviner assez bien celles que vous êtes susceptible de réutiliser bientôt, il peut les conserver temporairement dans sa mémoire cache et ainsi accélérer considérablement votre deuxième accès à ces valeurs, et le troisième accès, le quatrième, et ainsi de suite.
Par exemple, si vous recherchez une série de valeurs de données dans une table pour convertir les pixels de l'image d'un format de couleur à un autre, vous constaterez peut-être que la plupart du temps, la table de recherche vous indique de visiter l'adresse RAM 0x06ABCC00 (qui peut être où le code spécial pour "pixel noir" est stocké) ou l'adresse 0x3E00A040 (qui pourrait être l'emplacement du code "pixel transparent").
En conservant automatiquement les valeurs de ces deux adresses mémoire couramment nécessaires dans son cache, le CPU peut court-circuiter (au sens figuré, pas littéralement !) les futures tentatives d'accès à ces adresses, de sorte qu'il n'est pas nécessaire d'envoyer des signaux électriques à l'extérieur du processeur, sur la carte mère et dans les puces RAM réelles pour lire la copie principale des données qui y sont stockées.
Ainsi, les données mises en cache sont généralement beaucoup plus rapides d'accès que les données de la RAM de la carte mère.
De manière générale, cependant, vous ne pouvez pas choisir quels registres de cache sont utilisés pour stocker quelles adresses RAM, et vous ne pouvez pas choisir quand le CPU décide d'arrêter de mettre en cache votre valeur de "code de pixel transparent" et de commencer à mettre en cache celle d'un autre programme. "clé cryptographique super-secrète" à la place.
En effet, le cache peut contenir un mélange libéral de valeurs, à partir d'un mélange libéral d'adresses RAM, appartenant à un mélange libéral de différents comptes d'utilisateurs et niveaux de privilèges, tous en même temps.
Pour cette raison, ainsi que pour des raisons d'efficacité et de performances, même les programmes de niveau administrateur ne peuvent pas directement consulter la liste des adresses actuellement mises en cache, ou obtenir leurs valeurs, pour protéger les données mises en cache contre l'espionnage externe.
En tant que programmeur, vous utilisez toujours l'instruction de code machine "lire le code de pixel transparent à partir de l'adresse 0x3E00A040", et le système d'exploitation décide toujours si vous êtes censé avoir accès à ces données en fonction de l'adresse numérique 0x3E00A040, même si le les données proviennent finalement directement du cache au lieu de la véritable adresse RAM 0x3E00A040.
Le prix d'un bit-flip
Ce que les chercheurs de Collide+Power ont découvert, très simplifié, c'est que même si vous ne pouvez pas jeter un œil directement aux données temporaires dans le stockage du cache, et donc ne pouvez pas contourner la protection de la mémoire qui serait appliquée si vous passiez par son adresse RAM officielle …
… vous pouvez deviner quand des valeurs de données spécifiques sont sur le point d'être écrites dans des registres de stockage de cache spécifiques.
Et lorsqu'un numéro déjà mis en cache est remplacé par un autre, vous pouvez faire des déductions sur les deux valeurs en mesurant la quantité d'énergie utilisée par le processeur suite à la cure.
(Les processeurs modernes incluent généralement des registres internes spéciaux qui fournissent des lectures de consommation d'énergie pour vous, vous n'avez donc pas besoin d'ouvrir le boîtier de l'ordinateur et de connecter un fil de sonde physique quelque part sur la carte mère.)
Curieusement, la consommation d'énergie du processeur lui-même, lorsqu'il écrase une valeur de cache avec une nouvelle, dépend du nombre de bits changés entre les nombres.
Si nous simplifions les choses en octets individuels, écraser la valeur binaire 0b00000000
comprenant 0b11111111
(changer la décimale 0 en décimale 255) nécessite de retourner tous les bits de l'octet, ce qui consommerait le plus d'énergie.
Écraser le caractère ASCII A
(65 en décimal) avec Z
(90 en décimal) signifie changer 0b01000001
développement 0b01011010
, où quatre positions de bit sont inversées, consommant ainsi une quantité d'énergie moyenne
Et si les nombres sont les mêmes, aucun bit n'a besoin d'être inversé, ce qui consommerait le moins d'énergie.
En général, si vous XOR les deux nombres ensemble et comptez le nombre de bits 1 dans la réponse, vous trouvez le nombre de retournements, car 0 XOR 0 = 0
ainsi que 1 XOR 1 = 0
(donc zéro indique pas de retournement), tandis que 0 XOR 1 = 1
ainsi que 1 XOR 0 = 1
(indiquant un retournement).
En d'autres termes, si vous pouvez accéder à un groupe d'adresses choisies par vous-même d'une manière qui amorce un ensemble spécifique de registres de cache à l'intérieur du CPU, puis surveillez la consommation d'énergie avec suffisamment de précision lorsque le code de quelqu'un d'autre obtient ses données affectées à ces cache lieux à la place…
…puis vous pouvez faire des déductions sur le nombre de bits retournés entre l'ancien contenu du cache et le nouveau.
Bien sûr, vous pouvez choisir les valeurs stockées dans les adresses avec lesquelles vous avez amorcé les registres de cache, de sorte que vous ne savez pas seulement combien de bits ont probablement été inversés, mais vous savez également quelles étaient les valeurs de départ de ces bits avant les retournements. lieu.
Cela vous donne encore plus de données statistiques avec lesquelles prédire les nouvelles valeurs probables dans le cache, étant donné que vous savez ce qui s'y trouvait auparavant et le nombre probable de bits qui sont maintenant différents.
Vous ne pourrez peut-être pas déterminer exactement quelles données le processus de votre victime utilisait, mais même si vous pouvez éliminer certains modèles de bits, vous venez d'apprendre quelque chose que vous n'êtes pas censé savoir.
Et si ces données étaient, disons, une clé de cryptage quelconque, vous pourriez être en mesure de convertir une attaque par force brute irréalisable en une attaque où vous pourriez simplement réussir.
Par exemple, si vous pouvez prédire 70 bits dans une clé de cryptage de 128 bits, au lieu d'essayer toutes les combinaisons de 128 bits, ce qui serait une tâche impossible, vous devrez essayer 258 différentes clés à la place (128 - 70 = 58), ce qui pourrait très bien être faisable.
Pas besoin de paniquer
Heureusement, cette « vulnérabilité » (désormais appelée CVE-2023-20583) est peu susceptible d'être utilisé contre vous de sitôt.
Il s'agit plus d'une question théorique que les fabricants de puces doivent prendre en compte, sur la base du truisme que les attaques de cybersécurité « ne font que s'améliorer et de s'accélérer », qu'un trou exploitable qui pourrait être utilisé aujourd'hui.
En fait, les chercheurs admettent, presque timidement, que «you pas besoin de s'inquiéter. »
Ils ont vraiment écrit you en italique, et l'imprécation ne pas s'inquiéter en gras:
Dans la conclusion de l'article, les chercheurs notent avec regret que certains de leurs meilleurs résultats réels avec cette attaque, dans des conditions de laboratoire idéales, n'ont divulgué que 5 bits par heure.
Pour l'un de leurs scénarios d'attaque, en effet, ils ont admis avoir rencontré « des limitations pratiques conduisant à des taux de fuite de plus d'[un] an par bit ».
Oui, vous avez bien lu - nous l'avons vérifié plusieurs fois dans le journal juste pour nous assurer que nous ne l'imaginions pas.
Et cela, bien sûr, soulève la question : "Combien de temps devez-vous laisser une série de tests de transfert de données en cours d'exécution avant de pouvoir mesurer de manière fiable des taux de transmission aussi bas ?"
Selon nos calculs, un bit par an vous donne environ 125 octets par millénaire. À ce rythme, le téléchargement du film à succès de trois heures récemment sorti Oppenheimer en qualité IMAX, qui occupe apparemment environ un demi-téraoctet, prendrait environ 4 milliards d'années. Pour mettre ce factoïde bizarre en perspective, la Terre elle-même n'a que 4.54 milliards d'années environ, à quelques centaines de millions de mois près.
Que faire?
La façon la plus simple de gérer CVE-2023-20538 en ce moment est de ne rien faire, étant donné que les chercheurs eux-mêmes vous ont conseillé de ne pas vous inquiéter.
Si vous ressentez le besoin de faire quelque chose, les processeurs Intel et AMD ont des moyens de réduire exprès la précision de leurs outils de mesure de puissance, en ajoutant du bruit aléatoire dans les lectures de puissance.
Cela laisse vos moyennes correctes mais varie suffisamment les lectures individuelles pour rendre cette attaque déjà pas vraiment réalisable encore plus difficile à réaliser.
L'atténuation des mesures de puissance d'Intel est connue sous le nom de filtrage de la limite de puissance moyenne courante (RAPL); AMD est appelé mode de déterminisme des performances.
- Contenu propulsé par le référencement et distribution de relations publiques. Soyez amplifié aujourd'hui.
- PlatoData.Network Ai générative verticale. Autonomisez-vous. Accéder ici.
- PlatoAiStream. Intelligence Web3. Connaissance Amplifiée. Accéder ici.
- PlatonESG. Automobile / VE, Carbone, Technologie propre, Énergie, Environnement, Solaire, La gestion des déchets. Accéder ici.
- Décalages de bloc. Modernisation de la propriété des compensations environnementales. Accéder ici.
- La source: https://nakedsecurity.sophos.com/2023/08/03/performance-and-security-clash-yet-again-in-collidepower-attack/
- :est
- :ne pas
- :où
- $UP
- 1
- 15%
- 25
- 70
- 700
- a
- Capable
- A Propos
- Absolute
- accès
- Compte
- hybrides
- précision
- avec précision
- à travers
- présenter
- ajoutant
- ajout
- propos
- adresses
- admettre
- admis
- encore
- à opposer à
- Tous
- permis
- le long de
- déjà
- aussi
- Bien que
- toujours
- AMD
- montant
- an
- ainsi que
- Une autre
- répondre
- tous
- appliqué
- Appliquer
- d'environ
- SONT
- AS
- attribué
- At
- joindre
- attaquer
- Attaques
- Tentatives
- Autriche
- auteur
- auto
- Automatique
- automatiquement
- moyen
- image de fond
- basé
- base
- BE
- car
- before
- derrière
- va
- LES MEILLEURS
- Améliorée
- jusqu'à XNUMX fois
- Milliards
- Bit
- blockbuster
- goupille
- frontière
- tous les deux
- Bas et Leggings
- la force brute
- Punaise
- construire
- Bouquet
- mais
- by
- Cache
- calculs
- CAN
- maisons
- Canaux centraux
- modifié
- en changeant
- caractère
- vérifié
- puce
- chips
- Selectionnez
- choisi
- Clash
- code
- collection
- Couleur
- COM
- комбинации
- vient
- complexe
- ordinateur
- conclusion
- conditions
- consommer
- consommation
- contiennent
- contenu
- contenu
- conventionnel
- convertir
- Core
- correct
- pourriez
- Cours
- couverture
- fissure
- Lecture
- Customiser
- Cybersécurité
- Daniel
- données
- affaire
- dénote
- dépend
- Conception
- détails
- DID
- différent
- directement
- découvert
- découverte
- Commande
- do
- dollars
- domaine
- Services
- NOMS DE DOMAINE
- Ne pas
- doublé
- Terre
- efficace
- non plus
- éliminé
- Sinon
- chiffrement
- assez
- Pourtant, la
- JAMAIS
- exactement
- exemple
- excité
- Expliquer
- externe
- fait
- plus rapide
- réalisable
- ressentir
- few
- Figure
- Trouvez
- Retournement
- Flips
- Pour
- Force
- le format
- document
- quatre
- Quatrièmement
- De
- avenir
- Général
- Allemagne
- obtenez
- Donner
- donné
- donne
- aller
- considérablement
- ait eu
- Half
- arriver
- Plus fort
- Vous avez
- la taille
- caché
- Trou
- heure
- flotter
- Comment
- How To
- Cependant
- HTML
- HTTPS
- cent
- idéal
- if
- image
- impossible
- impressionnant
- in
- comprendre
- inclut
- individuel
- d'information
- sécurité de l'information
- à l'intérieur
- plutôt ;
- Intel
- prévu
- interne
- Internet
- développement
- Ironiquement
- IT
- SES
- lui-même
- juste
- XNUMX éléments à
- en gardant
- ACTIVITES
- clés
- Savoir
- connu
- laboratoire
- Nom de famille
- conduisant
- fuite
- savant
- au
- Laisser
- à gauche
- Longueur
- niveaux
- Probable
- LIMIT
- limites
- Liste
- emplacement
- emplacements
- logo
- Location
- recherchez-
- rechercher
- Faible
- click
- a prendre une
- Fabricants
- de nombreuses
- Marge
- Martin
- maître
- mathématique
- Matière
- compte
- largeur maximale
- Mai..
- veux dire
- mesurer
- mesures
- des mesures
- mesure
- Mémoire
- Michael
- pourrait
- Millennium
- million
- atténuation
- mélanger
- mélange
- la modélisation
- Villas Modernes
- Surveiller
- mois
- PLUS
- (en fait, presque toutes)
- film
- beaucoup
- prénom
- noms
- nommage
- Besoin
- Nouveauté
- aucune
- Bruit
- Aucun
- Ordinaire
- rien
- maintenant
- nombre
- numéros
- of
- de rabais
- officiel
- Vieux
- on
- ONE
- et, finalement,
- uniquement
- ouvert
- d'exploitation
- le système d'exploitation
- or
- Autre
- nos
- ande
- au contrôle
- vue d'ensemble
- propre
- Papier
- motifs
- paul
- /
- performant
- objectifs
- Physique
- pixel
- Place
- Platon
- Intelligence des données Platon
- PlatonDonnées
- plus
- position
- Poteaux
- power
- prévoir
- Prestige
- prix
- privilège
- Probablement
- sonde
- Problème
- processus
- les process
- Processeur
- processeurs
- Programmeur
- Programmes
- prononcé
- protéger
- protection
- fournir
- but
- mettre
- qualité
- question
- soulève
- RAM
- aléatoire
- Tarif
- Tarifs
- Lire
- monde réel
- vraiment
- raison
- Les raisons
- récemment
- réduire
- visée
- vous inscrire
- enregistrement
- registres
- relatif
- libéré
- remplacé
- a besoin
- chercheurs
- respect
- Résultats
- bon
- pour le running
- même
- dire
- scénarios
- noir
- Deuxièmement
- sécurité
- sur le lien
- envoyer
- Série
- set
- plusieurs
- Shorts
- signer
- signaux
- simplifié
- simplifier
- site
- snooping
- So
- solide
- quelques
- Quelqu'un
- quelque chose
- quelque part
- Bientôt
- parlant
- spécial
- groupe de neurones
- vitesse
- Commencer
- Commencez
- statistique
- Encore
- Arrêter
- storage
- Boutique
- stockée
- réussir
- Suggère
- supposé
- sûr
- SVG
- combustion propre
- table
- Prenez
- prend
- Tâche
- Technique
- raconte
- temporaire
- tests
- que
- qui
- La
- leur
- Les
- se
- puis
- théorique
- Là.
- donc
- l'ont
- penser
- Troisièmement
- this
- ceux
- Ainsi
- fiable
- à
- aujourd'hui
- ensemble
- a
- les outils
- top
- suivre
- transférer
- transition
- communication
- oui
- Essai
- deux
- En fin de compte
- sous
- université
- improbable
- URL
- Utilisation
- utilisé
- d'utiliser
- Utilisateur
- en utilisant
- d'habitude
- Plus-value
- Valeurs
- VANITY
- divers
- très
- via
- Visiter
- était
- Façon..
- façons
- we
- Site Web
- semaine
- WELL
- est allé
- ont été
- Quoi
- quand
- que
- qui
- tout en
- largeur
- sera
- fil
- comprenant
- des mots
- s'inquiéter
- pourra
- écrire
- code écrit
- an
- années
- encore
- Vous n'avez
- Votre
- zéphyrnet
- zéro