Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
ssbd-tools — Outils pour tester l'atténuation du noyau Linux pour CVE-2018-3639 (alias Variant 4) en utilisant la fonctionnalité Speculative Store Bypass Disable (SSBD) des processeurs x86 | Kitploit
Outils/GitHubGitHub/tyhicks/ssbd-tools
Analyse des VulnérabilitésExploitationSécurité Matérielle
GitHubtyhicks/ssbd-tools

ssbd-tools

Outils pour tester l'atténuation du noyau Linux pour CVE-2018-3639 (alias Variant 4) en utilisant la fonctionnalité Speculative Store Bypass Disable (SSBD) des processeurs x86

Voir le dépôt
92il y a 8 ansPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Outils pour tester la désactivation du contournement de magasin spéculatif

Le projet ssbd-tools est une collection de programmes qui utilisent la fonctionnalité de désactivation du contournement de magasin spéculatif (SSBD) fournie par les processeurs x86. SSBD est une mitigation basée sur le processeur pour l'attaque de contournement de magasin spéculatif, appelée Variant 4 et identifiée par CVE-2018-3639. Le noyau Linux a introduit des contrôles par processus pour utiliser SSBD et ces outils peuvent être utilisés pour exploiter ces contrôles et aider à vérifier leur exactitude.

Contrôles SSBD par processus

Le noyau Linux fournit plusieurs modes de fonctionnement différents, qui peuvent être sélectionnés au démarrage avec le paramètre noyau spec_store_bypass_disable, pour SSBD sur un système x86. La documentation des paramètres du noyau les décrit bien. Voici un extrait de ce document décrivant les options :

root@kitploit:~
  on      - Unconditionally disable Speculative Store Bypass
  off     - Unconditionally enable Speculative Store Bypass
  auto    - Kernel detects whether the CPU model contains an
            implementation of Speculative Store Bypass and
            picks the most appropriate mitigation. If the
            CPU is not vulnerable, "off" is selected. If the
            CPU is vulnerable the default mitigation is
            architecture and Kconfig dependent. See below.
  prctl   - Control Speculative Store Bypass per thread
            via prctl. Speculative Store Bypass is enabled
            for a process by default. The state of the control
            is inherited on fork.
  seccomp - Same as "prctl" above, but all seccomp threads
            will disable SSB unless they explicitly opt out.

  Not specifying this option is equivalent to
  spec_store_bypass_disable=auto.

  Default mitigations:
  X86:    If CONFIG_SECCOMP=y "seccomp", otherwise "prctl"

Détails spécifiques au processeur

La fonctionnalité SSBD est activée/désactivée en définissant un seul bit dans un registre spécifique au modèle (MSR) du processeur. L'emplacement exact du MSR et du bit à l'intérieur du MSR diffère selon les fabricants de processeurs, parmi les familles de processeurs d'un même fabricant, et selon que le noyau s'exécute ou non sous un hyperviseur. Ces outils suivent les directives publiées par Intel et AMD pour décider où se trouve le bit SSBD pour l'environnement d'exécution actuel.

Pourquoi SSBD peut ne pas être disponible

Certains systèmes peuvent ne pas avoir le support SSBD disponible. Cela peut être dû à un certain nombre de raisons :

  • Votre processeur nécessite un microcode mis à jour. C'est le cas pour les processeurs Intel. Vous pouvez accéder à un microcode mis à jour via une mise à jour du firmware ou en installant les paquets de microcode de votre distribution Linux (intel-microcode et amd64-microcode pour Debian/Ubuntu). Les processeurs AMD des familles 15h, 16h et 17h ne nécessitent pas de microcode mis à jour.
  • Votre noyau n'a pas été mis à jour pour supporter SSBD. De nombreux fournisseurs de systèmes d'exploitation Linux ont publié des mises à jour, veuillez donc rechercher les détails concernant votre fournisseur sur la page Variant 4 de CERT.
  • Vous utilisez une machine virtuelle et votre hyperviseur n'a pas été mis à jour pour supporter SSBD. Si vous contrôlez l'environnement hôte, consultez la page CERT ci-dessus pour obtenir des informations sur la mise à jour du logiciel d'hyperviseur concerné.

Résumé des programmes dans ssbd-tools

ssbd-exec

Le programme ssbd-exec utilise les contrôles SSBD par processus avant d'exécuter un autre programme. Il peut utiliser le prctl PR_SET_SPECULATION_CTRL pour autoriser la spéculation (-p enable pour utiliser PR_SPEC_ENABLE), interdire la spéculation via SSBD (-p disable pour utiliser PR_SPEC_DISABLE), ou interdire définitivement la spéculation dans tous les futurs processus enfants via SSBD (-p force-disable pour utiliser PR_SPEC_FORCE_DISABLE).

