Azure Container Registry : Réduction de l’exfiltration de données grâce aux points de terminaison de données dédiés

Publié le 30 avril, 2020

Program Manager, Azure Container Registry

Azure Container Registry annonce les points de terminaison dédiés, qui permettent l’utilisation de règles de pare-feu client dont l’étendue est bien délimitées à des registres spécifiques et réduisent ainsi les problèmes d’exfiltration de données.

L’extraction de contenu d’un registre implique deux points de terminaison :

  • Le point de terminaison du registre, souvent appelé URL de connexion, utilisé pour l’authentification et la découverte de contenu.
    Une commande comme docker pull contoso.azurecr.io/hello-world effectue une requête REST qui authentifie et négocie les couches qui représentent l’artefact demandé.
  • Les points de terminaison de données servent d’objets blob représentant les couches de contenu.

Registre avec deux points de terminaison

Comptes de stockage gérés par le registre

Azure Container Registry est un service multi-locataire, où les comptes de stockage des points de terminaison de données sont gérés par le registre. Le stockage géré présente de nombreux avantages, dont l’équilibrage de charge, le fractionnement du contenu litigieux, les copies multiples pour une distribution de contenu simultanée plus rapide et la prise en charge de plusieurs régions avec la géoréplication.

Prise en charge du réseau virtuel Azure Private Link

Azure Container Registry a récemment annoncé la prise en charge d’Azure Private Link, ce qui permet de placer des points de terminaison privés de réseaux virtuels Azure sur le service géré par le registre. Les points de terminaison du registre et des données sont alors accessibles à partir du réseau virtuel en utilisant des adresses IP privées.

Le point de terminaison public peut donc être supprimé, ce qui sécurise les comptes de stockage gérés par le registre pour l’accès à partir du réseau virtuel.
ACR avec Azure Private Link 

Malheureusement, la connectivité en réseau virtuel n’est pas toujours possible.

Règles de pare-feu client et risques d’exfiltration de données

Lors de la connexion à un registre à partir d’hôtes locaux, d’appareils IoT, d’agents de build personnalisés ou quand Azure Private Link n’est pas une option, il est possible d’appliquer des règles de pare-feu client limitant l’accès à des ressources spécifiques.

Règle de pare-feu client, risque d’exfiltration de données 
À mesure de la sécurisation de leurs configurations de pare-feu client, les clients ont pris conscience de la nécessité de créer une règle à caractère générique pour tous les comptes de stockage, ouvrant ainsi la porte aux risques d’exfiltration de données. Un utilisateur malveillant pourrait en effet déployer du code à même d’écrire dans leur compte de stockage.

Pour limiter les risques d’exfiltration de données, Azure Container Registry met à disposition des points de terminaison de données dédiés.

Règles de pare-feu client, exploitation de l’exfiltration de données

Points de terminaison de données dédiés

Lorsque des points de terminaison de données dédiés sont activés, les couches sont récupérées à partir du service Azure Container Registry, avec des noms de domaine complets représentant le domaine du registre. Étant donné que chaque registre peut devenir géorépliqué, un modèle régional est utilisé :

[registre].[région].data.azurecr.io.

Pour l’exemple Contoso, plusieurs points de terminaison de données régionaux sont ajoutés pour prendre en charge la région locale avec un réplica proche.

Avec des points de terminaison de données dédiés, l’utilisateur malveillant est dans l’impossibilité d’écrire dans d’autres comptes de stockage.

Points de terminaison de données dédiés, risque d’exfiltration de données réduit

Activation de points de terminaison de données dédiés

Remarque : Le passage à des points de terminaison de données dédiés aura un impact sur les clients sur lesquels le pare-feu est configuré pour l’accès à des points de terminaison *.blob.core.windows.net existants, entraînant ainsi des échecs d’extraction. Pour veiller à que les clients bénéficient d’un accès, ajoutez les nouveaux points de terminaison de données aux règles de pare-feu client. Une fois l’opération effectuée, les registres existants peuvent activer des points de terminaison de données dédiés via l’interface de ligne de commande az.

À l’aide l’interface de ligne de commande az version 2.4.0 ou ultérieure, exécutez la commande az acr update :

az acr update --name contoso --data-endpoint-enabled

Pour afficher les points de terminaison de données, y compris les points de terminaison régionaux pour les registres géorépliqués, utilisez la commande az acr show-endpoint :

az acr show-endpoints --name contoso

sorties :

{
  "loginServer": "contoso.azurecr.io",
  "dataEndpoints": [
    {
      "region": "eastus",
      "endpoint": "contoso.eastus.data.azurecr.io",
    },
    {
      "region": "westus",
      "endpoint": "contoso.westus.data.azurecr.io",
    }
  ]
}

Sécurité avec Azure Private Link

Azure Private Link est le moyen le plus sûr de contrôler l’accès réseau entre les clients et le registre puisque le trafic réseau est limité au réseau virtuel Azure en utilisant des adresses IP privées. Quand Azure Private Link n’est pas une option, les points de terminaison de données dédiés peuvent fournir des informations sûres quant aux ressources accessibles à partir de chaque client.

Informations sur la tarification

Les points de terminaison de données dédiés sont une fonctionnalité des registres premium.

Pour plus d’informations sur les points de terminaison de données dédiés, consultez les informations sur les prix ici.