Idioma:
Las entidades de servicio propias (aplicaciones empresariales) provienen de aplicaciones (registros de aplicaciones) que pertenecen a Microsoft. La mayoría de ellas tienen permisos sensibles en Microsoft Entra ID que suelen pasarse por alto durante las revisiones de seguridad. Esto permite que los atacantes agreguen credenciales a estas entidades para aprovechar sigilosamente sus privilegios.
Esta técnica ofrece funcionalidades de persistencia, así como escalamiento de privilegios, ya que las entidades con el rol Administrador de aplicaciones pueden agregar credenciales a las aplicaciones, incluidas aquellas que tienen privilegios elevados.
Las entidades de servicio propias no deberían tener ninguna credencial, excepto en situaciones excepcionales (consulte las recomendaciones). En Configuración de Microsoft Entra para aumentar la seguridad, Microsoft también recomienda que las aplicaciones de servicios de Microsoft no tengan credenciales configuradas.
El grupo de amenazas APT29 se aprovechó de este método en el infame ataque de diciembre de 2020 contra SolarWinds, llamado “Solorigate”, según documentan Microsoft y Mandiant.
De manera predeterminada, las entidades de servicio deshabilitadas se ignoran (aunque este parámetro se puede cambiar) porque los atacantes no pueden usarlas.
Para comenzar, evalúe la legitimidad de las credenciales que se observan. Puede que considere que estas credenciales son legítimas si se asocian con una de las entidades de servicio siguientes: Exchange Online / Skype for Business / AAD Password Protection Proxy.
En otros casos en los que sospeche que las credenciales no son legítimas:
No es posible enumerar las credenciales de las entidades de servicio mediante Azure Portal, a diferencia de las credenciales asociadas a las aplicaciones. Use el cmdlet Get-MgServicePrincipal de Microsoft Graph PowerShell para enumerar las credenciales de la entidad de servicio:
Get-MgServicePrincipal -ServicePrincipalId <objectid> -Property keyCredentials | select -ExpandProperty keyCredentials
Get-MgServicePrincipal -ServicePrincipalId <objectid> -Property passwordCredentials | select -ExpandProperty passwordCredentials
Para eliminar estas credenciales, use:
$keycredentials = (Get-MgServicePrincipal -ServicePrincipalId <objectid>).KeyCredentials
, luego quite las que no desea de $keycredentials
y, por último, aplique esta nueva matriz con Update-MgServicePrincipal -ServicePrincipalId <objectid> -KeyCredentials $keycredentials
. Para borrarlas todas, simplemente use Update-MgServicePrincipal -ServicePrincipalId <objectid> -KeyCredentials @()
.Como alternativa, use el módulo de AzureAD PowerShell ahora en desuso:
Get-AzureADServicePrincipalKeyCredential
y Remove-AzureADServicePrincipalKeyCredential
Get-AzureADServicePrincipalPasswordCredential
y Remove-AzureADServicePrincipalPasswordCredential
Nombre: Entidad de servicio propia con credenciales
Nombre en clave: FIRST-PARTY-SERVICE-PRINCIPAL-WITH-CREDENTIALS
Gravedad: High
Tipo: Microsoft Entra ID Indicator of Exposure