Cette semaine en sécurité : Pacman, Hetzbleed et la mort d’Internet Explorer

Cette semaine, nous ne parlons pas d’une, mais de deux attaques par canaux secondaires. Le premier est Pacman, le contournement du code d’authentification du pointeur ARM. PAC est une protection intégrée dans certains processeurs ARM, où la valeur de hachage cryptographique doit être définie correctement lors de la mise à jour des pointeurs. Si le hachage n’est pas configuré correctement, le programme plantera tout simplement. L’idée est que la plupart des exploits utilisent la manipulation du curseur pour exécuter du code, et un appel de commande explicite est nécessaire pour configurer correctement le PAC. Le PAC est en fait affiché dans les bits inutilisés du pointeur lui-même. L’architecture AArch64 utilise des valeurs 64 bits pour l’adressage, mais l’espace d’adressage est beaucoup plus petit que 64 bits, généralement 53 bits ou moins. Cela laisse la valeur PAC à 11 bits. Notez que l’application ne stocke pas les clés et ne calcule pas cette valeur. 11 bits peuvent ne pas sembler suffisants pour le sécuriser, mais gardez à l’esprit que chaque tentative infructueuse fera planter le programme et que chaque application redémarrera les clés.

Pacman présente l’Oracle, qui fournit un aperçu des données qu’un attaquant ne devrait pas voir. Dans ce cas, l’oracle fonctionne à travers des attaques spéculatives qui sont très similaires à Meltdown et Spectre. La clé est d’essayer d’annuler de manière spéculative la référence de pointeur protégée, puis de surveiller le changement résultant de l’état du système. Ce que vous remarquerez peut-être, c’est que pour exécuter la technique oracle PAC, l’attaque doit déjà exécuter du code sur le système cible. Pacman n’est pas une erreur d’exécution de code à distance ou RCE.

Une autre remarque importante est que l’application doit avoir un support PAC compilé pour bénéficier de cette protection. La plate-forme qui a largement utilisé le PAC est MacOS, car il s’agit d’une fonctionnalité intégrée à leur processeur M1. Une application sans support PAC est susceptible de lancer l’attaque avec une erreur de démarrage à distance. Une fois qu’un point d’appui a été atteint dans un espace utilisateur favorable, Pacman sera utilisé dans le cadre de l’exploit contre le noyau. Voir le document PDF pour plus de détails.

Hertzbleed

Une autre technique de canal latéral est une nouvelle technique de l’ancienne idée. Hertzbleed est basé sur l’idée qu’il est possible de faire la distinction entre un processeur fonctionnant à une fréquence fondamentale et un processeur fonctionnant à une fréquence de gain. La différence entre les deux états peut en fait divulguer des informations sur ce que fait le processeur. Ils ont un PDF de pré-publication de leur article pour plus de détails. Le résultat le plus important est qu’une défense standard contre les attaques temporelles, la programmation en temps constant, n’est pas toujours une mesure de sécurité fiable.

Cela fonctionne car la fréquence maximale dépend de la puissance de conception thermique (TDP) du processeur, de la puissance maximale que le processeur est conçu pour utiliser et de la quantité de chaleur dissipée. Différentes instructions utilisent en fait une puissance différente et produisent plus ou moins de chaleur en fonction de celle-ci. Plus de chaleur signifie un starter plus tôt. Et le starter peut être détecté dans les temps de réaction. Les détails sont assez excitants. Saviez-vous que même l’exécution d’instructions avec des valeurs de registre identiques et différentes entraîne une consommation d’énergie légèrement différente ? Ils ont choisi l’un des algorithmes cryptographiques, SIKE, une technique d’échange de clés sécurisée quantique, et ont tenté d’extraire la clé secrète du serveur par des attaques temporelles.

Il y a une bizarrerie dans SIKE qui a également été découverte et divulguée dans cette étude qu’une partie de l’algorithme peut être raccourcie de sorte que la séquence d’étapes intermédiaires internes aboutisse à zéro. Si vous connaissez plusieurs bits consécutifs d’une clé statique, il est possible de créer un défi qui touche cette bizarrerie. En tant qu’extension, vous pouvez deviner le prochain bit inconnu, et cela ne devient bizarre que si vous avez bien deviné. SIKE utilise une programmation en temps constant, donc ce comportement étrange ne devrait pas avoir d’importance. Et ici, les facteurs d’observation de Hertzbleed sont pris en compte. L’algorithme SIKE consomme moins d’énergie qu’une opération de comportement cascade-zéro. Une faible consommation d’énergie signifie que le processeur peut rester à pleine puissance plus longtemps, ce qui signifie que l’échange de clés se termine un peu plus rapidement. Assez pour le détecter même via une connexion réseau. Ils ont testé Cloudflare par rapport à la bibliothèque CIRCL et au PQCrypto-SIDH de Microsoft et ont pu récupérer les clés secrètes des deux applications en 36 et 89 heures, respectivement.

Il existe une atténuation contre cette erreur particulière, où il est possible d’identifier une valeur de défi qui pourrait déclencher des zéros en cascade et bloquer cette valeur avant le traitement. Il sera intéressant de voir si les bizarreries d’autres algorithmes peuvent être détectées et armées en utilisant la même technique. Malheureusement, le seul véritable soulagement côté processeur est une interdiction totale des horloges de gain, ce qui a un effet négatif important sur les performances du processeur.

Gagner le Nest Secure Boat

