Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ssbd-tools — Herramientas para ejercitar la mitigación del kernel de Linux para CVE-2018-3639 (también conocido como Variant 4) utilizando la función Speculative Store Bypass Disable (SSBD) de los procesadores x86 | Kitploit
Herramientas/GitHubGitHub/tyhicks/ssbd-tools
Análisis de VulnerabilidadesExplotaciónSeguridad de Hardware
GitHubtyhicks/ssbd-tools

ssbd-tools

Herramientas para ejercitar la mitigación del kernel de Linux para CVE-2018-3639 (también conocido como Variant 4) utilizando la función Speculative Store Bypass Disable (SSBD) de los procesadores x86

Ver Repositorio
92hace 8 añosAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Herramientas para poner en práctica Speculative Store Bypass Disable

El proyecto ssbd-tools es una colección de programas que hace uso de la funcionalidad Speculative Store Bypass Disable (SSBD) proporcionada en los procesadores x86. SSBD es una mitigación basada en el procesador para el ataque Speculative Store Bypass, conocido como Variant 4 y asignado como CVE-2018-3639. El kernel de Linux introdujo controles por proceso para hacer uso de SSBD y estas herramientas pueden utilizarse para aprovechar esos controles y ayudar a verificar su correcto funcionamiento.

Controles SSBD por proceso

El kernel de Linux proporciona varios modos de operación diferentes, que pueden seleccionarse en el arranque con el parámetro de kernel spec_store_bypass_disable, para SSBD en sistemas x86. La documentación de parámetros del kernel los describe bien. Aquí hay un fragmento de ese documento que describe las opciones:

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"

Detalles específicos de la CPU

La funcionalidad SSBD se habilita/deshabilita estableciendo un único bit en un registro específico del modelo (MSR) del procesador. El MSR exacto y la ubicación del bit dentro del MSR difieren entre los fabricantes de CPU, entre las familias de CPU de un mismo fabricante, y dependiendo de si el kernel se está ejecutando o no bajo un hipervisor. Estas herramientas siguen las directrices publicadas por Intel y AMD para decidir dónde se encuentra el bit de SSBD para el entorno de ejecución actual.

Por qué SSBD puede no estar disponible

Algunos sistemas pueden no tener soporte SSBD disponible. Esto puede deberse a varias razones:

  • Su procesador requiere microcódigo actualizado. Este es el caso de los procesadores Intel. Puede acceder al microcódigo actualizado mediante una actualización de firmware o instalando los paquetes de microcódigo de su distribución Linux (intel-microcode y amd64-microcode para Debian/Ubuntu). Los procesadores AMD de las familias 15h, 16h y 17h no requieren microcódigo actualizado.
  • Su kernel no ha sido actualizado para soportar SSBD. Muchos proveedores de sistemas operativos Linux han publicado actualizaciones, así que consulte los detalles sobre su proveedor en la página de Variant 4 de CERT.
  • Está utilizando una máquina virtual y su hipervisor no ha sido actualizado para soportar SSBD. Si tiene control sobre el entorno anfitrión, consulte la página de CERT mencionada anteriormente para obtener información sobre cómo actualizar el software del hipervisor correspondiente.

Resumen de los programas de ssbd-tools

ssbd-exec

El programa ssbd-exec hace uso de los controles SSBD por proceso antes de ejecutar otro programa. Puede usar el prctl PR_SET_SPECULATION_CTRL para permitir la especulación (-p enable para usar PR_SPEC_ENABLE), impedir la especulación mediante SSBD (-p disable para usar PR_SPEC_DISABLE), o impedir permanentemente la especulación en todos los procesos hijos futuros mediante SSBD (-p force-disable para usar PR_SPEC_FORCE_DISABLE).

También puede cargar un filtro seccomp permisivo (-s empty) que, por defecto en x86, incorpora el proceso a la mitigación SSBD. También existe una opción (-s spec-allow) para cargar un filtro permisivo que no incorpora el proceso a SSBD.

Uso de ssbd-exec

  • Ver /proc/PID/status para mostrar que las tareas no usan SSBD por defecto
root@kitploit:~
 $ ./ssbd-exec -- grep Spec /proc/self/status
 Speculation_Store_Bypass:	thread vulnerable
  • Ver /proc/PID/status al usar SSBD mediante el prctl
root@kitploit:~
 $ ./ssbd-exec -p disable -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        0
 Speculation_Store_Bypass:       thread mitigated
  • Ver /proc/PID/status al ejecutarse con un filtro seccomp permisivo que incorpora el proceso a 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

El programa ssbd-verify valida que el bit SSBD real, en el MSR y el desplazamiento de bit específicos de su procesador, tenga el valor esperado. 0 significa que SSBD no está en uso, mientras que 1 significa que está en uso.

El programa también puede usarse para validar que el valor del prctl PR_GET_SPECULATION_CTRL de la tarea esté configurado para permitir la especulación (-p enable para verificar PR_SPEC_ENABLE), impedir la especulación mediante SSBD (-p disable para verificar PR_SPEC_DISABLE), o impedir permanentemente la especulación en todos los procesos hijos futuros mediante SSBD (-p force-disable para verificar PR_SPEC_FORCE_DISABLE).

El programa puede configurarse para verificar repetidamente el valor del bit SSBD usando la opción -t SECONDS. Si SECONDS es 0, el programa hace un bucle infinito mientras verifica el bit SSBD. Un valor distinto de cero para SECONDS hace que el programa verifique el bit SSBD durante el tiempo especificado.

Este programa requiere que el módulo del kernel msr esté cargado y que el usuario tenga privilegios de root para leer el bit SSBD del MSR correspondiente.

Uso de ssbd-verify

  • Verificar que SSBD no esté establecido por defecto
root@kitploit:~
 $ sudo ./ssbd-verify 0
 $ sudo ./ssbd-verify 1
 FAIL: SSBD bit verification failed (expected 1, got 0)
  • Verificar que SSBD se establece al usar el prctl para deshabilitar la especulación
root@kitploit:~
 $ ./ssbd-exec -p disable -- sudo ./ssbd-verify 1
  • Verificar que SSBD se establece al cargar un filtro seccomp
root@kitploit:~
 $ sudo ./ssbd-exec -s empty -- ./ssbd-verify 1

Nota: El comando anterior requiere que se use sudo en ssbd-exec porque NO_NEW_PRIVS se usa antes de cargar el filtro seccomp. sudo no podría elevar privilegios si se usara después de que NO_NEW_PRIVS esté establecido.

ssbd-toggle

El programa ssbd-toggle simplemente alterna el bit SSBD entre encendido y apagado en un bucle infinito hasta que el programa se termina. Puede usarse junto con ssbd-verify para asegurar que el proceso ssbd-verify siempre tenga el valor esperado del bit SSBD cuando el kernel cambie a su tarea.

Este programa requiere que el módulo del kernel msr esté cargado y que el usuario tenga privilegios de root para leer y escribir en el MSR correspondiente.

Uso de ssbd-toggle

  • Alternar el bit SSBD del procesador 0 hasta que el proceso sea interrumpido
root@kitploit:~
 $ sudo ./ssbd-toggle
 ^C

Compilación de las herramientas

Para compilar las herramientas, ejecute make:

root@kitploit:~
 $ make

Pruebe su sistema

Para ejecutar algunas pruebas automatizadas básicas y asegurarse de que SSBD funciona como se espera en su sistema, ejecute el objetivo check como root:

root@kitploit:~
 $ sudo make check
 PASS
Descargar herramienta