Il peut également charger un filtre seccomp permissif (-s empty) qui, par défaut sur x86, inclut le processus dans la mitigation SSBD. Il existe également une option (-s spec-allow) pour charger un filtre permissif qui n'inclut pas le processus dans SSBD.

Utilisation de ssbd-exec

  • Afficher /proc/PID/status pour montrer que les tâches n'utilisent pas SSBD par défaut
root@kitploit:~
 $ ./ssbd-exec -- grep Spec /proc/self/status
 Speculation_Store_Bypass:	thread vulnerable
  • Afficher /proc/PID/status lors de l'utilisation de SSBD via le prctl
root@kitploit:~
 $ ./ssbd-exec -p disable -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        0
 Speculation_Store_Bypass:       thread mitigated
  • Afficher /proc/PID/status lors de l'exécution avec un filtre seccomp permissif qui inclut le processus dans SSBD
root@kitploit:~
 $ ./ssbd-exec -s empty -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        2
 Speculation_Store_Bypass:       thread force mitigated

ssbd-verify

Le programme ssbd-verify valide que le bit SSBD réel, dans le MSR et le décalage de bit spécifiques à votre processeur, a la valeur attendue. 0 signifie que SSBD n'est pas utilisé tandis que 1 signifie qu'il est utilisé.

Le programme peut également être utilisé pour valider que la valeur prctl PR_GET_SPECULATION_CTRL de la tâche est définie pour autoriser la spéculation (-p enable pour vérifier PR_SPEC_ENABLE), interdire la spéculation via SSBD (-p disable pour vérifier PR_SPEC_DISABLE), ou interdire définitivement la spéculation dans tous les futurs processus enfants via SSBD (-p force-disable pour vérifier PR_SPEC_FORCE_DISABLE).

Le programme peut être configuré pour vérifier à plusieurs reprises la valeur du bit SSBD à l'aide de l'option -t SECONDS. Si SECONDS est 0, le programme boucle indéfiniment tout en vérifiant le bit SSBD. Une valeur non nulle pour SECONDS fait vérifier le bit SSBD pendant le temps spécifié.

Ce programme nécessite que le module noyau msr soit chargé et que l'utilisateur dispose des privilèges root pour lire le bit SSBD à partir du MSR approprié.

Utilisation de ssbd-verify

  • Vérifier que SSBD n'est pas défini par défaut
root@kitploit:~
 $ sudo ./ssbd-verify 0
 $ sudo ./ssbd-verify 1
 FAIL: SSBD bit verification failed (expected 1, got 0)
  • Vérifier que SSBD est défini lors de l'utilisation du prctl pour interdire la spéculation
root@kitploit:~
 $ ./ssbd-exec -p disable -- sudo ./ssbd-verify 1
  • Vérifier que SSBD est défini lors du chargement d'un filtre seccomp
root@kitploit:~
 $ sudo ./ssbd-exec -s empty -- ./ssbd-verify 1

Remarque : La commande ci-dessus nécessite l'utilisation de sudo sur ssbd-exec car NO_NEW_PRIVS est utilisé avant de charger le filtre seccomp. sudo ne pourrait pas élever les privilèges s'il était utilisé après que NO_NEW_PRIVS soit défini.

ssbd-toggle

Le programme ssbd-toggle bascule simplement le bit SSBD entre l'état activé et désactivé dans une boucle infinie jusqu'à ce que le programme soit terminé. Il peut être utilisé conjointement avec ssbd-verify pour s'assurer que le processus ssbd-verify a toujours la valeur de bit SSBD attendue lorsque le noyau passe à sa tâche.

Ce programme nécessite que le module noyau msr soit chargé et que l'utilisateur dispose des privilèges root pour lire et écrire dans le MSR approprié.

Utilisation de ssbd-toggle

  • Basculer le bit SSBD du processeur 0 jusqu'à ce que le processus soit interrompu
root@kitploit:~
 $ sudo ./ssbd-toggle
 ^C

Construction des outils

Pour construire les outils, exécutez make :

root@kitploit:~
 $ make

Testez votre système

Pour exécuter quelques tests automatisés de base pour vous assurer que SSBD fonctionne comme prévu sur votre système, exécutez la cible check en tant que root :

root@kitploit:~
 $ sudo make check
 PASS
Télécharger l’outil