UEFI Sicherheit zentral steuern – eine Alternative zu DFCI

Eine kleine Warnung vorweg: Ich versuche meine Beiträge im Dell Technologies Blog nicht zu technisch zu gestalten: Das wird mir diesmal nicht gelingen!

In manchen Segmenten ist das Thema „Device Firmware Configuration Interface“ (DFCI) auf einmal sehr populär. Darum möchte ich das Thema hier einmal für alle Interessierten aufgreifen.

Zusammen mit Windows 10 1809 hat Microsoft eine UEFI basierte Schnittstelle zur Administration über Intune vorgestellt. Oft werde ich gefragt, ob unsere Geräte auch Device Firmware Configuration Interface (DFCI) unterstützen. Und wenn nicht, ab wann. Bevor ich aber auf diese Punkte eingehe, möchte ich erstmal DFCI erklären.

Was ist DFCI

DFCI ist eine Schnittstelle, die es Intune erlaubt, bestimmte Einstellungen an einem kompatiblen UEFI zu ändern. Hierfür müssen alle Anforderungen erfüllt sein. Diese Bedarfs-Kette zu erfüllen, ist nicht immer einfach. Hier sind die aktuellen Anforderungen:

Was sind die Anforderungen an DFCI

  • Windows 10 (1809 oder später) Professional oder Enterprise
  • UEFI Firmware muss „DFCI enabled“ sein
  • Gerät muss mit Intune verwaltet sein
  • Das Gerät muss durch den OEM oder einen CSP registriert worden sein. (Die Selbstregistrierung wird in den Microsoft Unterlagen nicht erwähnt.)
  • Der OEM muss DFCI unterstützen und durch Microsoft im Intune unterstützt sein

Aktuell werden nur Microsoft Surface Geräte unterstützt:

Abbildung 1 Screenshot, Quelle: Scenarios – Project Mu (microsoft.github.io) Stand: 01.03.2021

Was kann mit DFCI gesteuert werden?

Die Einstellungen sind überschaubar. Gesetzt werden können in Intune (Version 2101) nur folgende Settings:

  • Lokalem Benutzer das Ändern von UEFI-Einstellungen erlauben: „Keine“, „Nur nicht konfigurierte“
  • CPU- und E/A-Virtualisierung: „Nicht konfiguriert“, „Aktiviert“
  • Hardwaresteuerung
    • Kameras: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“
    • Mikrofone und Lautsprecher: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“
    • Sender (Bluetooth, WLAN, NFC usw.): „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“
  • Startoptionen
    • Von externen  Medien (USB, SD) aus starten: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“
Abbildung 2 Screenshot. Quelle: https://endpoint.microsoft.com/ Stand: 01.03.2021 Intune 2101
    • Von Netzwerkadaptern aus starten: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“

Was stört mich an DFCI?

Ich persönlich bin kein Fan von DFCI, die Idee ist gut, aber noch nicht zu Ende gedacht. Zum einen ist mir das Interface nicht granular genug. Was ist, wenn ich beispielsweise nur Bluetooth, aber nicht das WLAN abschalten möchte? Oder nur das Mikrofon?

Das ist nicht vorgesehen. Von der fehlenden Unterstützung durch OEMs spreche ich gar nicht.

Ein weiterer Punkt ist, das zum Entfernen von DFCI ein Factory Reset (Inkl. WIPE) erforderlich ist. Das kann man als Sicherheitsfunktion sehen – zum Testen ist es aber eher hinderlich. Ein weiteres Problem sind die Bestandsgeräte. Sofern hier nicht bei Bestellung nicht schon DFCI gedacht wurde, könnte es mit der nachträglichen Aktivierung schwierig werden.

Verstehen Sie mich nicht falsch, ich bin ein Freund von UEFI Sicherheit und Zentralem Management: Ich würde es nur anders machen!

Welche Lösungen für UEFI Management bietet Dell Technologies?

Bei Dell Technologies bieten wir schon seit Längerem verschiedene Lösungen an, UEFI zu steuern. Die älteste, das Dell Client Configuration Toolkit (CCTK) bzw. Dell Command Configure, wie es jetzt heißt, gibt es seit mehr als 10 Jahren. Für alle, die neugierig sind, hier das Handbuch der Version 1.0 aus Dezember 2009.

Aber es gibt auch modernere Lösungen wie ein PowerShell Modul oder die Möglichkeit, WMI zu verwenden. Natürlich hängt der genaue Funktionsumfang vom Hardwaremodell und Bios Revision ab.

Schauen wir uns die Tools und die Möglichkeiten mal im Detail an.

Dell Command Configure

