1. Allgemein

Active Directory + Azure AD SSO absichern und RC4-HMAC deaktivieren

RC4-HMAC gilt bereits seit längerem als unsicherer und agreifbarer Verschlüsselungs-Algorithmus. Kommt er in einem Active Directory zur Verschlüsselung von Kerberos-Tickets zum Einsatz, besteht sogar die Gefahr eines Kerberoasting-Angriffs, bei dem ein Angreifer Service Account-Konten unter seine Kontrolle bringen kann.

Zur Mitigierung wird seit Windows Server 2008  die Deaktivierung der RC4-HMAC-Algorithmen und die Aktivierung der AES128 und AES256-Algorithmen von Kerberos-Tickets empfohlen. Aus einem nicht nachvollziehbaren Grund hat sich Microsoft erst mit Windows Server 2019 dazu entschieden, RC4-HMAC standardmäßig zu deaktivieren bzw. unterstützt RC4-HMAC nicht mehr. 

Wird zusätzlich Azure AD Connect mit Single Sign On eingesetzt, war es bis Herbst 2020 nicht möglich, RC4-HMAC zu deaktivieren, da die AES128/AES256-Algorithmen nicht unterstützt wurden. Zwischenzeitlich werden die moderneren Algorithmen unterstützt. In diesem Artikel erläutere ich die Notwendigen Schritte für den Umstieg auf die sichereren AES-Algorithmen.

Schauen wir uns zunächst an, wie wir Authentifizierungs-Vorgänge mit dem RC4-HMAC-Algorithmus identifizieren können. Das Ausstellen eines Kerberos-Tickets wird nach Aktivierung der Kerberos-Protokollierung mit Event ID 4769 im Sicherheits-Log auf einem Domain Controller protokolliert. Im nachfolgenden Screenshot wird als Ticket Encryption Type der Wert 0x17 angegeben:

Gemäß nachfolgender Auflistung handelt es sich also um ein Kerberos-Ticket, das mit dem Algorithmus RC4-HMAC verschlüsselt wurde:

  • 0x11 – AES128-HMAC-SHA1
  • 0x12 – AES256-HMAC-SHA1
  • 0x17 – RC4-HMAC

Zur Änderung der Algorithmen, sind folgende Schritte notwendig:

  1. AES-Support in Domain-Trusts aktivieren (wenn Trusts existieren)
  2. Erzwingen von AES256 für das Azure AD SSO-Konto im Active Directory
  3. Roll-Over des Kerberos Decryption Key (um SSO wieder zu ermöglichen)
  4. Deaktivieren von RC4-HMAC über eine Gruppenrichtlinie

1. AES256-Support in AD Trusts aktivieren

Sind mehrere Active Directory-Domains mittels Trust verknüpft, wird für Zugriffe auf weitere Domains innerhalb der Gesamtstruktur standardmäßig der RC4-Algorithmus verwendet. Deaktivieren wir also RC4-HMAC im letzten Schritt, ist ein Zugriff ohne die nachfolgende Änderung auf weitere Domains innerhalb der Gesamtstruktur nicht mehr möglich.

Mit den nachfolgenden Schritten aktivierst du AES256-Support für Domain Trusts:

  1. Öffne Active Directory Domains and Trusts und navigiere zu der betroffenen Domain (in diesem Beispiel contoso.com)
  2. Klicke mit der rechten Maustaste auf die Domain contoso.com und dann auf Properties
  3. Wähle den Tab Trusts und markiere in der Box Domains that trust this domain (incoming trusts) die entsprechende Partnerdomain mit einem Mausklick aus und klicke erneut auf Properties
  4. Aktiviere die Box The other domain supports Kerberos AES Encryption und bestätige mit Klick auf OK
  5. Wiederhole diese Schritte für die outgoing Trusts und in der entsprechenden Partnerdomain analog dazu.

2. AES256 für Azure AD SSO erzwingen

Um den Umstieg auf AES256 möglichst unterbrechungsfrei durchzuführen, erzwingen wir AES256 explizit für das Azure AD SSO-Konto, bevor wir RC4-HMAC per Gruppenrichtlinie global deaktivieren.

Mit den folgenden Schritten erzwingst du AES256 für das Azure AD SSO-Konto:

  1. Öffne Active Directory Users and Computers und aktiviere die Advanced Features in der Menüleiste unter dem Punkt View
  2. Navigiere zu der OU, in der sich das AZUREADSSOACC-Objekt befindet und öffne es mit einem Doppelklick
  3. Klicke auf den Tab Attribute Editor und navigiere zum Eintrag msDS-SupportedEncryptionTypes
  4. Setze für den Eintrag den Wert 16 und bestätige mit OK

