Projet RSS Zéro Note

Projet RSS Zéro

Le site web de Project Zero de Google est une ressource exhaustive pour trouver et corriger les vulnérabilités de sécurité dans les logiciels. Il est dirigé par l'équipe de recherche en sécurité de Google et propose des analyses approfondies des faiblesses de sécurité, des guides et des tutoriels pour aider les développeurs à prévenir les vulnérabilités dans leurs produits.

Fil de notes

Google Project Zero a discuté de la nécessité de fuites ASLR à distance pour exploiter les bogues de corruption de mémoire sur les appareils Apple. Cela a conduit à la découverte d'une technique qui pourrait permettre de fuir à distance un pointeur sans violations de la sécurité de la mémoire ni attaques temporelles. La méthode s'applique aux surfaces d'attaque qui désérialisent, resérialisent et renvoient des données fournies par l'attaquant. Bien qu'aucune surface d'attaque immédiate dans le monde réel n'ait été identifiée sur macOS/iOS, la technique a été testée à l'aide d'un cas artificiel avec NSKeyedArchiver. Le problème a été signalé à Apple et corrigé, bien qu'aucune entrée publique de suivi des bogues n'ait été créée en raison de l'absence d'impact réel démontré. Cette technique novatrice s'appuie sur des travaux antérieurs liés aux attaques par collision de tables de hachage. Historiquement, les attaques hashDoS exploitaient les performances des tables de hachage dans le pire des cas pour provoquer un déni de service. Des recherches antérieures ont également suggéré l'utilisation de collisions de hachage pour fuir des adresses. Le concept hashDoS peut être considéré comme un attaquant ralentissant l'accès à des compartiments de hachage spécifiques. Ce principe a été exploité dans Firefox pour fuir des adresses du tas par des mesures temporelles d'insertions dans des Map JavaScript. L'itération sur des structures de données indexées par des pointeurs peut également révéler des informations sur les adresses des objets. Les mécanismes de sérialisation, en particulier ceux qui autorisent des graphes d'objets arbitraires, peuvent être dangereux. NSKeyedUnarchiver d'Apple fonctionne avec une liste blanche de classes désérialisables. Un cas de test spécifique vise à fuir le pointeur du cache partagé en désérialisant et en resérialisant des données fournies par l'attaquant à l'aide de NSKeyedUnarchiver. Le hachage de l'objet singleton NSNull, lorsqu'il n'est pas explicitement géré, est par défaut son adresse, qui est stockée dans le cache partagé. Les instances NSNumber sont hachées différemment, en fonction de leur valeur numérique. Les dictionnaires utilisent des codes de hachage modulo le nombre de compartiments pour gérer le placement des clés.
"Google Project Zero a mis à jour sa politique de divulgation des vulnérabilités selon un modèle "90+30", visant à accélérer le développement et l'adoption des correctifs. Un défi majeur subsiste : le "patch gap" (l'écart de correctifs), le délai entre la publication d'une correction et son installation par les utilisateurs. Project Zero a identifié un délai antérieur, l'"upstream patch gap" (l'écart de correctifs en amont), où les fournisseurs en amont disposent de correctifs mais les dépendants en aval ne les ont pas intégrés. Cet écart en amont prolonge considérablement le cycle de vie des vulnérabilités. Pour y remédier, une nouvelle politique d'essai, la "Reporting Transparency" (Transparence des Rapports), est annoncée. Cet essai ajoute une divulgation publique dans la semaine suivant le signalement d'une vulnérabilité, incluant le fournisseur, le produit, la date du rapport et la date limite de divulgation. La politique principale 90+30 reste en vigueur, et Google Big Sleep expérimente également cette politique. L'objectif est de réduire l'écart de correctifs en amont en augmentant la transparence, en informant les dépendants en aval et en encourageant une meilleure communication. L'essai vise à suivre le temps écoulé entre le rapport et l'installation sur l'appareil de l'utilisateur, en soulignant les cas où les correctifs ne sont pas appliqués. Aucun détail technique ne sera publié avant la date limite ; il s'agit d'une alerte, pas d'un guide pour les attaquants. Bien que certains fournisseurs puissent faire l'objet d'une attention indésirable, les avantages l'emportent sur les risques pour une minorité. L'objectif ultime est un écosystème plus sûr avec des vulnérabilités corrigées sur les appareils des utilisateurs. Il s'agit d'un essai, et Project Zero en suivra les effets et adaptera les politiques en conséquence."
- Enquête initiale : Google a reçu des journaux de panique du noyau de l'organisation Amnesty International, indiquant une exploitation in-the-wild (ITW) ciblant un pilote Qualcomm. - Analyse des journaux de panique du noyau : Sans échantillon d'exploit, Project Zero/TAG a dû se fier aux journaux de panique du noyau pour identifier les vulnérabilités potentielles. - Découverte de vulnérabilités : Quatre des journaux de panique contenaient des informations utiles qui ont mené à la découverte de six vulnérabilités dans le pilote Qualcomm. - Hypothèse de stratégie d'exploitation : L'une des vulnérabilités a été identifiée comme probablement exploitée dans le scénario ITW en fonction des journaux de crash. - Détails des bugs : Le billet de blog décrit chaque une des six vulnérabilités découvertes, fournissant des détails techniques et des extraits de code pour chacune. - Collaboration avec le groupe d'analyse des menaces : Le groupe d'analyse des menaces (TAG) de Google a collaboré avec Amnesty International pour fournir les artefacts et assister à l'analyse technique. - Défi d'ingénierie inverse : Déterminer la vulnérabilité exploitée sans échantillon d'exploit a nécessité une analyse approfondie des journaux de panique. - Informations limitées : L'absence d'échantillon d'exploit a rendu difficile la détermination précise de la vulnérabilité exploitée. - Durée de la chasse aux bugs : L'enquête et la découverte des vulnérabilités ont duré plus de deux mois et demi. - Rapport d'Amnesty International : Amnesty International a publié un rapport sur les exploits utilisés contre leur cible.
Introduction: Le texte présente une version condensée des éléments clés de la communication efficace. Clarté et Concision: La communication efficace implique de transmettre des informations clairement et concisément, afin que le message soit facilement compris. Organisation et Structure: Une bonne organisation et une structure appropriée aident les lecteurs à naviguer dans le contenu sans effort, améliorant la compréhension. Pertinence et Adaptabilité: Adapter le message aux intérêts et aux besoins du public garantit l'engagement et la pertinence. Crédibilité et Ethos: Établir la crédibilité et gagner la confiance du public est crucial pour une communication efficace. Empathie et Perspective: Comprendre la perspective du public et partager leurs besoins améliore l'efficacité du message. Écoute Active et Réaction: L'écoute active consiste à prêter attention aux réactions du public et à intégrer les retours pour améliorer la compréhension. Communication Non Verbale: Les signaux non verbaux, tels que le langage corporel et le ton de voix, jouent un rôle significatif dans la transmission des messages et l'établissement d'un lien. Sensibilité Culturelle: Respecter les différences culturelles et adapter les styles de communication à différents publics est essentiel pour une communication réussie. Amélioration Continue: La communication efficace est un processus continu qui nécessite une amélioration et une adaptation constantes aux besoins et aux contextes en évolution.
Définissez une connexion TCP : Une connexion TCP est un canal de communication virtuel entre deux points d'extrémité sur un réseau. Expliquez le rôle du handshaking TCP : Le handshaking TCP implique un échange de trois volets pour établir une connexion entre le client et le serveur. Décrivez le rôle des paquets SYN, ACK et FIN dans TCP : Les paquets SYN initient les demandes de connexion, les paquets ACK confirment la réception des données, et les paquets FIN terminent les connexions. Expliquez la différence entre TCP et UDP : TCP est un protocole orienté-connexion qui offre une transmission de données fiable, tandis que UDP est un protocole sans-connexion qui privilégie la vitesse à la fiabilité. Décrivez la fenêtre glissante TCP : Le mécanisme de la fenêtre glissante permet une transmission de données efficace en confirmant la réception des données et en ajustant la taille de la fenêtre en conséquence. Expliquez le concept de contrôle de la congestion TCP : Les algorithmes de contrôle de la congestion TCP visent à prévenir la congestion du réseau en ajustant le taux de transmission en fonction des conditions du réseau. Décrivez le mécanisme de retransmission TCP : TCP retransmet les paquets de données perdus ou corrompus pour assurer une transmission de données fiable. Expliquez la différence entre un serveur TCP et un client TCP : Un serveur TCP écoute les connexions entrantes et fournit des services, tandis qu'un client TCP initie les connexions et demande des services. Décrivez le but des numéros de port TCP : Les numéros de port TCP identifient les différents services ou applications en cours d'exécution sur un hôte. Expliquez le rôle d'un serveur proxy TCP : Un serveur proxy TCP agit comme un intermédiaire entre les clients et les serveurs, offrant des fonctionnalités supplémentaires telles que le caching, l'équilibrage de charge et la sécurité.
Les extensions de marquage de mémoire (MTE) d'ARM permettent de détecter la corruption de la mémoire à son point le plus précoce, améliorant les mesures diagnostiques et de sécurité. MTE est maintenant disponible sur les appareils Pixel 8/8 Pro, marquant un progrès significatif dans la sécurité mobile. MTE peut être activé sur les Pixel 8/8 Pro via les options du développeur, mais il est important de noter qu'il s'agit d'une configuration non officiellement prise en charge. Activer MTE nécessite des modifications à la fois au chargeur d'amorçage et au système pour allouer de la mémoire pour stocker les balises. Pour activer MTE, il faut d'abord activer le mode développeur et le débogage USB sur l'appareil. En utilisant un ordinateur équipé d'outils de débogage Android, des propriétés spécifiques doivent être définies sur l'appareil à l'aide de la commande 'adb'. Les propriétés à définir sont 'arm64.memtag.bootctl', 'persist.arm64.memtag.default' et 'persist.arm64.memtag.app_default', toutes définies sur 'sync'. Un redémarrage est nécessaire pour appliquer les modifications et activer MTE. Bien que l'auteur n'ait pas rencontré de problèmes avec MTE activé, il est important de reconnaître le potentiel d'apparition de crashs d'applications ou de dysfonctionnements. Ce guide fournit les étapes pour activer MTE sur les appareils Pixel 8/8 Pro, mais les utilisateurs doivent poursuivre avec prudence et reconnaître les risques potentiels impliqués.
Le projet Zero a obtenu accès au matériel ARM MTE en milieu de 2022, ce qui leur a permis d'évaluer son efficacité dans la prévention de l'exploitation des vulnérabilités de sécurité liées à la mémoire. Malgré ses limitations, MTE est considéré comme la méthode la plus prometteuse pour améliorer la sécurité des logiciels C/C++ en 2023, offrant une détection supérieure de la corruption de la mémoire au moment de l'accès dangereux initial. Bien que MTE ne supprime pas complètement les problèmes de sécurité liés à la mémoire exploitables, en particulier compte tenu des attaques par canal latéral spéculatives, il offre un impact plus large sur l'exploitabilité que d'autres propositions pratiques. L'article de blog soutient que les solutions logicielles pour la sécurité de la mémoire C/C++ avec une couverture comparable à MTE sont peu susceptibles d'atteindre un coût en temps d'exécution inférieur à AddressSanitizer/HWAsan, qui est trop élevé pour la plupart des charges de travail de production. Les produits qui prévoient de conserver de vastes bases de code C/C++ et qui considèrent l'exploitation de la corruption de la mémoire comme un risque de sécurité clé sont invités à soutenir activement l'initiative ARM MTE. La série de blogues comprend un résumé objectif des tests d'implémentation, offrant un contexte technique pour ceux qui s'intéressent à la mise en œuvre de mitigations basées sur MTE. Elle propose également des évaluations subjectives de diverses approches de mitigation basées sur MTE dans des contextes utilisateur et discute des défis supplémentaires rencontrés lors de l'utilisation de MTE pour la mitigation en mode noyau. La série vise à offrir une vue d'ensemble complète de l'impact potentiel de MTE sur la sécurité des logiciels et des considérations pratiques pour sa mise en œuvre.
La bibliothèque standard de Java cache un compilateur JIT pour traiter les programmes XSLT non fiables. Cette vulnérabilité, CVE-2022-34169, était causée par une erreur de troncature d'entier dans le compilateur JIT. Elle permet l'exécution de code arbitraire dans les applications web et les fournisseurs d'identité basés sur Java qui prennent en charge l'authentification unique SAML.Les signatures XML sont largement utilisées dans SAML, un standard pour l'authentification des utilisateurs dans les applications web. SAML implique l'échange de documents XML entre le fournisseur de services (application) et le fournisseur d'identité (IdP). Les signatures XML garantissent l'intégrité de ces documents.Pour vérifier les signatures XML, l'application doit exécuter des transformations contrôlées par l'attaquant sur des entrées contrôlées par l'attaquant. L'une de ces transformations est XSLT, un langage de programmation XML puissant.L'implémentation de XSLT en Java utilise un compilateur JIT pour exécuter les programmes XSLT. Cependant, ce compilateur JIT avait une erreur de troncature d'entier qui pouvait être exploitée pour obtenir l'exécution de code arbitraire.La vulnérabilité a été corrigée en juillet 2022 pour OpenJDK et en septembre 2022 pour Apache BCEL. Bien que cette vulnérabilité spécifique soit résolue, les chercheurs s'attendent à de nouvelles vulnérabilités similaires dans SAML en raison de la complexité inhérente de la validation des signatures XML.Cette vulnérabilité met en évidence l'existence de vulnérabilités de langage sécurisé en mémoire malgré leur fréquence plus faible par rapport aux problèmes de sécurité en mémoire dans les bases de code C ou C++.Le processus de validation des signatures XML se compose de deux étapes : la validation de la référence et la validation de la signature. Dans Java, la validation de la signature est effectuée avant la validation de la référence, permettant aux attaquants de contourner les exigences de validation de la signature.Les transformations XSLT peuvent être intégrées dans les signatures XML, nécessitant au vérificateur d'exécuter le programme XSLT sur les données XML de référence. Cela ouvre une surface d'attaque potentielle pour les attaquants externes.L'implémentation de la validation XSLT en Java appelle la bibliothèque Apache BCEL, qui contient le compilateur JIT vulnérable. Cette vulnérabilité aurait pu être exploitée dans les applications Java qui s'appuient sur SAML pour l'authentification.
En juin 2022, le chercheur James Forshaw a découvert une vulnérabilité dans la gestion de l'encryption RC4 par Windows dans Kerberos, permettant l'usurpation d'identité. Kerberos utilise des algorithmes d'encryption pour prouver les informations d'identification de l'utilisateur, permettant la négociation entre les clients et les serveurs. RC4, un algorithme obsolète et vulnérable, est toujours activé par défaut dans Windows malgré la phase-out de DES. Microsoft a mis en place des protections pour atténuer les faiblesses de RC4 en utilisant un hash HMAC MD5 clé, un "confondeur" aléatoire et en dérivant la clé à partir du mot de passe de l'utilisateur sur une valeur de type de message. Cependant, la plus grande vulnérabilité réside dans la génération de la clé de l'utilisateur à partir de son mot de passe. Microsoft a utilisé la même valeur de hash que NTLM, qui manque de protections contre les attaques par force brute. Les attaquants peuvent utiliser le Kerberoasting ou le AS-REP Roasting pour obtenir le texte chiffré crypté avec la clé RC4-HMAC et essayer de forcer la clé par force brute. Pour se protéger contre ces attaques, Windows nécessite une pré-authentification, mais cela peut être désactivé en utilisant le drapeau "Ne pas nécessiter la pré-authentification Kerberos". Le succès des attaques par force brute dépend de la complexité du mot de passe, les comptes d'utilisateur de service étant plus sécurisés en raison de mots de passe longs et générés aléatoirement. Pour réduire le risque, RC4 peut être désactivé sur tout le réseau ou les utilisateurs sensibles peuvent être ajoutés au Groupe des utilisateurs protégés. Les algorithmes d'encryption sont mis en œuvre dans CRYPTDLL.DLL, avec des types privés indiqués par des valeurs de type d'encryption négatives.
Le texte fournit un aperçu des événements clés liés à la santé, la technologie et les droits de l'homme, du 2017 à aujourd'hui.En 2017, la FDA a autorisé le premier traitement de thérapie CAR T-cell pour le traitement de la leucémie, une percée dans l'immunothérapie du cancer.En 2018, l'Union européenne a mis en œuvre le Règlement Général sur la Protection des Données (RGPD), renforçant les protections de la vie privée des données.La technologie d'édition de gènes CRISPR a pris de l'importance, soulevant des inquiétudes éthiques quant à son potentiel d'abus.La pandémie de COVID-19 en 2020 a mis en évidence l'importance de la préparation sanitaire et la nécessité d'une distribution équitable des vaccins.Les applications de l'IA dans la santé ont progressé, aidant au diagnostic et au traitement, mais également soulevant des questions de biais algorithmique et de sécurité des données.Les services de télésanté se sont développés pendant la pandémie, facilitant les soins aux patients à distance, mais également exacerbant les disparités numériques en matière de santé.Les appareils de santé portables sont devenus plus courants, permettant aux individus de suivre et de gérer leurs données de santé.L'industrie de la santé a dû faire face à des violations de données et des attaques de ransomware, soulignant la nécessité de mesures de sécurité renforcées.Les considérations éthiques entourant l'utilisation de l'IA dans la santé restent un point d'intérêt, mettant l'accent sur l'importance de la transparence, de la responsabilité et du consentement des patients.Le texte conclut en mettant en évidence l'évolution continue et les défis en santé, technologie et droits de l'homme, avec un focus sur la garantie de l'équité, de la vie privée et de l'innovation.
- Au cours du premier semestre de 2022, 18 vulnérabilités zero-day ont été exploitées dans la nature. - Neuf de ces vulnérabilités étaient des variantes de vulnérabilités précédemment corrigées, indiquant un manque de patching exhaustif. - Quatre des zero-days de 2022 étaient des variantes de zero-days de 2021 exploités dans la nature, soulignant la persistance des vulnérabilités non corrigées. - De nombreuses zero-days de 2022 ont résulté de réparations incomplètes ou de régressions dans les patches, mettant en évidence l'importance d'une analyse approfondie des causes profondes. - Pour prévenir les futures exploitations de zero-day, les vendeurs devraient privilégier des processus de patching corrects et exhaustifs. - Les équipes de sécurité devraient investir dans l'analyse des causes profondes, l'analyse des variantes, l'analyse des patches et l'analyse des techniques d'exploitation. - Project Zero prévoit de poursuivre son soutien à ces efforts et encourage la collaboration avec les équipes de sécurité des plateformes et les chercheurs indépendants. - La partage transparent des analyses de vulnérabilités et d'exploitations profite à l'industrie dans son ensemble en fournissant des informations pour prévenir les attaques futures. - L'investissement dans les ressources, les structures incitatives et l'automatisation peut améliorer les processus de patching. - En s'attaquant aux causes sous-jacentes des vulnérabilités et en atténuant les techniques d'exploitation, les organisations peuvent minimiser l'impact des exploitations de zero-day.
Ian Beer de Google Project Zero a analysé une application iPhone malveillante qui a été chargée latéralement sur un appareil à l'aide d'un certificat d'entreprise. L'application contenait six exploits d'élévation de privilèges, dont cinq étaient bien connus et publics. Cependant, le sixième exploit était inconnu et ne suivait pas la structure typique des autres exploits.L'exploit inconnu semblait vérifier s'il s'exécutait sur un iPhone 12 ou 13 et contenait des messages de journal qui suggéraient qu'il attendait des primitives de lecture/écriture. L'analyse plus approfondie a révélé que l'exploit interagissait avec le coprocesseur d'affichage (DCP), un coprocesseur qui exécute son propre firmware et dispose d'une interface de procedure call à distance.Le DCP est un composant relativement inconnu, mais le projet Asahi Linux l'avait rétro-ingéniéré pour parler avec lui. Cependant, ils étaient limités à l'utilisation du firmware DCP d'Apple, ce qui limitait leur compréhension des internals du DCP.Beer a obtenu l'image de firmware DCP à partir d'une image système iPhone et a constaté qu'il s'agissait d'un binaire Mach-O entièrement étréci, ce qui rendait difficile la compréhension. Il a noté que la compromission du DCP pourrait avoir des conséquences significatives, compte tenu de son accès potentiel aux ressources système.L'analyse de l'exploit inconnu et du DCP est en cours, et les conclusions de Beer soulignent la complexité et les défis de la compréhension des architectures système-on-a-chip (SoC) modernes. La découverte du DCP et de ses vulnérabilités potentielles soulève des inquiétudes quant à la sécurité des appareils Apple et au besoin de poursuivre la recherche et l'analyse.L'application malveillante a probablement été distribuée via une campagne de phishing, où l'attaquant demandait au transporteur de désactiver la connexion de données mobile de la cible, puis envoyait un lien vers la fausse application par SMS. L'application était signée avec un certificat d'entreprise, ce qui lui permettait de contourner le processus de révision de l'App Store d'Apple.L'incident met en évidence les risques de chargement latéral des applications et la potentialité pour les acteurs malveillants d'exploiter les vulnérabilités des appareils Apple. Il souligne également l'importance de la poursuite de la recherche et de l'analyse pour identifier et atténuer les menaces de sécurité potentielles.
Le texte présente un tableau avec des données de plusieurs pays, y compris leurs performances dans divers domaines. Les pays sont classés en fonction de leur score global, qui est une combinaison de scores dans six domaines différents : Santé, Éducation, Économie, Environnement, Sécurité et Liberté personnelle. La Suisse est classée première au classement global, suivie de la Finlande, du Danemark, de l'Islande et des Pays-Bas. Les États-Unis sont classés 16e au classement global, derrière des pays comme le Canada, l'Australie et l'Allemagne. La Chine est classée 84e au classement global, avec son meilleur classement dans le domaine de la Santé et son pire classement dans le domaine de la Liberté personnelle. L'Inde est classée 112e au classement global, avec son meilleur classement dans le domaine de l'Économie et son pire classement dans le domaine de la Liberté personnelle. Le tableau comprend également des informations sur le pourcentage de personnes vivant dans la pauvreté, le taux de chômage et l'espérance de vie à la naissance pour chaque pays. Le texte souligne que les classements sont basés sur une variété de facteurs, et que le score global n'est pas une mesure parfaite du bien-être d'un pays. Il note également que les données utilisées pour établir les classements ne sont pas toujours complètes ou fiables, et que les classements doivent être interprétés avec prudence. Le tableau offre une vue d'ensemble utile des performances de différents pays dans divers domaines, mais il est important de considérer les limites des données et des classements lors de la prise de décision.