[Frédéric Basse] il a un Google Nest Hub et il voulait vraiment y faire tourner sa distribution Linux. Cependant, il y a un problème. Nest utilise un démarrage sécurisé et il n’existe aucun moyen officiel d’ouvrir le chargeur de démarrage. Depuis quand un hacker dévoué l’a-t-il arrêté ? La première étape consistait à trouver l’interface UART qui était cachée dans l’un des canaux inachevés du câble plat. Plus tard, personnalisé le Breakout Board et avait un journal U-Boot. Ensuite, nous avons dû parcourir les combinaisons de boutons de démarrage et voir ce que U-Boot essayait de faire avec tout le monde. L’une de ces combinaisons permet de démarrer à partir du fichier recovery.img, ce qui serait idéal si ce n’était pour un démarrage sécurisé.

La grande chose à propos de U-Boot est qu’il est open source sous GPL, ce qui signifie que le code source doit être disponible pour la visualisation. Trouvez l’erreur dans cette source et vous disposez d’un contournement de démarrage sécurisé. Vous pouvez également utiliser des approches amusantes avec l’open source, telles que l’exécution de parties de code U-Boot dans l’espace utilisateur et la pratique avec un fuzzer. Il s’agit d’une approche qui a trouvé une erreur où une taille de bloc supérieure à 512 octets déclenche un débordement de tampon. Il s’agit généralement d’une hypothèse sûre, car il n’existe pratiquement aucun périphérique de stockage USB avec une taille de bloc supérieure à 512.

Ne vous inquiétez jamais, un appareil comme le Raspberry Pi Pico peut exécuter TinyUSB, ce qui vous permet d’émuler un appareil USB avec n’importe quelle taille de bloc que vous spécifiez. Au cours du test, il a été déterminé que cette approche provoquait un crash reproductible dans l’appareil réel. L’exécution du code est assez facile, en écrivant une série d’instructions qui sont essentiellement noop codes de charge utile, puis écraser le pointeur de retour. L’effacement de l’exécution du code, il ne restait plus qu’à écraser la liste de commandes et à exécuter le script U-Boot personnalisé. Beauté.

ping

Plus bas ping commande. Combien une paire de paquets peut-elle nous en dire sur le réseau et l’hôte distant ? En conséquence [HD Moore], beaucoup. Par exemple, prenez le temps donné par la réponse du banc et calculez la distance en 186 miles par milliseconde. Il s’agit de la distance maximale absolue par rapport à l’hôte, bien qu’un quart et demi de ce montant soit une limite inférieure et supérieure raisonnable pour l’estimation de la distance. Le TTL a très probablement commencé à 64, 128 ou 255, et vous pouvez très bien deviner les sauts que vous avez rencontrés en cours de route. Oh, et si cette réponse a commencé à 64, c’est probablement une machine Linux, 128 pour Windows, et 255 montre généralement un système d’exploitation dérivé de BSD.

Recevoir un message “hôte destination indisponible” est en soi intéressant et indique un routeur qui devrait pouvoir atteindre une IP donnée. Ensuite, il y a l’IP de diffusion, qui envoie un message à chaque IP de sous-réseau. L’utilisation d’une chose comme Wireshark pour capturer des paquets est éclairante ici. La commande elle-même peut afficher une seule réponse, bien que plusieurs appareils puissent avoir répondu. Chacune de ces réponses a une adresse MAC qui peut être recherchée par le fournisseur pour la découvrir. Une autre astuce intéressante consiste à usurper l’adresse IP source du paquet ping en utilisant une machine que vous contrôlez avec une adresse IP publique. Ping tous les appareils sur le réseau, et beaucoup d’entre eux répondent via leur passerelle par défaut. Vous pouvez trouver une connexion Internet ou un VPN qui ne devrait pas être là. Qui savait que tu pouvais humblement apprendre autant ping.

Bits et octets

Internet Explorer est vraiment, vraiment, mort. Si vous avez eu l’impression, comme moi, qu’Internet Explorer s’est arrêté il y a des années, vous serez peut-être surpris d’apprendre que cela n’a été fait que la semaine dernière. Le correctif de ce mois-ci pour mardi était le dernier jour où IE était officiellement pris en charge, et est maintenant complètement non pris en charge, et sera éventuellement désinstallé automatiquement des machines Windows 10. Au moment de la publication du correctif de ce mois-ci, il y avait enfin un correctif follina, ainsi que d’autres correctifs importants.

La semaine dernière, un nouveau record a été établi pour les attaques HTTPS DDOS : Cloudflare a atténué une attaque de 26 millions de requêtes par seconde. Les attaques HTTPS sont un ou deux coups qui consistent à la fois en la saturation des données brutes et en l’épuisement des ressources du serveur. L’attaque provenait d’un botnet de machines virtuelles et de serveurs, dont la plupart provenaient d’Indonésie.

Utilisez-vous le niveau gratuit Travis CI ? Saviez-vous que vos journaux sont accessibles dans le monde entier via un appel API Travis ? Et en plus de tout cela, tout l’historique de la course à partir de 2013 semble être disponible. Il est peut-être temps de révoquer certaines clés d’accès. Travis essaie de censurer les jetons d’accès, mais bon nombre d’entre eux passent encore à travers l’écran.

Vous êtes-vous déjà demandé à quoi ressemble la matrice de risque de détection de clé TPM lors du démarrage ? Ce n’est pas beau. Les chercheurs de Secura ont étudié six applications de cryptage et de démarrage sécurisé populaires, et aucune d’entre elles n’a utilisé les fonctions de cryptage des paramètres pour crypter les clés. Une conclusion ironique ? Les puces TPM discrètes sont moins sécurisées que celles intégrées au micrologiciel de la carte mère.

Leave a Comment