Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ssbd-tools — Ferramentas para exercitar a mitigação do kernel Linux para CVE-2018-3639 (também conhecida como Variant 4) usando o recurso Speculative Store Bypass Disable (SSBD) dos processadores x86 | Kitploit
Ferramentas/GitHubGitHub/tyhicks/ssbd-tools
Análise de VulnerabilidadesExploraçãoSegurança de Hardware
GitHubtyhicks/ssbd-tools

ssbd-tools

Ferramentas para exercitar a mitigação do kernel Linux para CVE-2018-3639 (também conhecida como Variant 4) usando o recurso Speculative Store Bypass Disable (SSBD) dos processadores x86

Ver Repositório
924há 8 anosAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Ferramentas para exercitar o Speculative Store Bypass Disable

O projeto ssbd-tools é uma coleção de programas que fazem uso da funcionalidade Speculative Store Bypass Disable (SSBD) fornecida em processadores x86. SSBD é uma mitigação baseada no processador para o ataque Speculative Store Bypass, que é referido como Variant 4 e recebeu a CVE-2018-3639. O kernel Linux introduziu controles por processo para fazer uso do SSBD, e essas ferramentas podem ser usadas para utilizar esses controles e ajudar a verificar sua corretude.

Controles SSBD por processo

O kernel Linux fornece vários modos diferentes de operação, que podem ser selecionados no momento da inicialização com o parâmetro de kernel spec_store_bypass_disable, para SSBD em sistemas x86. A documentação de parâmetros do kernel os descreve bem. Aqui está um trecho desse documento descrevendo as opções:

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"

Detalhes específicos da CPU

A funcionalidade SSBD é ativada/desativada pela definição de um único bit em um registrador específico do modelo (MSR) do processador. O MSR exato e a localização do bit dentro do MSR diferem entre os fabricantes de CPU, entre as famílias de CPU de um único fabricante e conforme o kernel esteja ou não sendo executado sob um hipervisor. Essas ferramentas seguem as diretrizes publicadas pela Intel e pela AMD para decidir onde o bit SSBD está localizado para o ambiente de execução atual.

Por que o SSBD pode não estar disponível

Alguns sistemas podem não ter suporte SSBD disponível. Isso pode ser devido a vários motivos:

  • Seu processador requer microcódigo atualizado. Este é o caso para processadores Intel. Você pode conseguir acessar o microcódigo atualizado por meio de uma atualização de firmware ou instalando os pacotes de microcódigo da sua distribuição Linux (intel-microcode e amd64-microcode para Debian/Ubuntu). Processadores AMD das famílias 15h, 16h e 17h não exigem microcódigo atualizado.
  • Seu kernel não foi atualizado para suportar SSBD. Muitos fornecedores de sistemas operacionais Linux emitiram atualizações; portanto, procure detalhes sobre seu fornecedor na página da Variante 4 da CERT.
  • Você está usando uma máquina virtual e seu hipervisor não foi atualizado para suportar SSBD. Se você tem controle do ambiente host, veja a página da CERT acima para obter informações sobre a atualização do software do hipervisor relevante.

Resumo dos programas no ssbd-tools

ssbd-exec

O programa ssbd-exec utiliza os controles SSBD por processo antes de executar outro programa. Ele pode usar o prctl PR_SET_SPECULATION_CTRL para permitir especulação (-p enable para usar PR_SPEC_ENABLE), proibir especulação via SSBD (-p disable para usar PR_SPEC_DISABLE), ou proibir permanentemente a especulação em todos os futuros processos filhos via SSBD (-p force-disable para usar PR_SPEC_FORCE_DISABLE).

Ele também pode carregar um filtro seccomp permissivo (-s empty) que, por padrão em x86, opta o processo pela mitigação SSBD. Há também uma opção (-s spec-allow) para carregar um filtro permissivo que não opta o processo pelo SSBD.

Usando ssbd-exec

  • Veja /proc/PID/status para mostrar que as tarefas não usam SSBD por padrão
root@kitploit:~
 $ ./ssbd-exec -- grep Spec /proc/self/status
 Speculation_Store_Bypass:	thread vulnerable
  • Veja /proc/PID/status ao usar SSBD via prctl
root@kitploit:~
 $ ./ssbd-exec -p disable -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        0
 Speculation_Store_Bypass:       thread mitigated
  • Veja /proc/PID/status ao executar com um filtro seccomp permissivo que opta o processo pelo 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

O programa ssbd-verify valida que o bit SSBD real, no MSR e no deslocamento de bit específicos do seu processador, tem o valor esperado. 0 significa que o SSBD não está em uso, enquanto 1 significa que está em uso.

O programa também pode ser usado para validar que o valor do prctl PR_GET_SPECULATION_CTRL da tarefa está definido para permitir especulação (-p enable para verificar PR_SPEC_ENABLE), proibir especulação via SSBD (-p disable para verificar PR_SPEC_DISABLE), ou proibir permanentemente a especulação em todos os futuros processos filhos via SSBD (-p force-disable para verificar PR_SPEC_FORCE_DISABLE).

O programa pode ser configurado para verificar repetidamente o valor do bit SSBD usando a opção -t SECONDS. Se SECONDS for 0, o programa faz um loop infinito enquanto verifica o bit SSBD. Um valor diferente de zero para SECONDS faz o programa verificar o bit SSBD pelo período de tempo especificado.

Este programa exige que o módulo do kernel msr esteja carregado e que o usuário tenha privilégios de root para ler o bit SSBD do MSR apropriado.

Usando ssbd-verify

  • Verifique que o SSBD não está definido por padrão
root@kitploit:~
 $ sudo ./ssbd-verify 0
 $ sudo ./ssbd-verify 1
 FAIL: SSBD bit verification failed (expected 1, got 0)
  • Verifique que o SSBD está definido ao usar o prctl para proibir especulação
root@kitploit:~
 $ ./ssbd-exec -p disable -- sudo ./ssbd-verify 1
  • Verifique que o SSBD está definido ao carregar um filtro seccomp
root@kitploit:~
 $ sudo ./ssbd-exec -s empty -- ./ssbd-verify 1

Nota: O comando acima exige o uso de sudo no ssbd-exec porque NO_NEW_PRIVS é usado antes de carregar o filtro seccomp. O sudo não conseguiria elevar privilégios se usado depois que NO_NEW_PRIVS for definido.

ssbd-toggle

O programa ssbd-toggle simplesmente alterna o bit SSBD entre ligado e desligado em um loop infinito até que o programa seja encerrado. Ele pode ser usado em conjunto com o ssbd-verify para garantir que o processo ssbd-verify sempre tenha o valor esperado do bit SSBD quando o kernel alternar para sua tarefa.

Este programa exige que o módulo do kernel msr esteja carregado e que o usuário tenha privilégios de root para ler e escrever no MSR apropriado.

Usando ssbd-toggle

  • Alterne o bit SSBD do processador 0 até que o processo seja interrompido
root@kitploit:~
 $ sudo ./ssbd-toggle
 ^C

Compilando as ferramentas

Para compilar as ferramentas, execute make:

root@kitploit:~
 $ make

Teste seu sistema

Para executar alguns testes automatizados básicos para garantir que o SSBD esteja funcionando como esperado em seu sistema, execute o alvo check como root:

root@kitploit:~
 $ sudo make check
 PASS
Baixar ferramenta