Dell Command Configure ist ein Kommandozeilen Programm, das sich sehr gut für Skripte eignet. Es unterstützt auch UEFI Kennwörter. So bilden wir damit die gleichen Einstellungen wie beim DFCI ab:

  • Lokalem Benutzer das Ändern von UEFI-Einstellungen erlauben: Leider haben wir keine direkte Entsprechung, können aber mit einem Admin-Kennwort alle Änderungen unterbinden.
    exe –setuppwd=%CCTKSetupPwd%
  • CPU- und E/A-Virtualisierung: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Wie DFCI zzgl. Abschalten
    exe –sriov=enabled/disabled
  • Hardwaresteuerung
    • Kameras: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Wie DFCI
      exe –camera=disabled/enabled
    • Mikrofone und Lautsprecher: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Wie DFCI oder Granularer
      exe –IntegratedAudio=disabled/enabled
      cctk.exe –InternalSpeaker=disabled/enabled
      cctk.exe –Microphone=diabled/enabled
    • Sender (Bluethooth, WLAN, NFC usw.): „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Nicht generell, nur einzeln Steuerbar
      exe –WirelessLan=disabled
      cctk.exe –WirelessWwan=disabled
      cctk.exe –BluetoothDevice=disabled
  • Startoptionen
    • Von externen Medien (USB, SD) aus starten: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Granularer als DFCI
      exe BootOrder –DisableDevice=cdrom,floppy,usbdev
    • Von Netzwerkadaptern aus starten: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Vergleichbar mit DFCI
      exe –UefiNwStack= ( UEFI PXE boot )

Die einzelnen Schalter und Optionen können Sie an einem entsprechenden Gerät prüfen. Hier sehen Sie auch direkt welche Optionen dieses Gerät zur Verfügung stellt.

Abbildung 3 Screenshot Befehl: cctk.exe -h –InternalSpeaker

Wir haben jetzt den Vergleich zu DFCI angestellt. Bis auf die teilweise Modifizierbarkeit des UEFI ist CCTK feiner einstellbar als DFCI. Ein Hinweis: Abschalten von NFC konnte ich nicht prüfen, das hat mein Testgerät nicht unterstützt.

Was kann Dell Command Configure noch?

Mit Dell Command Configure kann bei unterstützten Geräten fast alles konfiguriert werden, was ich auch im Bios einstellen kann. Hier ein paar Beispiel-Befehle, die häufiger mal in Projekten verwendet werden:

  • exe –LegacyOrom=Disabled (wenn möglich deaktiviert, wenn SecureBoot eingestellt ist)
  • exe –SecureBoot=Enabled
  • exe –SmmSecurityMitigation=Enabled
  • exe –Fastboot=Thorough – Erkennung von Hardwareänderungen beim Boot, z.B. Dockingstation
  • exe –BlockSleep=Disabled – Für Connected Standby
  • exe –ThermalManagement=Optimized
  • exe –FanSpeed=Auto
  • exe –CapsuleFirmwareUpdate=Disabled
  • exe –FnLock=Enabled
  • exe –MacAddrPassThru=SystemUnique
  • exe –ThunderboltBoot=Enabled

Download von Dell Command Configure

Dell Command Configure steht zurzeit in der Version 4.4 für Windows, Ubuntu und RedHat Enterprise Linux kostenfrei zur Verfügung. Da es auf dem Client ausgeführt wird, kann es auch ohne die Anforderungen von DFCI als Skript in jedem Deployment oder in jeder Client Management Lösung eingebunden werden.

Herunterladen können Sie es auf unserer Dell Command Webseite: Dell.com/command Unter „Simplify BIOS configuration“. Ein Hinweis: Nutzen Sie für den Download am besten die englische Seite. Übersetzungen können zu Verzögerungen der Aktualisierung führen.

Abbildung 4 Screenshot Webseite dell.com/command

Dell PowerShell Provider

Ich arbeite gerne mit der PowerShell und so möchte ich Ihnen auch den passenden Dell PowerShell Provider vorstellen. Der Download kann wie Dell Command Configure über die Dell Command Seite erfolgen. Der Link ist unter „Simplify BIOS Configuration“ und dann „Explore options for PowerShell users“ zu finden. Alternativ ist das Modul auch über die Microsoft Gallery mit dem Befehl „Install-Module DellBIOSProvider“ installierbar.

Doch schauen wir uns erst mal an, wie wir hier die gleichen Einstellungen wie bei DFCI abbilden können:

  • Lokalem Benutzer das ändern von UEFI-Einstellungen erlauben: Leider haben wir keine direkte Entsprechung, können aber mit einem Admin-Kennwort alle Änderungen unterbinden.
    Set-Item -Path DellSmbios:\Security\AdminPassword „$AdminPwd“
  • CPU- und E/A-Virtualisierung: Da meinem Testgerät diese Hardwarefunktion fehlt, muss ich Ihnen den Befehl schuldig bleiben.
  • Hardwaresteuerung
    • Kameras: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Wie DFCI
      Set-Item -Path DellSmbios:\MiscellaneousDevices\Camera Disabled
    • Mikrofone und Lautsprecher: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Wie DFCI oder Granularer
      Set-Item -Path DellSmbios:\SystemConfiguration\IntegratedAudio Disabled
      Set-Item -Path DellSmbios:\SystemConfiguration\InternalSpeaker Disabled
      Set-Item -Path DellSmbios:\SystemConfiguration\Microphone Disabled
    • Sender (Bluethooth, WLAN, NFC usw.): „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Nicht generell, nur einzeln Steuerbar
      Set-Item -Path DellSmbios:\Wireless\WirelessLan Disabled
      Set-Item -Path DellSmbios:\Wireless\WirelessWwan Disabled
      Set-Item -Path DellSmbios:\Wireless\BluetoothDevice Disabled
  • Startoptionen
    • Von externen Medien (USB, SD) aus starten: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Granularer als DFCI
      Set-Item -Path DellSmbios:\MiscellaneousDevices\SdCardBoot Disabled
    • Von Netzwerkadaptern aus starten: „Nicht konfiguriert“, „Aktiviert“, „Deaktiviert“ – Vergleichbar mit DFCI
      Set-Item -Path DellSmbios:\BootSequence\BootSequence