3. Rollover des SSO Decryption Key

Nachdem wir AES256 für das Azure AD SSO-Konto erzwungen haben, müssen wir den Kerberos Decryption Key im Azure AD erneuern, um sicherzustellen, dass SSO weiterhin funktioniert.

Der Rollover des SSO Decryption Key ist mit wenigen Schritten erledigt. Da bereits umfangreiche und sehr gute Anleitungen dafür existieren, habe ich darauf verzichtet, eine weitere Anleitung zu erstellen 🙂 Diese Anleitung ist meiner Ansicht nach eine der besten und verständlichsten: Roll over Kerberos decryption key for Seamless SSO computer account – Azure Cloud & AI Blog

Side Note: Absicherung des Azure AD SSO-Kontos

Bei der Einrichtung von SSO wird von Azure AD Connect automatisch ein Computer-Konto (“AZUREADSSOACC”) angelegt. Dieses Konto stellt das Azure AD im Active Directory dar.

So läuft eine Anmeldung per SSO ab: Der Browser des Nutzers fordert ein Kerberos-Ticket für das AZUREADSSOACC-Konto an. Bei einer erfolgreichen Anmeldung wird ein Kerberos-Ticket von einem Domain Controller für dieses Computer-Konto ausgestellt und an den Browser gesendet. Der Browser meldet sich anschließend an Azure AD mit dem Kerberos-Ticket an.

Da alle Anmelde-Vorgänge über das AZUREADSSOACC-Konto erfolgen, ist es als äußerst sensitiv einzustufen. Bei einem erfolgreichen Angriff auf dieses Konto kann der Angreifer Zugriff auf die Ressourcen der Nutzer erhalten, die sich per SSO anmelden. Aus diesem Grund empfiehlt Microsoft den Rollover des Kerberos Decryption Key im Intervall von 30 Tagen!

4. RC4-HMAC per GPO deaktivieren

Wir haben nun alle Vorbereitungen abgeschlossen und können RC4-HMAC endlich mit Hilfe einer Gruppenrichtlinie loswerden!

  1. Öffne das Group Policy Management (gpmc.msc) und navigiere zu Group Policy Objects
  2. Die folgenden Änderungen sollten in einer Gruppenrichtlinie erfolgen, die auf alle Computerobjekte in der Domain angewandt wird. 
  3. Öffne das gewünschte Gruppenrichtlinien-Objekt mittels Rechtsklick und einem Klick auf Edit
  4. Navigiere zu Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Local Policies -> Security Options
  5. Öffne die Richtlinie Network security: Configure encryption types allowed for Kerberos
  6. Deaktiviere folgende Einträge und bestätige mit Klick auf OK:
    1. DES_CBC_CRC
    2. DES_CBC_MD5
    3. RC4_HMAC_MD5

Nachdem du nun alle Arbeiten abgeschlossen und alle Domain Controller die neue Richtlinieneinstellung angewandt haben, siehst du im Security Log, dass nur noch AES256 (oder AES128)-Kerberos-Tickets ausgestellt werden:

Ich hoffe, dass dir dieser Blog-Beitrag weitergeholfen hat und freue mich auf deinen Kommentar! Melde dich zu meinem Newsletter auf der rechten Seite an, um keine neuen Beiträge zum Thema Azure Security und Automatisierung zu verpassen 😀
Die Menschen reagierten auf diese Geschichte.
Kommentare anzeigen Kommentare ausblenden
Kommentare an: Active Directory + Azure AD SSO absichern und RC4-HMAC deaktivieren
  • 21. März 2022

    Thanks Tobi for the nice article! We just recently enabled SSO for Azure AD and I used this article as a guide for changing the encryption from RC4-HMAC to AES256-HMAC-SHA1.

    thank you thank you.

    Antwort

Schreiben Sie eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Bilder anhängen - Nur PNG, JPG, JPEG und GIF werden unterstützt.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Jetzt für meinen Newsletter registrieren und regelmäßige Updates zu Cloud Security & Automation erhalten

Bei Anmeldung erklärst du dich mit der Datenschutzerklärung einverstanden.

Über mich

Tobi arbeitet seit ca. 15 Jahren schwerpunktmäßig mit Microsoft-Produkten. Nachdem er sein Cloud Hosting-Unternehmen in 2015 erfolgreich veräußerte, unterstützt er heute mittelständische und große Unternehmen bei Cloud Security und Automatisierungs-Fragen.

de_DEDeutsch