Security Command Center External Exposure è un Google Cloud servizio che ti aiuta a gestire e ridurre la superficie di attacco esterna tramite il rilevamento automatico e la convalida dei rischi.
Poiché gli scanner automatici possono scegliere come target gli asset esposti a internet in pochi minuti, External Exposure rileva in modo proattivo le esposizioni accidentali e le risorse shadow prima che gli aggressori possano scoprirle e sfruttarle.
Analizzando il tuo ambiente da una prospettiva esterna, il servizio tenta di confermare ciò che è realmente raggiungibile da internet e identifica le esposizioni effettivamente sfruttabili.
External Exposure esegue continuamente la scansione di indirizzi IP esterni, nomi host, nomi di dominio e URL nel tuo Google Cloud ambiente. Questa funzionalità utilizza la scansione di rete per confermare quali risorse e applicazioni sono raggiungibili dalla rete internet pubblica.
Per ogni esposizione confermata, External Exposure esegue le seguenti operazioni:
Traccia e visualizza il Google Cloud percorso di rete per i bilanciatori del carico esterni, le policy di Google Cloud Armor, le regole firewall, Private Service Connect, Cloud Interconnect e i servizi di backend fino alla risorsa esposta.
Questa risorsa può essere un'istanza Compute Engine o un pod Google Kubernetes Engine (GKE), incluso un servizio o un'applicazione esposti.
Questa integrazione approfondita con la struttura di rete di Google aiuta a fornire un contesto pratico in modo da poter applicare immediatamente mitigazioni preventive, ad esempio bloccare una regola firewall specifica o configurare Google Cloud Armor.
Esegue l'impronta digitale per tentare di identificare l'applicazione web o il software server specifico in esecuzione su ogni asset esposto.
Se riesce a identificare il servizio o il software esposto, identifica eventuali vulnerabilità note che lo interessano.
Utilizza rilevatori passivi e attivi avanzati per verificare la sfruttabilità nel mondo reale convalidando vulnerabilità, configurazioni errate e utilizzo di credenziali predefinite o deboli.
Prima di iniziare
In questa sezione viene descritto come preparare l'ambiente per utilizzare External Exposure.
Abilitare l'API Security Center Management
Se prevedi di utilizzare le API Security Command Center, devi abilitare l'API Security Center Management per il progetto di quota e, se sono in uso policy dell'organizzazione che limitano l'utilizzo delle API, assicurati che l'API Security Center Management sia consentita. L'API Security Center Management viene utilizzata per controllare lo stato di abilitazione dei servizi Security Command Center come External Exposure.
In un terminale, abilita l'API Security Center Management per il progetto di quota:
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDSostituisci QUOTA_PROJECT_ID con l'ID del progetto che utilizzi per gestire la quota.
Se hai policy dell'organizzazione che limitano l'utilizzo delle API, assicurati che l'API Security Center Management sia consentita. Per saperne di più, consulta Esaminare le policy dell'organizzazione.
Se vuoi ricevere insight sul percorso di esposizione alla rete nei risultati, assicurati di attivare External Exposure a livello di organizzazione o cartella.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare External Exposure e visualizzare i dati della dashboard, chiedi all'amministratore di concederti i seguenti ruoli IAM nella tua organizzazione, cartella o progetto:
-
Configurare le impostazioni di External Exposure in Security Command Center e visualizzare i dati della dashboard:
Amministratore Centro sicurezza (
roles/securitycenter.admin) -
Concedere ruoli ai service agent, come il
externalexposure.serviceAgentruolo: Amministratore sicurezza (roles/iam.securityAdmin) -
Creare e gestire service account:
Amministratore service account (
roles/iam.serviceAccountAdmin) -
Visualizzare solo i dati della dashboard:
Visualizzatore amministratore Centro sicurezza (
roles/securitycenter.adminViewer) -
Visualizzare la dashboard e le metriche di scansione di External Exposure nella console, nella CLI o nell'API:
Visualizzatore External Exposure (
roles/externalexposure.viewer)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.
I seguenti comandi Google Cloud CLI possono essere utilizzati per assegnare i ruoli precedenti a un utente:
Assegnare i ruoli utilizzando gcloud CLI
Per concedere il ruolo Amministratore Centro sicurezza a un utente, esegui questo comando:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminPer concedere il ruolo Visualizzatore amministratore Centro sicurezza a un utente, esegui questo comando:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminViewerPer concedere il ruolo Visualizzatore External Exposure a un utente per l'accesso alle metriche della CLI o dell'API, esegui questo comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USER_EMAIL_ID \ --role=roles/externalexposure.viewerSostituisci quanto segue:
- ORGANIZATION_ID: l'ID numerico dell'organizzazione
- PROJECT_ID: l'ID progetto
- USER_EMAIL_ID: l'indirizzo email dell'utente che richiede l'accesso
Abilitare e configurare il servizio
Per abilitare e configurare External Exposure, completa le attività nelle sezioni seguenti.
Puoi abilitare e configurare il servizio a livello di organizzazione, cartella o progetto. Quando utilizzi l'API, se vuoi configurare le impostazioni a livello di
cartella o organizzazione anziché a livello di progetto, sostituisci
projects/PROJECT_ID con
folders/FOLDER_ID o
organizations/ORGANIZATION_ID in tutti gli URL delle richieste e
i parametri dei dati JSON.
Attivare External Exposure
Attiva External Exposure per la tua organizzazione, cartella o progetto.
Dopo aver attivato il servizio, assicurati di concedere al service agent le autorizzazioni richieste come descritto in Concedere le autorizzazioni del service agent.
Console
Nella Google Cloud console, vai alla pagina Abilitazione del servizio per External Exposure.
Seleziona l'organizzazione o il progetto.
Nella scheda Abilitazione del servizio , nella colonna External Exposure , seleziona lo stato di abilitazione dell'organizzazione, della cartella o del progetto che vuoi modificare, quindi seleziona una delle seguenti opzioni:
- Abilita: abilita External Exposure.
- Disattiva: disattiva External Exposure.
- Eredita: eredita le impostazioni dalla risorsa padre, a meno che non venga eseguito l'override nella risorsa figlio.
gcloud
Abilita l'API Security Center Management e attiva External Exposure per l'ambito di destinazione.
In un terminale, abilita l'API per il progetto di quota:
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDIn un terminale, abilita External Exposure utilizzando 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" }' \ --compressedSostituisci quanto segue:
- QUOTA_PROJECT_ID: l'ID del progetto che utilizzi per gestire la quota.
- PROJECT_ID: l'ID del progetto in cui vuoi abilitare External Exposure.
Concedere le autorizzazioni del service agent
A seconda del livello di risorsa in cui abiliti il servizio, Google Cloud viene generato un service agent:
- Livello di organizzazione o cartella: viene creato un service agent a livello di organizzazione o cartella.
- Livello di progetto: viene creato un service agent a livello di progetto.
Per concedere le autorizzazioni a livello di organizzazione, esegui il seguente comando gcloud in un terminale:
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
Sostituisci ORGANIZATION_ID con l'ID numerico della tua organizzazione.
Per concedere le autorizzazioni a livello di cartella, esegui il seguente comando gcloud in un terminale:
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
Sostituisci FOLDER_ID con l'ID numerico della tua cartella.
Concedere l'accesso in entrata ai perimetri di servizio
Se utilizzi i Controlli di servizio VPC, concedi al service agent External Exposure l'accesso in entrata a tutti i perimetri di servizio che proteggono i progetti che vuoi analizzare. Se non concedi l'accesso in entrata, External Exposure non può eseguire scansioni o generare risultati per i progetti protetti dai perimetri di servizio.
A seconda del livello di risorsa in cui è abilitato il servizio, l'identificatore del service account utilizza uno dei seguenti formati di indirizzo email:
Per organizzazioni o cartelle:
service-RESOURCE_KEYWORD-RESOURCE_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.comPer i progetti:
service-project-PROJECT_NUMBER@gcp-sa-ee.iam.gserviceaccount.com
Sostituisci quanto segue:
RESOURCE_KEYWORD: la parola chiaveorgofolderRESOURCE_ID: l'ID organizzazione o l'ID cartellaPROJECT_NUMBER: il numero del progetto
Se hai service account a livello di organizzazione e di progetto, applica i seguenti passaggi a entrambi.
Per concedere l'accesso, aggiungi una regola in entrata a ogni perimetro di servizio di blocco:
Nella Google Cloud console, vai alla pagina Controlli di servizio VPC:
Seleziona la policy di accesso di blocco e il perimetro di servizio.
Fai clic su Modifica e poi su Policy in entrata.
Fai clic su Aggiungi regola in entrata e configura il blocco Da:
- In Identità, seleziona Identità e gruppi selezionati.
- Inserisci l'indirizzo email del service account External Exposure.
- In Origine, seleziona Tutte le origini.
Configura il blocco A della regola:
- In Progetto, seleziona Tutti i progetti.
- In Operazioni o ruoli IAM, seleziona Tutte le operazioni.
Fai clic su Salva.
Configurare le porte personalizzate
Configura fino a 32 porte personalizzate per progetto da analizzare oltre alle porte di base:
Console
Nella Google Cloud console, vai alla pagina Abilitazione del servizio:
Seleziona l'organizzazione o il progetto.
Nella colonna External Exposure della riga che vuoi modificare, fai clic su Impostazioni.
Nel campo Porte personalizzate, inserisci i numeri di porta separati da virgole.
Fai clic su Salva.
gcloud
Per configurare le porte personalizzate per la scansione, includi service_config in updateMask e specifica i numeri interi delle porte nel wrapper dell'array ports sotto l'oggetto serviceConfig. L'esempio seguente configura le porte personalizzate 8081 e 8188 per la scansione:
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
Sostituisci quanto segue:
- QUOTA_PROJECT_ID: l'ID del progetto che utilizzi per gestire la quota.
- PROJECT_ID: l'ID del progetto in cui vuoi configurare le porte personalizzate.
Configurare i moduli di scansione
Configura i moduli di scansione specifici da attivare o disattivare:
Console
Nella Google Cloud console, vai alla pagina Abilitazione del servizio:
Seleziona l'organizzazione o il progetto.
Nella colonna External Exposure della riga che vuoi modificare, fai clic su Impostazioni.
Nella sezione Moduli di scansione , seleziona la casella di controllo per attivare o disattivare ogni modulo (ad esempio interfacce esposte, API, credenziali deboli o RCE).
Fai clic su Salva.
gcloud
Per attivare o disattivare moduli specifici, includi modules in updateMask e specifica lo stato di abilitazione per ogni modulo nell'oggetto modules. L'esempio seguente abilita EXTERNALLY_EXPOSED_RCE_VULNERABILITY e disabilita 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
Sostituisci quanto segue:
- QUOTA_PROJECT_ID: l'ID del progetto che utilizzi per gestire la quota.
- PROJECT_ID: l'ID del progetto in cui vuoi configurare i moduli.
Puoi configurare gli stati di abilitazione solo per i seguenti moduli:
EXTERNALLY_EXPOSED_UIEXTERNALLY_EXPOSED_APIEXTERNALLY_EXPOSED_WEAK_CREDENTIALSEXTERNALLY_EXPOSED_RCE_VULNERABILITYEXTERNALLY_EXPOSED_ARBITRARY_DATA_READ
Tutti gli altri moduli External Exposure (inclusi i controlli di archiviazione di database, workload serverless e bilanciamento del carico) sono abilitati per impostazione predefinita e non vengono visualizzati nella pagina di configurazione dei moduli.
Dopo aver abilitato External Exposure, le scansioni batch continue vengono eseguite automaticamente per identificare gli indirizzi IP esterni esposti, eseguire il probing dei servizi in esecuzione e convalidare le vulnerabilità attive.
Esaminare i risultati
Dopo aver abilitato External Exposure, puoi visualizzare i risultati nella Google Cloud console. In Security Command Center, vai alla pagina Panoramica dei rischi e visualizza la dashboard External Exposure. Questa dashboard è disponibile quando l'ambito è impostato su un'organizzazione, una cartella o un progetto. Per saperne di più su questa dashboard, consulta Valutare il rischio a colpo d'occhio.
Per recuperare i risultati attivi di External Exposure utilizzando la CLI, esegui questo comando:
gcloud alpha scc findings list projects/PROJECT_ID \
--location=global \
--filter="state=\"ACTIVE\" AND finding_class=\"EXTERNAL_EXPOSURE\""
Sostituisci PROJECT_ID con l'ID del progetto in cui vuoi visualizzare i risultati.
Comprendere i dettagli dei risultati
I risultati appartenenti alla classe EXTERNAL_EXPOSURE identificano il tipo di rischio e la modalità di esposizione della risorsa.
Per un elenco delle categorie di rischio granulari generate per questi risultati
(ad esempio EXTERNALLY_EXPOSED_VM_INSTANCE o
EXTERNALLY_EXPOSED_SERVERLESS_WORKLOAD), consulta Risultati di External Exposure.
Tutti i risultati della classe EXTERNAL_EXPOSURE includono i seguenti dettagli:
- Servizio esposto: l'applicazione web, il software server o il protocollo specifico identificato sulla porta attiva.
- Insight sul percorso di rete: la connettività di tracciamento del percorso di rete dalla rete internet pubblica tramite bilanciatori del carico, regole di forwarding e servizi di backend fino all'asset di destinazione.
- Endpoint esposto: la risorsa di destinazione sottostante (ad esempio, un' istanza Compute Engine o un pod Google Kubernetes Engine (GKE)).
Se è possibile identificare il servizio o la versione del software esposti, il risultato elenca anche eventuali vulnerabilità CVE che lo interessano.
Assegnare la priorità ai risultati con punteggi di esposizione agli attacchi
I risultati di External Exposure si integrano con le simulazioni del percorso di attacco per fornire punti di ingresso confermati, reali nel tuo ambiente. Quando un'esposizione confermata si connette a un potenziale percorso di movimento laterale (ad esempio, un service account esposto che può raggiungere un database BigQuery sensibile o un bucket Cloud Storage), il risultato riceve un punteggio di esposizione agli attacchi. Puoi utilizzare questo punteggio per dare la priorità alla correzione delle esposizioni che rappresentano il rischio maggiore per le tue risorse di alto valore.
Monitorare le metriche di scansione
Per aiutarti a verificare che External Exposure funzioni correttamente nel tuo ambiente, la console mostra le metriche di scansione batch continue:
- Ultima scansione: il timestamp dell'ultimo ciclo di scansione completato, che conferma che i risultati riflettono una visualizzazione attuale delle tue risorse.
- Prossima scansione: l'ora di inizio pianificata del ciclo di scansione successivo.
- Progetti riusciti: il numero totale di progetti analizzati correttamente durante l'ultimo ciclo di scansione.
- Progetti esclusi: il numero totale di progetti
ignorati perché le policy dell'organizzazione o i vincoli dei Controlli di servizio VPC impediscono
allo scanner di accedere alle risorse. Quando un progetto viene ignorato, Security Command Center genera uno o più risultati della classe
SCC_ERROR. - Risorse esposte: il numero totale di risorse di destinazione uniche identificate come raggiungibili pubblicamente.
- Porte pubbliche esposte: il numero totale di porte esterne attive distinte rilevate nelle risorse esposte.
Identificare il traffico dello scanner nei log
Quando External Exposure esegue attivamente la scansione delle risorse esterne, potresti notare richieste di scansione in entrata nei log dei servizi, ad esempio i log delle richieste di Cloud Run in Cloud Logging.
Per verificare che le richieste in entrata provengano da External Exposure anziché da terze parti non autorizzate, esamina la voce di log per il campo userAgent in httpRequest. Tutte le richieste attive del servizio si identificano con lo user agent TsunamiSecurityScanner.
L'esempio seguente mostra una voce di log delle richieste di Cloud Logging generata quando External Exposure esegue la scansione di un servizio Cloud Run esposto:
{
"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"
}
Prestazioni e limitazioni
- Risorse supportate: istanze Compute Engine, servizi e controller Ingress di Google Kubernetes Engine (GKE), database tra cui Cloud SQL e AlloyDB per PostgreSQL, cluster Managed Service for Apache Spark, Cloud Run, Cloud Storage e Gemini Enterprise Agent Platform Workbench.
- Intervallo di aggiornamento: Per informazioni sulla frequenza di scansione di External Exposure, consulta Quando prevedere i risultati in Security Command Center.
- Porte analizzate: External Exposure esegue automaticamente la scansione dei servizi in esecuzione su una base predefinita di porte comuni, raggruppate principalmente per tipo di servizio o protocollo:
- Amministrative / shell: 22 (SSH), 23 (Telnet), 3389 (RDP)
- Web / HTTP(S): 80, 443, 8000, 8080, 8081, 8443, 8800, 9000, 9443
- Database: 1433, 1521, 3306, 5432, 9200, 11211, 27017, 6379
- Kubernetes e gateway di servizio: 6443, 10250, 10255, 15020, 15021
- Altri strumenti e servizi comuni per sviluppatori: 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 e 61616.
- Porte personalizzate: oltre alle porte standard, puoi configurare fino a 32 porte personalizzate per progetto per la scansione. Per saperne di più, consulta Configurare le porte personalizzate.
- Insight sul percorso di rete: i risultati segnalano un percorso di rete per una risorsa esposta.
- VM con bilanciamento del carico: se più istanze VM sono connesse a un bilanciatore del carico, i risultati vengono segnalati solo per una delle istanze VM.
- Priorità dei risultati di Cloud Run: poiché ogni
deployment di Cloud Run riceve un URL pubblico per impostazione predefinita,
i risultati vengono valutati in base alle policy IAM e Identity-Aware Proxy
(IAP). Se un workload è protetto da IAM o IAP (che restituisce una risposta HTTP 403 non autorizzata), la gravità del risultato viene ridotta a
LOWper ridurre il rumore informativo. - Insight sul percorso di esposizione alla rete: i risultati non includono insight sul percorso di esposizione alla rete quando External Exposure è attivato a livello di progetto. Per ricevere insight sul percorso di esposizione alla rete, attiva il servizio a livello di organizzazione o cartella.