Un private endpoint tire une ressource PaaS (un compte de stockage, un Key Vault, un serveur SQL) sur un VNet avec une IP privée via Azure Private Link. La ressource est alors souvent configurée pour refuser l'accès public et ne faire confiance qu'au private endpoint, donc un pied dans la porte à l'intérieur du VNet atteint des ressources invisibles et inaccessibles depuis l'internet. Énumérer les private endpoints cartographie la surface d'attaque interne seulement.
Énumérer les private endpoints#
az network private-endpoint list \
--query "[].{Name:name,RG:resourceGroup,Target:privateLinkServiceConnections[0].privateLinkServiceId,IP:customDnsConfigs[0].ipAddresses[0]}" -o table
# the private DNS that resolves the PaaS name to the internal IP
az network private-dns zone list -o table
Notes d'exploitation#
- L'IP privée plus la zone DNS privée permettent à une VM compromise de résoudre et d'atteindre
myvault.vault.azure.netoumystorage.blob.core.windows.neten interne, même quand leur pare-feu public refuse tout, donc le pied dans la porte réseau se substitue à une source en liste d'autorisation. - L'accès nécessite toujours un credential ou un token pour le service cible ; les private endpoints résolvent l'accessibilité, pas l'autorisation, donc à combiner avec un accès Key Vault ou stockage.
- Un private endpoint dont la cible est dans un autre abonnement révèle une relation de confiance inter-abonnements qui vaut la peine d'être suivie.
Outils#
- az network private-endpoint / private-dns : l'inventaire des endpoints et du DNS.
- Azure Resource Graph : les private endpoints à travers le tenant.