S'attaquer aux vulnérabilités de timing dans les processeurs
De nouvelles méthodes améliorent la détection des vulnérabilités de timing dans les conceptions matérielles.
― 9 min lire
Table des matières
Les problèmes de timing dans les processeurs sont de plus en plus préoccupants. Ces défauts peuvent potentiellement entraîner des risques de sécurité car les processeurs sont des parties vitales de n'importe quel système informatique. De nouvelles méthodes, comme le fuzzing, qui étaient autrefois principalement utilisées pour les logiciels, sont maintenant appliquées pour trouver des problèmes dans les conceptions matérielles comme les processeurs.
La plupart des méthodes actuelles pour trouver des problèmes de timing peuvent les repérer, mais peinent à identifier d'où ils viennent ou comment les résoudre. Pour aborder ces problèmes, un nouveau type de fuzzing appelé white-box fuzzer a été développé. Cet outil fonctionne avec une analyse statique pour repérer et localiser les problèmes de timing dans les processeurs et évaluer à quel point la microarchitecture fonctionne bien.
Contexte
Le domaine de la conception matérielle est devenu de plus en plus complexe. Les processeurs modernes incluent de nombreuses fonctionnalités qui les rendent plus puissants mais aussi plus difficiles à vérifier pour la sécurité. À mesure que de nouvelles technologies émergent, le risque de vulnérabilités-notamment celles liées au timing-augmente considérablement.
Les vulnérabilités de timing peuvent fuir des informations sensibles, ce qui pose un risque pour l'intégrité globale des systèmes informatiques. Parmi les attaques notables qui exploitent ces problèmes de timing figurent Spectre et Meltdown, qui peuvent contourner les mesures de sécurité et accéder à des données sensibles. Identifier ces vulnérabilités avant que le matériel ne soit fabriqué est crucial, car les corriger après la production n'est généralement pas une option.
Les stratégies actuelles pour identifier les vulnérabilités de timing reposent souvent sur des méthodes formelles ou des techniques de fuzzing. Bien que les méthodes formelles soient exhaustives, elles peuvent être chronophages et peu efficaces pour les conceptions matérielles complexes. À mesure que les processeurs modernes deviennent plus compliqués, ces méthodes deviennent souvent moins efficaces.
D'un autre côté, le fuzzing, bien qu'il soit plus flexible et capable de traiter de plus grandes conceptions, ne peut généralement pas fournir de retours détaillés sur l'emplacement des vulnérabilités. Cela peut entraîner des retards dans l'atténuation des risques et une augmentation de la probabilité de négliger des vulnérabilités critiques.
Objectifs et Contributions
Pour surmonter les limites des méthodes existantes, une approche nouvelle a été introduite, combinant des stratégies de fuzzing avec une analyse statique. Cette nouvelle méthode détecte non seulement les vulnérabilités de timing mais identifie aussi leurs sources.
Les principales contributions de cette recherche incluent la création d'un white-box fuzzer capable d'opérer au niveau du registre de transfert (RTL), d'extraire et de surveiller les transitions d'état microarchitecturales, et de mesurer les comportements de timing pour identifier les vulnérabilités.
Cette nouvelle approche navigue efficacement dans l'espace de conception, trouve des problèmes de timing et fournit des idées sur leurs causes profondes, donnant aux concepteurs la confiance nécessaire pour améliorer la sécurité avant la production matérielle.
Méthodologie
Transitions Microarchitecturales et Comportements de Timing
Comprendre comment les comportements de timing sont liés aux transitions dans les circuits numériques est essentiel pour identifier les vulnérabilités. Chaque état dans un système numérique peut être comparé à une machine à états finis (FSM). Lorsqu'un input est donné, le dispositif passe par différents états pour générer une sortie. Le temps nécessaire pour produire cette sortie dépend de la séquence des transitions d'état.
Par exemple, considérons un système de cache. Il a plusieurs états, et selon que les données sont trouvées dans le cache (cache hit) ou non (cache miss), différents chemins prennent des durées différentes pour terminer l'opération. Cette variance peut entraîner des vulnérabilités de timing si elle n'est pas correctement analysée et prise en compte.
Pour analyser ces transitions d'état plus efficacement, des Graphes d'Événements Micro (MEGS) ont été développés. Ces graphes fournissent une représentation plus granulaire des événements microarchitecturaux qui se produisent dans un circuit numérique. Chaque nœud représente un événement, et les arêtes dirigées illustrent comment ces événements interagissent.
En appliquant les MEGs, il est possible de tracer des Chemins d'exécution qui révèlent des différences de timing causées par différentes valeurs d'entrée. Cette technique permet une détection de vulnérabilités plus précise et une compréhension plus claire de la façon dont les comportements de timing se déroulent dans le silicium.
Détection des Vulnérabilités de Timing
L'objectif principal de cette recherche est de détecter les vulnérabilités de timing et de localiser leurs sources dans la conception d'un processeur. Une technique de fuzzing est employée qui génère des séquences d'instructions et des données d'entrée correspondantes présentant des différences de timing.
Pour chaque input, le chemin d'exécution est tracé dans le MEG, et le premier point où les chemins diffèrent peut indiquer une vulnérabilité de timing potentielle. L'identification de la cause profonde est réalisée grâce à une combinaison de simulation dynamique et d'analyse statique, permettant une détection plus rapide et plus efficace.
Analyse Hiérarchique des Fuites
Étant donné que les processeurs modernes ont généralement plusieurs instances de modules avec de nombreuses interdépendances, les analyser peut devenir compliqué. Pour remédier à cela, une Approche hiérarchique priorise les modules en fonction de leurs dépendances, permettant une identification plus rapide des problèmes de timing.
L'accent est mis sur les niveaux les plus bas des modules, où les écarts dans les temps d'exécution peuvent d'abord être identifiés. Cette méthode garantit que toute vulnérabilité de timing présente à des niveaux inférieurs est détectée avant de passer à des modules plus complexes.
Localisation de la Source des Vulnérabilités de Timing
Une fois que les différences de timing ont été localisées, l'étape suivante est de pointer la source exacte de ces vulnérabilités dans le code RTL. Cela implique de comparer les traces de simulation générées à partir de différentes paires d'input pour trouver des écarts.
L'analyse identifie quels signaux spécifiques ont changé en premier et utilise cette information pour revenir à la source du problème de timing. En comprenant les dépendances entre divers éléments, l'analyse peut fournir des idées sur la meilleure façon d'aborder et d'atténuer ces vulnérabilités.
Évaluation
Pour valider l'efficacité du nouveau fuzzer, des évaluations ont été réalisées sur plusieurs processeurs open-source. L'objectif était de démontrer la capacité à identifier à la fois de nouvelles et des vulnérabilités de timing déjà connues.
Le processus de fuzzing a généré de nombreux inputs, avec une attention particulière sur les comportements de timing, conduisant à la découverte de nombreuses vulnérabilités. Les résultats ont mis en évidence des faiblesses critiques dans divers modules, permettant des efforts de remédiation ciblés.
Analyse de la Couverture de Timing
L'analyse de la couverture a joué un rôle crucial dans l'évaluation de l'efficacité du fuzzing à explorer les comportements de timing. En convertissant les chemins dans le MEG en propriétés pouvant être surveillées, l'analyse fournit une mesure quantitative de la manière dont différents modules ont été testés.
Les résultats de l'analyse de couverture ont indiqué que des portions significatives de l'espace de conception avaient été explorées, mettant en évidence les zones les plus vulnérables aux problèmes de timing. Ce retour d'information est essentiel pour s'assurer qu'aucune zone critique n'est laissée de côté avant de finaliser une conception.
Exploitabilité des Vulnérabilités Détectées
Les vulnérabilités identifiées par ce processus posent des risques potentiels d'exploitation dans divers scénarios. Les canaux de timing peuvent rompre l'isolation entre les processus et permettre à un attaquant d'extraire des informations sensibles.
Par exemple, en tirant parti des différences de timing, un attaquant pourrait construire des canaux discrets qui pourraient communiquer des bits d'information entre les processus sans aucune interaction observable. Cela peut entraîner des risques importants pour la vie privée et la sécurité.
Dans l'ensemble, la capacité d'identifier et d'aborder ces vulnérabilités de timing avant que le matériel ne soit déployé est cruciale pour maintenir l'intégrité des systèmes informatiques modernes.
Conclusion
La combinaison de l'analyse statique avec des techniques de fuzzing offre un cadre plus robuste pour détecter et localiser les vulnérabilités de timing dans les processeurs. En tirant parti des forces de chaque méthode, cette approche améliore significativement la capacité à identifier les menaces potentielles avant qu'elles ne puissent être exploitées.
À mesure que les conceptions matérielles continuent d'évoluer, les méthodes développées dans cette recherche seront essentielles pour s'assurer que les vulnérabilités sont détectées tôt et efficacement atténuées. En maintenant un fort accent sur les comportements de timing, les concepteurs peuvent s'assurer que les systèmes modernes restent sécurisés dans un paysage en constante évolution.
Titre: WhisperFuzz: White-Box Fuzzing for Detecting and Locating Timing Vulnerabilities in Processors
Résumé: Timing vulnerabilities in processors have emerged as a potent threat. As processors are the foundation of any computing system, identifying these flaws is imperative. Recently fuzzing techniques, traditionally used for detecting software vulnerabilities, have shown promising results for uncovering vulnerabilities in large-scale hardware designs, such as processors. Researchers have adapted black-box or grey-box fuzzing to detect timing vulnerabilities in processors. However, they cannot identify the locations or root causes of these timing vulnerabilities, nor do they provide coverage feedback to enable the designer's confidence in the processor's security. To address the deficiencies of the existing fuzzers, we present WhisperFuzz--the first white-box fuzzer with static analysis--aiming to detect and locate timing vulnerabilities in processors and evaluate the coverage of microarchitectural timing behaviors. WhisperFuzz uses the fundamental nature of processors' timing behaviors, microarchitectural state transitions, to localize timing vulnerabilities. WhisperFuzz automatically extracts microarchitectural state transitions from a processor design at the register-transfer level (RTL) and instruments the design to monitor the state transitions as coverage. Moreover, WhisperFuzz measures the time a design-under-test (DUT) takes to process tests, identifying any minor, abnormal variations that may hint at a timing vulnerability. WhisperFuzz detects 12 new timing vulnerabilities across advanced open-sourced RISC-V processors: BOOM, Rocket Core, and CVA6. Eight of these violate the zero latency requirements of the Zkt extension and are considered serious security vulnerabilities. Moreover, WhisperFuzz also pinpoints the locations of the new and the existing vulnerabilities.
Auteurs: Pallavi Borkar, Chen Chen, Mohamadreza Rostami, Nikhilesh Singh, Rahul Kande, Ahmad-Reza Sadeghi, Chester Rebeiro, Jeyavijayan Rajendran
Dernière mise à jour: 2024-03-14 00:00:00
Langue: English
Source URL: https://arxiv.org/abs/2402.03704
Source PDF: https://arxiv.org/pdf/2402.03704
Licence: https://creativecommons.org/licenses/by-sa/4.0/
Changements: Ce résumé a été créé avec l'aide de l'IA et peut contenir des inexactitudes. Pour obtenir des informations précises, veuillez vous référer aux documents sources originaux dont les liens figurent ici.
Merci à arxiv pour l'utilisation de son interopérabilité en libre accès.