RequireIntegrityActivationAuthenticationLevel

Windows DCOM-Server Authentifizierung

Was ist DCOM und wofür wird es eingesetzt?

DCOM (Distributed Component Object Model ) ist eine von Microsoft entwickelte Softwarekomponente, mit der COM-Objekte über das Netzwerk miteinander kommunizieren können.

DCOM ermöglicht einem Computer, Programme über das Netzwerk auf einem anderen Computer auszuführen, als ob das Programm lokal ausgeführt werden würde. DCOM setzet dabei auf Remote Procedure Calls kurz RPC.

Windows DCOM-Server Authentifizierung

Ab dem Jahr 2022 wird Microsoft eine Härtungsmaßnahme für DCOM forcieren. Bis es soweit ist, kann die Maßnahme (Hardening) in der Registry manuell aktiviert und deaktiviert werden.

Die Sicherheitsanfälligkeit wird seit dem 08.06.2021 unter CVE-2021-26414 geführt und betrifft Windows Server 2008/7 bis hin zu 2019/10.

Microsoft empfiehlt, den vollständigen Schutz so bald wie möglich zu aktivieren, viel Zeit ist ja nicht mehr, um Probleme mit der Intermobilität zwischen Windows- und Nicht-Windows-Betriebssystemen und -Anwendungen zu erkennen.

Windows DCOM-Server Authentifizierung

DCOM Authentication Level aktivieren

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\AppCompat]
“RequireIntegrityActivationAuthenticationLevel”=dword:00000001

DCOM Authentication Level deaktivieren

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Ole\AppCompat]
“RequireIntegrityActivationAuthenticationLevel”=dword:00000000

DCOM Sicherheitsprobleme aufdecken

Es gibt 3 neue Events, die einem nach der Aktivierung der Härtungsmaßnahme Sicherheitsprobleme mit Anwendungen aufzeigen soll und zwar dann, wenn erkannt wird, dass eine DCOM-Clientanwendung versucht einen DCOM-Server mit einer Authentifizierungsstufe zu aktivieren, die kleiner ist als

RPC_C_AUTHN_LEVEL_PKT_INTEGRITY.

Aus der ersten Tabelle gehen die 3 neuen Events inkl. der angezeigten Meldungen hervor und was sie bedeuten.

Aus dem serverseitigen Ereignisprotokoll kann eine Ablaufverfolgung zum Clientgerät erstellt werden, und aus dem clientseitigen Ereignisprotokoll geht dann die Anwendung hervor, die zum Sicherheitsproblem werden könnte.

Ereignis-IDMeldung
Server 10036Die Richtlinie für die serverseitige Authentifizierungsstufe lässt nicht zu, dass der Benutzer %1\%2 SID (%3) von Der Adresse %4 den DCOM-Server aktiviert. Bitte erhöhen Sie die Aktivierungsauthentifizierungsstufe, um RPC_C_AUTHN_LEVEL_PKT_INTEGRITY Clientanwendung zu aktivieren.

(%1 – Domäne, %2 – Benutzername, %3 – Benutzer-SID, %4 – Client-IP-Adresse)
Client 10037Anwendung %1 mit PID %2 fordert die Aktivierung von CLSID %3 auf Computer %4 mit explizit festgelegter Authentifizierungsstufe %5 an. Die niedrigste von DCOM erforderliche Aktivierungsauthentifizierungsstufe ist 5(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY). Wenden Sie sich an den Hersteller der Anwendung, um die Aktivierungsauthentifizierungsstufe zu aktivieren.
Client 10038Anwendung %1 mit PID %2 fordert die Aktivierung von CLSID %3 auf Computer %4 mit standardmäßiger Aktivierungsauthentifizierungsstufe von %5 an. Die niedrigste von DCOM erforderliche Aktivierungsauthentifizierungsstufe ist 5(RPC_C_AUTHN_LEVEL_PKT_INTEGRITY). Wenden Sie sich an den Hersteller der Anwendung, um die Aktivierungsauthentifizierungsstufe zu aktivieren.

