Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
ssbd-tools — Strumenti per testare la mitigazione del kernel Linux per CVE-2018-3639 (noto anche come Variant 4) utilizzando la funzionalità Speculative Store Bypass Disable (SSBD) dei processori x86 | Kitploit
Strumenti/GitHubGitHub/tyhicks/ssbd-tools
Analisi delle VulnerabilitàExploitSicurezza Hardware
GitHubtyhicks/ssbd-tools

ssbd-tools

Strumenti per testare la mitigazione del kernel Linux per CVE-2018-3639 (noto anche come Variant 4) utilizzando la funzionalità Speculative Store Bypass Disable (SSBD) dei processori x86

Vedi Repository
928 anni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Strumenti per testare il Disabilita Store Bypass Speculativo

Il progetto ssbd-tools è una raccolta di programmi che sfruttano la funzionalità Speculative Store Bypass Disable (SSBD) fornita nei processori x86. SSBD è una mitigazione basata sul processore per l'attacco Speculative Store Bypass, indicato come Variant 4 e assegnato CVE-2018-3639. Il kernel Linux ha introdotto controlli per-processo per utilizzare SSBD e questi strumenti possono essere usati per impiegare tali controlli e aiutare a verificarne la correttezza.

Controlli SSBD per-processo

Il kernel Linux fornisce diverse modalità operative, che possono essere selezionate all'avvio con il parametro del kernel spec_store_bypass_disable, per SSBD su sistemi x86. La documentazione dei parametri del kernel li descrive bene. Ecco un estratto da quel documento che descrive le opzioni:

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"

Dettagli specifici della CPU

La funzionalità SSBD viene abilitata/disabilitata impostando un singolo bit in un registro specifico del modello (MSR) del processore. L'esatto MSR e la posizione del bit all'interno dell'MSR differiscono tra i vari vendor di CPU, tra le famiglie di CPU di un singolo vendor e se il kernel è in esecuzione sotto un hypervisor. Questi strumenti seguono le linee guida pubblicate da Intel e AMD per decidere dove si trova il bit SSBD per l'ambiente di esecuzione corrente.

Perché SSBD potrebbe non essere disponibile

Alcuni sistemi potrebbero non avere il supporto SSBD disponibile. Ciò potrebbe essere dovuto a diversi motivi:

  • Il tuo processore richiede un microcodice aggiornato. Questo è il caso per i processori Intel. Puoi accedere al microcodice aggiornato tramite un aggiornamento del firmware o installando i pacchetti di microcodice della tua distribuzione Linux (intel-microcode e amd64-microcode per Debian/Ubuntu). I processori AMD famiglia 15h, 16h e 17h non richiedono microcodice aggiornato.
  • Il tuo kernel non è stato aggiornato per supportare SSBD. Molti vendor di sistemi operativi Linux hanno rilasciato aggiornamenti, quindi cerca i dettagli riguardanti il tuo vendor nella pagina Variant 4 del CERT.
  • Stai utilizzando una macchina virtuale e il tuo hypervisor non è stato aggiornato per supportare SSBD. Se hai il controllo dell'ambiente host, consulta la pagina CERT sopra per informazioni sull'aggiornamento del software hypervisor pertinente.

Riepilogo dei programmi in ssbd-tools

ssbd-exec

Il programma ssbd-exec utilizza i controlli SSBD per-processo prima di eseguire un altro programma. Può usare il prctl PR_SET_SPECULATION_CTRL per permettere la speculazione (-p enable per usare PR_SPEC_ENABLE), impedire la speculazione tramite SSBD (-p disable per usare PR_SPEC_DISABLE), o impedire permanentemente la speculazione in tutti i futuri processi figli tramite SSBD (-p force-disable per usare PR_SPEC_FORCE_DISABLE).

Può anche caricare un filtro seccomp permissivo (-s empty) che, per impostazione predefinita su x86, opta il processo nella mitigazione SSBD. C'è anche un'opzione (-s spec-allow) per caricare un filtro permissivo che non opta il processo in SSBD.

