Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ssbd-tools — Werkzeuge zum Testen der Linux-Kernel-Entschärfung für CVE-2018-3639 (auch bekannt als Variante 4) unter Verwendung der Speculative Store Bypass Disable (SSBD)-Funktion von x86-Prozessoren | Kitploit
Tools/GitHubGitHub/tyhicks/ssbd-tools
SchwachstellenanalyseExploitationHardware-Sicherheit
GitHubtyhicks/ssbd-tools

ssbd-tools

Werkzeuge zum Testen der Linux-Kernel-Entschärfung für CVE-2018-3639 (auch bekannt als Variante 4) unter Verwendung der Speculative Store Bypass Disable (SSBD)-Funktion von x86-Prozessoren

Repository anzeigen
92vor 8 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Werkzeuge zum Testen von Speculative Store Bypass Disable

Das ssbd-tools Projekt ist eine Sammlung von Programmen, die die Speculative Store Bypass Disable (SSBD)-Funktionalität von x86-Prozessoren nutzen. SSBD ist eine prozessorbasierte Abwehrmaßnahme gegen den Speculative Store Bypass-Angriff, der als Variant 4 bezeichnet wird und der CVE-2018-3639 zugeordnet ist. Der Linux-Kernel führte prozessbezogene Steuerungen zur Nutzung von SSBD ein, und diese Tools können verwendet werden, um diese Steuerungen zu nutzen und ihre Korrektheit zu überprüfen.

Prozessbezogene SSBD-Steuerungen

Der Linux-Kernel bietet verschiedene Betriebsmodi für SSBD auf x86-Systemen, die zur Bootzeit mit dem Kernel-Parameter spec_store_bypass_disable ausgewählt werden können. Die Dokumentation der Kernel-Parameter beschreibt diese gut. Hier ein Auszug aus diesem Dokument, der die Optionen beschreibt:

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"

CPU-spezifische Details

Die SSBD-Funktionalität wird durch Setzen eines einzelnen Bits in einem modellspezifischen Register (MSR) des Prozessors aktiviert/deaktiviert. Das genaue MSR und die Bitposition innerhalb des MSR unterscheiden sich je nach CPU-Hersteller, innerhalb der CPU-Familien eines einzelnen Herstellers und davon, ob der Kernel unter einem Hypervisor läuft. Diese Tools folgen den Richtlinien von Intel und AMD, um zu entscheiden, wo sich das SSBD-Bit für die aktuelle Ausführungsumgebung befindet.

Warum SSBD möglicherweise nicht verfügbar ist

Einige Systeme unterstützen möglicherweise SSBD nicht. Dies kann mehrere Gründe haben:

  • Ihr Prozessor benötigt ein aktualisiertes Mikrocode. Dies ist bei Intel-Prozessoren der Fall. Sie können möglicherweise über ein Firmware-Update oder durch Installation der Mikrocode-Pakete Ihrer Linux-Distribution auf aktualisierten Mikrocode zugreifen (intel-microcode und amd64-microcode für Debian/Ubuntu). AMD-Prozessoren der Familien 15h, 16h und 17h benötigen keinen aktualisierten Mikrocode.
  • Ihr Kernel wurde nicht aktualisiert, um SSBD zu unterstützen. Viele Linux-Betriebssystemanbieter haben Updates veröffentlicht. Bitte suchen Sie auf CERTs Variant 4-Seite nach Details zu Ihrem Anbieter.
  • Sie verwenden eine virtuelle Maschine und Ihr Hypervisor wurde nicht aktualisiert, um SSBD zu unterstützen. Wenn Sie Kontrolle über die Host-Umgebung haben, finden Sie auf der obigen CERT-Seite Informationen zur Aktualisierung der relevanten Hypervisor-Software.

Zusammenfassung der Programme in ssbd-tools

ssbd-exec

Das Programm ssbd-exec nutzt die prozessbezogenen SSBD-Steuerungen, bevor es ein anderes Programm ausführt. Es kann das PR_SET_SPECULATION_CTRL prctl verwenden, um Spekulation zu erlauben (-p enable für PR_SPEC_ENABLE), Spekulation mittels SSBD zu verbieten (-p disable für PR_SPEC_DISABLE) oder Spekulation dauerhaft in allen zukünftigen Kindprozessen mittels SSBD zu verbieten (-p force-disable für PR_SPEC_FORCE_DISABLE).

Es kann auch einen permissiven Seccomp-Filter laden (-s empty), der standardmäßig auf x86 den Prozess in die SSBD-Abwehr einbindet. Es gibt auch eine Option (-s spec-allow), um einen permissiven Filter zu laden, der den Prozess nicht in SSBD einbindet.