(%1 – Anwendungspfad, %2 – Anwendungs-PID, %3 – CLSID der COM-Klasse, die die Anwendung zur Aktivierung anfordert, %4 – Computername, %5 – Wert der Authentifizierungsebene)

Diese Events werden auf folgenden Systemen zur Verfügung stehen sofern folgende KBs installiert worden sind.

Windows-VersionVerfügbar an oder nach diesen Datumsangaben
Windows Server 202227. September 2021

KB5005619
Windows 10, Version 2004, Windows 10, Version 20H2, Windows 10, Version 21H11. September 2021

KB5005101
Windows 10, Version 190926. August 2021

KB5005103
Windows Server 2019, Windows 10, Version 180926. August 2021

KB5005102
Windows Server 2016, Windows 10, Version 160714. September 2021

KB5005573
Windows Server 2012 R2 und Windows 8.112. Oktober 2021

KB5006714

Welche Security Provider stehen zur Verfügung?

NameWertSecurity Provider
RPC_C_AUTHN_NONE0x00No Authentication
RPC_C_AUTHN_GSS_NEGOTIATE0x09SPNEGO
RPC_C_AUTHN_WINNT0x0ANTLM
RPC_C_AUTHN_GSS_SCHANNEL0x0ETLS
RPC_C_AUTHN_GSS_KERBEROS0x10Kerberos
RPC_C_AUTHN_NETLOGON0x44Netlogon
RPC_C_AUTHN_DEFAULT0xFFgleich wie RPC_C_AUTHN_WINNT

Zusammenstellung weiterer Authentication Levels

NameWertBedeutung
RPC_C_AUTHN_LEVEL_DEFAULT0x00ist wie RPC_C_AUTHN_LEVEL_CONNECT
RPC_C_AUTHN_LEVEL_NONE0x01keine Authentifizierung
RPC_C_AUTHN_LEVEL_CONNECT0x02Authentifiziert die Anmeldeinformationen des Clients und des Servers
RPC_C_AUTHN_LEVEL_CALL0x03ist wie RPC_C_AUTHN_LEVEL_PKT
RPC_C_AUTHN_LEVEL_PKT0x04ist wie RPC_C_AUTHN_LEVEL_CONNECT, verhindert aber auch Replay-Angriffe
RPC_C_AUTHN_LEVEL_PKT_INTEGRITY0x05ist wie RPC_C_AUTHN_LEVEL_PKT, aber überprüft auch, dass keine der zwischen Client und Server übertragenen Daten geändert wurde
PC_C_AUTHN_LEVEL_PKT_PRIVACY0x06ist wie RPC_C_AUTHN_LEVEL_PKT_INTEGRITY, stellt aber zusätzlich sicher, dass die übertragenen Daten nur unverschlüsselt vom Client und vom Server eingesehen werden können.

Dieses Diagram zeigt den Zustand einer RPC-Verbindung clientseitig an.

Dieses Diagram zeigt dem Zustand einer RPC-Verbindung an clientseitig an

Dieses Diagram zeigt den Zustand einer RPC-Verbindung serverseitig an.

Dieses Diagram zeigt dem Zustand einer RPC-Verbindung an serverseitig an

Überprüfung der Authentifizierungsebene des Clients

Der Client kann die zu verwendende Ebene beim Herstellen einer Verbindung mit dem Server mithilfe der RpcBindingSetAuthInfo-API angeben, der Server kann jedoch nicht direkt die von ihm akzeptierte Mindestauthentifizierungsebene übergeben. Stattdessen kann der Rückruf (Callback) die RpcBindingInqAuthClient-API verwenden, um festzustellen, was der Client verwendet hat, und den Zugriff basierend darauf gewähren oder verweigern.

Die in der Regel eingesetzen Authentication Levels sind:

  • RPC_C_AUTHN_LEVEL_NONE
  • RPC_C_AUTHN_LEVEL_CONNECT
  • RPC_C_AUTHN_LEVEL_PKT_INTEGRITY
  • RPC_C_AUTHN_LEVEL_PKT_PRIVACY