Utilizzare ssbd-exec

  • Visualizza /proc/PID/status per mostrare che i task non utilizzano SSBD per impostazione predefinita
root@kitploit:~
 $ ./ssbd-exec -- grep Spec /proc/self/status
 Speculation_Store_Bypass:	thread vulnerable
  • Visualizza /proc/PID/status quando si utilizza SSBD tramite prctl
root@kitploit:~
 $ ./ssbd-exec -p disable -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        0
 Speculation_Store_Bypass:       thread mitigated
  • Visualizza /proc/PID/status quando si esegue con un filtro seccomp permissivo che opta il processo in 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

Il programma ssbd-verify convalida che l'effettivo bit SSBD, nell'MSR e nell'offset del bit specifici del tuo processore, sia il valore atteso. 0 significa che SSBD non è in uso, mentre 1 significa che è in uso.

Il programma può anche essere utilizzato per convalidare che il valore prctl PR_GET_SPECULATION_CTRL del task sia impostato per permettere la speculazione (-p enable per verificare PR_SPEC_ENABLE), impedire la speculazione tramite SSBD (-p disable per verificare PR_SPEC_DISABLE), o impedire permanentemente la speculazione in tutti i futuri processi figli tramite SSBD (-p force-disable per verificare PR_SPEC_FORCE_DISABLE).

Il programma può essere configurato per verificare ripetutamente il valore del bit SSBD utilizzando l'opzione -t SECONDS. Se SECONDS è 0, il programma esegue un ciclo infinito verificando il bit SSBD. Un valore diverso da zero per SECONDS fa sì che il programma verifichi il bit SSBD per la quantità di tempo specificata.

Questo programma richiede che il modulo del kernel msr sia caricato e che l'utente abbia privilegi di root per leggere il bit SSBD dall'MSR appropriato.

Utilizzare ssbd-verify

  • Verifica che SSBD non sia impostato per impostazione predefinita
root@kitploit:~
 $ sudo ./ssbd-verify 0
 $ sudo ./ssbd-verify 1
 FAIL: SSBD bit verification failed (expected 1, got 0)
  • Verifica che SSBD sia impostato quando si utilizza prctl per disabilitare la speculazione
root@kitploit:~
 $ ./ssbd-exec -p disable -- sudo ./ssbd-verify 1
  • Verifica che SSBD sia impostato quando si carica un filtro seccomp
root@kitploit:~
 $ sudo ./ssbd-exec -s empty -- ./ssbd-verify 1

Nota: Il comando sopra richiede sudo su ssbd-exec perché NO_NEW_PRIVS viene utilizzato prima di caricare il filtro seccomp. sudo non sarebbe in grado di elevare i privilegi se usato dopo che NO_NEW_PRIVS è impostato.

ssbd-toggle

Il programma ssbd-toggle si limita a commutare il bit SSBD acceso e spento in un ciclo infinito fino a quando il programma non viene terminato. Può essere utilizzato insieme a ssbd-verify per garantire che il processo ssbd-verify abbia sempre il valore del bit SSBD atteso quando il kernel passa al suo task.

Questo programma richiede che il modulo del kernel msr sia caricato e che l'utente abbia privilegi di root per leggere e scrivere sull'MSR appropriato.

Utilizzare ssbd-toggle

  • Commuta il bit SSBD del processore 0 fino a quando il processo non viene interrotto
root@kitploit:~
 $ sudo ./ssbd-toggle
 ^C

Compilazione degli strumenti

Per compilare gli strumenti, esegui make:

root@kitploit:~
 $ make

Testa il tuo sistema

Per eseguire alcuni test automatici di base per assicurarti che SSBD funzioni come previsto sul tuo sistema, esegui il target check come root:

root@kitploit:~
 $ sudo make check
 PASS
Scarica lo strumento