Verwendung von ssbd-exec

  • Zeigen Sie /proc/PID/status an, um zu sehen, dass Tasks standardmäßig SSBD nicht nutzen:
root@kitploit:~
 $ ./ssbd-exec -- grep Spec /proc/self/status
 Speculation_Store_Bypass:	thread vulnerable
  • Zeigen Sie /proc/PID/status an, wenn SSBD über das prctl verwendet wird:
root@kitploit:~
 $ ./ssbd-exec -p disable -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        0
 Speculation_Store_Bypass:       thread mitigated
  • Zeigen Sie /proc/PID/status an, wenn der Prozess mit einem permissiven Seccomp-Filter läuft, der ihn in SSBD einbindet:
root@kitploit:~
 $ ./ssbd-exec -s empty -- grep -e Spec -e Seccomp /proc/self/status
 Seccomp:        2
 Speculation_Store_Bypass:       thread force mitigated

ssbd-verify

Das Programm ssbd-verify überprüft, ob das tatsächliche SSBD-Bit im für Ihren Prozessor spezifischen MSR und Bit-Offset den erwarteten Wert hat. 0 bedeutet, dass SSBD nicht verwendet wird, während 1 bedeutet, dass es verwendet wird.

Das Programm kann auch verwendet werden, um zu überprüfen, ob der PR_GET_SPECULATION_CTRL prctl-Wert des Tasks auf Spekulation erlauben (-p enable zur Überprüfung von PR_SPEC_ENABLE), Spekulation mittels SSBD verbieten (-p disable zur Überprüfung von PR_SPEC_DISABLE) oder Spekulation dauerhaft in allen zukünftigen Kindprozessen mittels SSBD verbieten (-p force-disable zur Überprüfung von PR_SPEC_FORCE_DISABLE) gesetzt ist.

Das Programm kann so konfiguriert werden, dass es den Wert des SSBD-Bits wiederholt mit der Option -t SEKUNDEN überprüft. Wenn SEKUNDEN 0 ist, durchläuft das Programm eine Endlosschleife, während es das SSBD-Bit überprüft. Ein von Null verschiedener Wert für SEKUNDEN führt dazu, dass das Programm das SSBD-Bit für die angegebene Zeit überprüft.

Dieses Programm erfordert, dass das msr-Kernelmodul geladen ist und der Benutzer Root-Rechte hat, um das SSBD-Bit aus dem entsprechenden MSR zu lesen.

Verwendung von ssbd-verify

  • Überprüfen Sie, dass SSBD standardmäßig nicht gesetzt ist:
root@kitploit:~
 $ sudo ./ssbd-verify 0
 $ sudo ./ssbd-verify 1
 FAIL: SSBD bit verification failed (expected 1, got 0)
  • Überprüfen Sie, dass SSBD gesetzt ist, wenn das prctl zum Deaktivieren der Spekulation verwendet wird:
root@kitploit:~
 $ ./ssbd-exec -p disable -- sudo ./ssbd-verify 1
  • Überprüfen Sie, dass SSBD gesetzt ist, wenn ein Seccomp-Filter geladen wird:
root@kitploit:~
 $ sudo ./ssbd-exec -s empty -- ./ssbd-verify 1

Hinweis: Der obige Befehl erfordert, dass sudo auf ssbd-exec verwendet wird, da NO_NEW_PRIVS vor dem Laden des Seccomp-Filters gesetzt wird. sudo könnte die Rechte nicht erhöhen, wenn es nach dem Setzen von NO_NEW_PRIVS verwendet würde.

ssbd-toggle

Das Programm ssbd-toggle schaltet das SSBD-Bit in einer Endlosschleife ein und aus, bis das Programm beendet wird. Es kann zusammen mit ssbd-verify verwendet werden, um sicherzustellen, dass der ssbd-verify-Prozess immer den erwarteten SSBD-Bitwert hat, wenn der Kernel zu seinem Task wechselt.

Dieses Programm erfordert, dass das msr-Kernelmodul geladen ist und der Benutzer Root-Rechte hat, um aus dem entsprechenden MSR zu lesen und in dieses zu schreiben.

Verwendung von ssbd-toggle

  • Schalten Sie das SSBD-Bit von Prozessor 0 um, bis der Prozess unterbrochen wird:
root@kitploit:~
 $ sudo ./ssbd-toggle
 ^C

Bauen der Tools

Um die Tools zu bauen, führen Sie make aus:

root@kitploit:~
 $ make

Testen Sie Ihr System

Um einige grundlegende automatisierte Tests durchzuführen, um sicherzustellen, dass SSBD auf Ihrem System wie erwartet funktioniert, führen Sie das check-Ziel als root aus:

root@kitploit:~
 $ sudo make check
 PASS
Tool herunterladen