External Exposure de Security Command Center est un Google Cloud service qui vous aide à gérer et à réduire votre surface d'attaque externe grâce à la détection automatisée et à la validation des risques.
Étant donné que les analyseurs automatisés peuvent cibler les ressources exposées à Internet en quelques minutes, External Exposure détecte de manière proactive les expositions accidentelles et les ressources fantômes avant que les pirates informatiques ne puissent les découvrir et les exploiter.
En analysant votre environnement d'un point de vue externe, le service tente de confirmer ce qui est réellement accessible depuis Internet et d'identifier les expositions réellement exploitables.
External Exposure analyse en continu les adresses IP externes, les noms d'hôte, les noms de domaine et les URL de votre Google Cloud environnement. Cette fonctionnalité utilise l'analyse réseau pour confirmer les ressources et les applications accessibles depuis l'Internet public.
Pour chaque exposition confirmée, External Exposure effectue les opérations suivantes :
Trace et affiche le Google Cloud chemin réseau pour les équilibreurs de charge externes, les règles Google Cloud Armor, les règles de pare-feu, Private Service Connect, Cloud Interconnect et les services de backend jusqu'à la ressource exposée.
Cette ressource peut être une instance Compute Engine ou un pod Google Kubernetes Engine (GKE), y compris un service ou une application exposés.
Cette intégration étroite avec le tissu réseau Google permet de fournir un contexte exploitable afin que vous puissiez appliquer immédiatement des mesures d'atténuation préventives, telles que le verrouillage d'une règle de pare-feu spécifique ou la configuration de Google Cloud Armor.
Effectue une empreinte pour tenter d'identifier l'application Web ou le logiciel serveur spécifique qui s'exécute sur chaque ressource exposée.
S'il peut identifier le service ou le logiciel exposé, il identifie toutes les failles connues qui l'affectent.
Utilise des détecteurs passifs et actifs avancés pour tester l'exploitabilité réelle en validant les failles, les erreurs de configuration et l'utilisation d'identifiants par défaut ou faibles.
Avant de commencer
Cette section explique comment préparer votre environnement à utiliser External Exposure.
Activer l'API Security Center Management
Si vous prévoyez d'utiliser les API Security Command Center, vous devez activer l'API Security Center Management pour votre projet de quota et, si des règles d'administration sont utilisées pour limiter l'utilisation des API, assurez-vous que l'API Security Center Management est autorisée. L'API Security Center Management permet de contrôler l'état d'activation des services Security Command Center tels que External Exposure.
Dans un terminal, activez l'API Security Center Management pour votre projet de quota :
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDRemplacez QUOTA_PROJECT_ID par l'ID du projet que vous utilisez pour gérer le quota.
Si vous disposez de règles d'administration qui limitent l'utilisation des API, assurez-vous que l'API Security Center Management est autorisée. Pour en savoir plus, consultez Examiner les règles d'administration.
Si vous souhaitez recevoir des insights sur le chemin d'exposition réseau dans vos résultats, assurez-vous d'activer External Exposure au niveau de l'organisation ou du dossier.
Rôles requis
Pour obtenir les autorisations nécessaires pour configurer External Exposure et afficher les données du tableau de bord, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre organisation, votre dossier ou votre projet :
-
Configurer les paramètres d'External Exposure dans Security Command Center et afficher les données du tableau de bord :
Administrateur du centre de sécurité (
roles/securitycenter.admin) -
Accorder des rôles aux agents de service, tels que le
externalexposure.serviceAgentrôle: Administrateur de sécurité (roles/iam.securityAdmin) -
Créer et gérer des comptes de service:
Administrateur de compte de service (
roles/iam.serviceAccountAdmin) -
Afficher uniquement les données du tableau de bord :
Lecteur administrateur du centre de sécurité (
roles/securitycenter.adminViewer) -
Afficher le tableau de bord External Exposure et les métriques d'analyse dans la console, la CLI ou l'API:
Lecteur External Exposure (
roles/externalexposure.viewer)
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.
Les commandes Google Cloud CLI suivantes peuvent être utilisées pour attribuer les rôles précédents à un utilisateur :
Attribuer des rôles à l'aide de gcloud CLI
Pour accorder le rôle Administrateur du centre de sécurité à un utilisateur, exécutez la commande suivante :
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminPour accorder le rôle Lecteur administrateur du centre de sécurité à un utilisateur, exécutez la commande suivante :
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminViewerPour accorder le rôle Lecteur External Exposure à un utilisateur pour l'accès aux métriques de la CLI ou de l'API, exécutez la commande suivante :
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USER_EMAIL_ID \ --role=roles/externalexposure.viewerRemplacez les éléments suivants :
- ORGANIZATION_ID : ID numérique d'organisation
- PROJECT_ID : ID du projet
- USER_EMAIL_ID : adresse e-mail de l'utilisateur qui a besoin d'accéder
Activer et configurer le service
Pour activer et configurer External Exposure, effectuez les tâches décrites dans les sections suivantes.
Vous pouvez activer et configurer le service au niveau de l'organisation, du dossier ou du projet. Lorsque vous utilisez l'API, si vous souhaitez configurer des paramètres au
niveau du dossier ou de l'organisation plutôt qu'au niveau du projet, remplacez
projects/PROJECT_ID par
folders/FOLDER_ID ou
organizations/ORGANIZATION_ID dans toutes les URL de requête et
les paramètres de données JSON.
Activer External Exposure
Activez External Exposure pour votre organisation, votre dossier ou votre projet.
Une fois le service activé, assurez-vous d'accorder à l'agent de service les autorisations requises, comme décrit dans Accorder des autorisations à l'agent de service.
Console
Dans la Google Cloud console, accédez à la page Activation du service pour External Exposure.
Sélectionnez votre organisation ou votre projet.
Dans l'onglet Activation du service , dans la colonne External Exposure , sélectionnez l'état d'activation de l'organisation, du dossier ou du projet que vous souhaitez modifier, puis sélectionnez l'une des options suivantes :
- Activer : active External Exposure.
- Désactiver : désactive External Exposure.
- Hériter : hérite des paramètres de la ressource parente, à moins qu'ils ne soient remplacés sur la ressource enfant.
gcloud
Activez l'API Security Center Management et External Exposure pour votre champ d'application cible.
Dans un terminal, activez l'API pour votre projet de quota :
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDDans un terminal, activez External Exposure à l'aide de l'API Security Center Management :
curl --request PATCH \ "https://securitycentermanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure?updateMask=intended_enablement_state" \ --header "Authorization: Bearer $(gcloud auth print-access-token)" \ --header "X-Goog-User-Project: QUOTA_PROJECT_ID" \ --header "Accept: application/json" \ --header "Content-Type: application/json" \ --data '{ "intendedEnablementState": "ENABLED", "name": "projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure" }' \ --compressedRemplacez les éléments suivants :
- QUOTA_PROJECT_ID : ID du projet que vous utilisez pour gérer le quota.
- PROJECT_ID : ID du projet dans lequel vous souhaitez activer External Exposure.
Accorder des autorisations à l'agent de service
En fonction du niveau de ressource où vous activez le service, Google Cloud génère un agent de service :
- Au niveau de l'organisation ou du dossier : un agent de service au niveau de l'organisation ou du dossier est créé.
- Au niveau du projet : un agent de service au niveau du projet est créé.
Pour accorder des autorisations au niveau de l'organisation, exécutez la commande gcloud suivante dans un terminal :
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member="serviceAccount:service-org-ORGANIZATION_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.com" \
--role=roles/externalexposure.serviceAgent
Remplacez ORGANIZATION_ID par l'ID numérique de votre organisation.
Pour accorder des autorisations au niveau du dossier, exécutez la commande gcloud suivante dans un terminal :
gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
--member="serviceAccount:service-folder-FOLDER_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.com" \
--role=roles/externalexposure.serviceAgent
Remplacez FOLDER_ID par l'ID numérique de votre dossier.
Accorder un accès entrant aux périmètres de service
Si vous utilisez VPC Service Controls, accordez à l'agent de service External Exposure un accès entrant à tous les périmètres de service qui protègent les projets que vous souhaitez analyser. Si vous n'accordez pas d'accès entrant, External Exposure ne peut pas effectuer d'analyses ni générer de résultats pour les projets protégés par des périmètres de service.
En fonction du niveau de ressource où le service est activé, l'identifiant du compte de service utilise l'un des formats d'adresse e-mail suivants :
Pour les organisations ou les dossiers :
service-RESOURCE_KEYWORD-RESOURCE_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.comPour les projets :
service-project-PROJECT_NUMBER@gcp-sa-ee.iam.gserviceaccount.com
Remplacez les éléments suivants :
RESOURCE_KEYWORD: mot cléorgoufolderRESOURCE_ID: ID de l'organisation ou ID du dossierPROJECT_NUMBER: numéro du projet
Si vous disposez d'un compte de service à la fois au niveau de l'organisation et au niveau du projet, appliquez les étapes suivantes aux deux comptes.
Pour accorder l'accès, ajoutez une règle d'entrée à chaque périmètre de service bloquant :
Dans la Google Cloud console, accédez à la page VPC Service Controls :
Sélectionnez la règle d'accès bloquante et le périmètre de service.
Cliquez sur Modifier , puis sur Règle d'entrée.
Cliquez sur Ajouter une règle d'entrée et configurez le bloc De :
- Pour Identité, sélectionnez Identités et groupes sélectionnés.
- Saisissez l'adresse e-mail du compte de service External Exposure.
- Pour Source, sélectionnez Toutes les sources.
Configurez le bloc À de la règle :
- Pour Projet, sélectionnez Tous les projets.
- Pour Opérations ou rôles IAM, sélectionnez Toutes les opérations.
Cliquez sur Enregistrer.
Configurer des ports personnalisés
Configurez jusqu'à 32 ports personnalisés par projet à analyser en plus des ports standards listés dans Performances et limites :
Console
Dans la Google Cloud console, accédez à la page Activation du service :
Sélectionnez votre organisation ou votre projet.
Dans la colonne External Exposure de la ligne que vous souhaitez modifier, cliquez sur Paramètres.
Dans le champ Ports personnalisés, saisissez les numéros de port séparés par des virgules.
Cliquez sur Enregistrer.
gcloud
Pour configurer des ports personnalisés pour l'analyse, incluez service_config dans updateMask et spécifiez les entiers de port dans le wrapper de tableau ports sous l'objet serviceConfig. L'exemple suivant configure les ports personnalisés 8081 et 8188 pour l'analyse :
curl --request PATCH \
"https://securitycentermanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure?updateMask=service_config" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "X-Goog-User-Project: QUOTA_PROJECT_ID" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{
"serviceConfig": {
"ports": [8081, 8188]
},
"name": "projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure"
}' \
--compressed
Remplacez les éléments suivants :
- QUOTA_PROJECT_ID : ID du projet que vous utilisez pour gérer le quota.
- PROJECT_ID : ID du projet dans lequel vous souhaitez configurer des ports personnalisés.
Configurer des modules d'analyse
Configurez des modules d'analyse spécifiques à activer ou à désactiver :
Console
Dans la Google Cloud console, accédez à la page Activation du service :
Sélectionnez votre organisation ou votre projet.
Dans la colonne External Exposure de la ligne que vous souhaitez modifier, cliquez sur Paramètres.
Dans la section Modules d'analyse, cochez la case pour activer ou désactiver chaque module (par exemple, les interfaces exposées, les API, les identifiants faibles ou l'exécution de code à distance).
Cliquez sur Enregistrer.
gcloud
Pour activer ou désactiver des modules spécifiques, incluez modules dans updateMask et spécifiez l'état d'activation de chaque module dans l'objet modules. L'exemple suivant active EXTERNALLY_EXPOSED_RCE_VULNERABILITY et désactive EXTERNALLY_EXPOSED_WEAK_CREDENTIALS :
curl --request PATCH \
"https://securitycentermanagement.googleapis.com/v1/projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure?updateMask=modules" \
--header "Authorization: Bearer $(gcloud auth print-access-token)" \
--header "X-Goog-User-Project: QUOTA_PROJECT_ID" \
--header "Accept: application/json" \
--header "Content-Type: application/json" \
--data '{
"modules": {
"EXTERNALLY_EXPOSED_RCE_VULNERABILITY": {
"intendedEnablementState": "ENABLED"
},
"EXTERNALLY_EXPOSED_WEAK_CREDENTIALS": {
"intendedEnablementState": "DISABLED"
}
},
"name": "projects/PROJECT_ID/locations/global/securityCenterServices/external_exposure"
}' \
--compressed
Remplacez les éléments suivants :
- QUOTA_PROJECT_ID : ID du projet que vous utilisez pour gérer le quota.
- PROJECT_ID : ID du projet dans lequel vous souhaitez configurer des modules.
Vous ne pouvez configurer les états d'activation que pour les modules suivants :
EXTERNALLY_EXPOSED_UIEXTERNALLY_EXPOSED_APIEXTERNALLY_EXPOSED_WEAK_CREDENTIALSEXTERNALLY_EXPOSED_RCE_VULNERABILITYEXTERNALLY_EXPOSED_ARBITRARY_DATA_READ
Tous les autres modules External Exposure (y compris les vérifications de stockage de base de données, de charge de travail sans serveur et d'équilibreur de charge) sont activés par défaut et n'apparaissent pas sur la page de configuration des modules.
Une fois External Exposure activé, des analyses par lot continues s'exécutent automatiquement pour identifier les adresses IP externes exposées, sonder les services en cours d'exécution et valider les failles actives.
Examiner les résultats
Une fois External Exposure activé, vous pouvez afficher les résultats dans la Google Cloud console. Dans Security Command Center, accédez à la page Présentation des risques et affichez le tableau de bord External Exposure. Ce tableau de bord est disponible lorsque votre champ d'application est défini sur une organisation, un dossier ou un projet. Pour en savoir plus sur ce tableau de bord, consultez Évaluer les risques à l'aide des tableaux de bord de présentation des risques.
Pour récupérer les résultats External Exposure actifs à l'aide de la CLI, exécutez la commande suivante :
gcloud alpha scc findings list projects/PROJECT_ID \
--location=global \
--filter="state=\"ACTIVE\" AND finding_class=\"EXTERNAL_EXPOSURE\""
Remplacez PROJECT_ID par l'ID du projet dans lequel vous souhaitez afficher les résultats.
Comprendre les détails des résultats
Les résultats appartenant à la classe EXTERNAL_EXPOSURE identifient le type de risque et la manière dont la ressource est exposée.
Pour obtenir la liste des catégories de risque granulaires générées pour ces résultats
(telles que EXTERNALLY_EXPOSED_VM_INSTANCE ou
EXTERNALLY_EXPOSED_SERVERLESS_WORKLOAD), consultez Résultats External Exposure.
Tous les résultats de la classe EXTERNAL_EXPOSURE incluent les détails suivants :
- Service exposé : application Web, logiciel serveur ou protocole spécifique identifié sur le port actif.
- Insights sur le chemin réseau : connectivité de traçage du chemin réseau depuis l' Internet public via les équilibreurs de charge, les règles de transfert et les services de backend jusqu'à la ressource cible.
- Point de terminaison exposé : ressource cible sous-jacente (par exemple, une instance Compute Engine ou un pod Google Kubernetes Engine (GKE)).
Si la version du service ou du logiciel exposé peut être identifiée, le résultat liste également toutes les failles CVE qui l'affectent.
Hiérarchiser les résultats avec les scores d'exposition aux attaques
Les résultats External Exposure s'intègrent aux simulations de chemin d'attaque. Pour en savoir plus, consultez Présentation des scores d'exposition aux attaques et des chemins d'attaque. Lorsqu'une exposition confirmée se connecte à un chemin de déplacement latéral potentiel (par exemple, un compte de service exposé qui peut accéder à une base de données BigQuery ou à un bucket Cloud Storage sensibles), le résultat reçoit un score d'exposition aux attaques. Vous pouvez utiliser ce score pour hiérarchiser la correction des expositions qui présentent le plus grand risque pour vos ressources à forte valeur.
Surveiller les métriques d'analyse
Pour vous aider à confirmer qu'External Exposure fonctionne correctement dans votre environnement, la console affiche des métriques d'analyse par lot continues :
- Dernière analyse : code temporel du cycle d'analyse le plus récent, confirmant que les résultats reflètent une vue actuelle de vos ressources.
- Prochaine analyse : heure de début programmée du cycle d'analyse suivant.
- Projets réussis : nombre total de projets analysés avec succès lors du dernier cycle d’analyse.
- Projets exclus : nombre total de projets
ignorés, car les règles d'administration ou les contraintes VPC Service Controls empêchent
l'analyseur d'accéder aux ressources. Lorsqu'un projet est ignoré, Security Command Center génère un ou plusieurs résultats de la classe
SCC_ERROR. - Ressources exposées : nombre total de cibles de ressources uniques identifiées comme accessibles publiquement.
- Ports publics exposés : nombre total de ports externes actifs distincts détectés sur vos ressources exposées.
Identifier le trafic de l'analyseur dans vos journaux
Lorsque External Exposure analyse activement vos ressources externes, vous pouvez observer des requêtes d'analyse entrantes dans les journaux de vos services, tels que les journaux de requêtes Cloud Run dans Cloud Logging.
Pour vérifier que les requêtes entrantes proviennent d'External Exposure plutôt que de tiers non autorisés, inspectez l'entrée de journal du champ userAgent sous httpRequest. Toutes les requêtes actives du service s'identifient avec l'agent utilisateur TsunamiSecurityScanner.
L'exemple suivant montre une entrée de journal de requêtes Cloud Logging générée lorsqu'External Exposure analyse un service Cloud Run exposé :
{
"httpRequest": {
"latency": "0.004745622s",
"protocol": "HTTP/1.1",
"remoteIp": "2600:1900:4180:5b2:0:1ae::",
"requestMethod": "POST",
"requestSize": "441",
"requestUrl": "https://SERVICE_URL/mcp",
"responseSize": "131",
"serverIp": "2600:1900:4244:200::",
"status": 405,
"userAgent": "TsunamiSecurityScanner"
},
"insertId": "6a16af86000c7e0d0fdc1c58",
"labels": {
"goog-managed-by": "cloudfunctions",
"goog-serve-source": "user-container"
},
"logName": "projects/PROJECT_ID/logs/run.googleapis.com%2Frequests",
"receiveTimestamp": "2026-05-27T08:47:03.025492782Z",
"resource": {
"labels": {
"configuration_name": "SERVICE_NAME",
"location": "us-central1",
"project_id": "PROJECT_ID",
"revision_name": "REVISION_NAME",
"service_name": "SERVICE_NAME"
},
"type": "cloud_run_revision"
},
"severity": "WARNING",
"timestamp": "2026-05-27T08:47:02.811254Z"
}
Performances et limites
- Ressources compatibles : instances Compute Engine, services Google Kubernetes Engine (GKE) et contrôleurs d'Ingress, bases de données, y compris Cloud SQL et AlloyDB for PostgreSQL, clusters Managed Service for Apache Spark, Cloud Run, Cloud Storage et Gemini Enterprise Agent Platform Workbench.
- Intervalle d'actualisation : pour en savoir plus sur la fréquence d'analyse d' External Exposure, consultez Quand attendre des résultats dans Security Command Center.
- Ports analysés : External Exposure analyse automatiquement les services exécutés sur une base de référence prédéfinie de ports courants, regroupés principalement par type de service ou protocole :
- Administratif / Shell : 22 (SSH), 23 (Telnet), 3389 (RDP)
- Web / HTTP(S): 80, 443, 8000, 8080, 8081, 8443, 8800, 9000, 9443
- Bases de données : 1433, 1521, 3306, 5432, 9200, 11211, 27017, 6379
- Kubernetes et passerelles de service : 6443, 10250, 10255, 15020, 15021
- Autres outils et services de développement courants : 1099, 1880, 2323, 2375, 2376, 2379, 2746, 3000, 3100, 4040, 5000, 5173, 5678, 6006, 6274, 7001, 7002, 7077, 7860, 8001, 8042, 8083, 8088, 8090, 8111, 8123, 8153, 8154, 8188, 8265, 8500, 8501, 8787, 8888, 8890, 8983, 9001, 9010, 9090, 9091, 9092, 9100, 9870, 9876, 11434, 15672, 18080, 54321 et 61616.
- Ports personnalisés : en plus des ports standards, vous pouvez configurer jusqu'à 32 ports personnalisés par projet pour l'analyse. Pour en savoir plus, consultez Configurer des ports personnalisés.
- Insights sur le chemin réseau : les résultats signalent un chemin réseau pour une ressource exposée.
- VM à équilibrage de charge : si plusieurs instances de VM sont connectées à un équilibreur de charge, les résultats ne sont signalés que pour l'une d'elles.
- Hiérarchisation des résultats Cloud Run : étant donné que chaque
déploiement Cloud Run reçoit une URL publique par défaut,
les résultats sont évalués par rapport aux règles IAM et Identity-Aware Proxy
(IAP). Si une charge de travail est protégée par IAM ou IAP (renvoyant une réponse HTTP 403 non autorisée), la gravité du résultat est rétrogradée à
LOWpour réduire le bruit informationnel. - Insights sur le chemin d'exposition réseau : les résultats n'incluent pas d'insights sur le chemin d'exposition réseau lorsque External Exposure est activé au niveau du projet. Pour recevoir des insights sur le chemin d'exposition réseau, activez le service au niveau de l'organisation ou du dossier.