Erstanbieter-Dienstprinzipal mit Anmeldeinformationen

High

Beschreibung

Erstanbieter-Dienstprinzipale (Unternehmensanwendungen) stammen aus Anwendungen (Anwendungsregistrierungen), die Microsoft gehören. Die meisten haben sensible Berechtigungen in Microsoft Entra ID, die Sie bei Sicherheitsprüfungen oft übersehen. Dadurch können Angreifer ihnen Anmeldeinformationen hinzufügen, um unbemerkt von ihren Berechtigungen zu profitieren.

Dieses Verfahren bietet sowohl Persistenzfunktionen als auch Rechteausweitung, da Prinzipale mit der Anwendungsadministrator-Rolle Anwendungen Anmeldeinformationen hinzufügen können, einschließlich solcher, die über höhere Berechtigungen verfügen.

Erstanbieter-Dienstprinzipale sollten keine Anmeldeinformationen haben, außer in seltenen Fällen (siehe Empfehlungen).

Die APT29-Bedrohungsgruppe hat diese Methode im berüchtigten Angriff von SolarWinds namens Solorigate im Dezember 2020 missbraucht, wie von Microsoft und von Mandiant dokumentiert.

Lösung

Beginnen Sie, indem Sie die Legitimität der beobachteten Anmeldeinformationen evaluieren. Sie können diese Anmeldeinformationen als legitim betrachten, wenn sie mit einem der folgenden Dienstprinzipale verknüpft sind: Exchange Online/Skype for Business/AAD Password Protection Proxy.

In Fällen, in denen Sie vermuten, dass die Anmeldeinformationen nicht legitim sind:

  • Führen Sie eine forensische Untersuchung durch, da sie einen Angriff signalisieren kann. Ziel ist es, den vermeintlichen Angriff zu bestätigen und zu identifizieren, wer wann und in welchem Ausmaß potenziell eingedrungen ist.
  • Überprüfen Sie die Audit-Protokolle, um zu identifizieren, wann sie hinzugefügt wurden und ob sie verwendet werden/wurden.
  • Prüfen Sie außerdem die abgelaufenen Anmeldeinformationen, da ein Bedrohungsakteur sie in der Vergangenheit verwendet haben könnte, selbst wenn sie inzwischen nicht mehr nutzbar sind.

Sie können Dienstprinzipal-Anmeldeinformationen nicht mithilfe des Azure-Portals auflisten, im Gegensatz zu Anmeldeinformationen, die Anwendungen zugeordnet sind. Verwenden Sie das Cmdlet Get-MgServicePrincipal von Microsoft Graph PowerShell, um die Dienstprinzipal-Anmeldeinformationen aufzulisten:

  • Für Schlüssel-Anmeldeinformationen: Get-MgServicePrincipal -ServicePrincipalId <objectid> -Property keyCredentials | select -ExpandProperty keyCredentials
  • Für Passwort-Anmeldeinformationen: Get-MgServicePrincipal -ServicePrincipalId <objectid> -Property passwordCredentials | select -ExpandProperty passwordCredentials

Verwenden Sie zum Löschen dieser Anmeldeinformationen Folgendes:

  • Für Schlüssel-Anmeldeinformationen: Als normale Methode wird Remove-MgServicePrincipalKey verwendet. Dafür wird jedoch ein Beweis des Besitzes benötigt, für den Sie Zugriff auf den privaten Schlüssel benötigen, was nicht immer möglich ist. In diesem Fall können Sie dies umgehen, indem Sie das Array der Schlüssel-Anmeldeinformationen mit $keycredentials = (Get-MgServicePrincipal -ServicePrincipalId <objectid>).KeyCredentials abrufen, die nicht gewünschten Anmeldeinformationen aus $keycredentials entfernen und zum Schluss dieses neue Array mit Update-MgServicePrincipal -ServicePrincipalId <objectid> -KeyCredentials $keycredentials anwenden. Wenn Sie alle löschen möchten, können Sie einfach Update-MgServicePrincipal -ServicePrincipalId <objectid> -KeyCredentials @() verwenden.
  • Für Passwort-Anmeldeinformationen: Remove-MgServicePrincipalPassword (hier tritt dieses Problem nicht auf)

Alternativ können Sie auch das jetzt veraltete AzureAD PowerShell-Modul verwenden:

  • Für Schlüssel-Anmeldeinformationen: Get-AzureADServicePrincipalKeyCredential und Remove-AzureADServicePrincipalKeyCredential
  • Für Passwort-Anmeldeinformationen: Get-AzureADServicePrincipalPasswordCredential und Remove-AzureADServicePrincipalPasswordCredential

Indikatordetails

Name: Erstanbieter-Dienstprinzipal mit Anmeldeinformationen

Codename: FIRST-PARTY-SERVICE-PRINCIPAL-WITH-CREDENTIALS

Schweregrad: High

MITRE ATT&CK-Informationen:

Techniken: T1098.001

More: Azure AD privilege escalation - Taking over default application permissions as Application Admin