Was kann der PowerShell Provider sonst noch?

Einen guten Überblick der aktuellen UEFI Einstellungen und der möglichen Optionen bietet der Befehl: „Get-DellBiosSettings„:

Abbildung 5 Screenshot PowerShell: Get-DellBiosSettings auf einem Latitude7390 2-in-1

Weitere praktische Befehle sind:

  • Beim nächsten Neustart ein PXE Boot ausführen:
    Set-Item -Path DellSmbios:\SystemConfiguration\ForcePxeNextBoot Enabled
  • ThunderboltBoot deaktivieren (Schaltet auch Netzwerkboot bei TB Dock ab!):
    Set-Item -Path DellSmbios:\USBConfiguration\ThunderboltBoot Disable
  • Intel SoftwareGuard auf SoftControlled setzen:
    Set-Item -Path DellSmbios:\IntelSoftwareGuardExtensions\SoftGuardEn SoftControlled
  • FN Lock abschalten
    Set-Item -Path DellSmbios:\POSTBehavior\FnLock Disable
  • Fastboot auf “Thorough” setzen
    Set-Item -Path DellSmbios:\POSTBehavior\Fastboot Thorough
  • Ihre Mitarbeiter sollen den Dell Laptop nicht als Powerbank nutzen? Schalten Sie USB Power-Share ab.
    Set-Item -Path DellSmbios:\SystemConfiguration\UsbPowerShare Disable

Bios Konfiguration über WMI

Diese Methode hat gegenüber den vorherigen Methoden einen großen Vorteil: Zunächst muss nichts installiert werden. Aber: Diese Methode hat auch eine Schattenseite – und wer WMI kennt, der ahnt wahrscheinlich schon, auf welche ich hinaus will. Die Konfiguration mit WMI ist etwas komplexer und kann manchmal zur Verzweiflung verleiten, zumindest, wenn man WMI nicht gewöhnt ist.

Wenn Sie sich trotzdem damit befassen möchten, hier gibt es ein entsprechendes WhitePaper: Dell Client Agentless Manageability

Dell Configuration Services

Wenn Sie Ihr UEFI nicht regelmäßig umkonfigurieren möchten, sondern es eigentlich nur einmal richtig konfiguriert haben möchten. Auch dafür haben wir eine Lösung! Ganz ohne Skripte, PowerShell und WMI-Abfragen, wir stellen Ihnen das UEFI ein, wie Sie es haben möchten. Diese Dienstleistung bieten wir als Configuration Service mit einigen anderen Dienstleistungen an. Fragen Sie einfach Ihren Dell Technologies Ansprechpartner.

Abbildung 6 Screenshot Dell Configuration Services

Fazit

Auch wenn DFCI gerade in manchen Segmenten ein Hype-Thema ist, das wir aktuell nicht unterstützen. So haben wir doch eine gute Alternative zur Verfügung! Unsere Lösungen benötigten auch kein Intune oder eine andere Cloud Lösung. Sie sind somit für alle Kundensegmente nutzbar.

Wenn Sie Fragen haben, sprechen Sie mit Ihren Vertriebsansprechpartner.

Dieser kann Ihnen auch helfen, wenn Sie mich für einen Workshop in Ihrem Hause zu allen Themen rund ums Deployment buchen möchten.

Fabian Niesen

About the Author: Fabian Niesen

Fabian Niesen ist seit mehr als 15 Jahren beruflich als IT-Consultant tätig. Seit April 2018 arbeitet er bei Dell Technologies im Bereich Delivery Services – End User Computing. Fabien unterstützt Kunden bei Ihren Windows 10 Projekten und weiteren Microsoft Themen. Seit 2013 ist er offizieller Microsoft Certified Trainer und wurde seit 2016 jährlich von Microsoft als MCT Regional Lead für Deutschland ausgezeichnet. In seiner Freizeit beschäftigt er sich aktiv mit Social Media, Bloggen. Außerdem zählen Mittelaltermärkte, historische Lieder und der Hausbau zu seinen Interessen.