O Security Command Center External Exposure é um serviço Google Cloud que ajuda você a gerenciar e reduzir sua superfície de ataque externa com descoberta automatizada e validação de riscos.
Como os scanners automatizados podem segmentar ativos expostos à Internet em minutos, o External Exposure descobre proativamente exposições acidentais e recursos ocultos antes que os invasores possam descobrir e explorar.
Ao analisar seu ambiente de uma perspectiva externa, o serviço tenta confirmar o que é realmente acessível da Internet e identifica quais exposições são realmente exploráveis.
O External Exposure verifica continuamente endereços IP, nomes de host, nomes de domínio e URLs voltados para o exterior em todo o ambiente do Google Cloud. Esse recurso usa a verificação de rede para confirmar quais recursos e aplicativos podem ser acessados pela Internet pública.
Para cada exposição confirmada, o External Exposure faz o seguinte:
Rastreia e mostra o caminho de rede Google Cloud para balanceadores de carga externos, políticas do Google Cloud Armor, regras de firewall, Private Service Connect, Cloud Interconnect e serviços de back-end até o recurso exposto.
Esse recurso pode ser uma instância do Compute Engine ou um pod do Google Kubernetes Engine (GKE), incluindo um serviço ou aplicativo exposto.
Essa integração profunda com a estrutura de rede do Google ajuda a fornecer um contexto útil para que você possa aplicar imediatamente mitigações preventivas, como bloquear uma regra de firewall específica ou configurar o Google Cloud Armor.
Realiza o fingerprinting para tentar identificar o aplicativo da Web ou o software de servidor específico que está sendo executado em cada recurso exposto.
Se for possível identificar o serviço ou o software exposto, ele vai identificar as vulnerabilidades conhecidas que o afetam.
Usa detectores passivos e ativos avançados para testar a capacidade de exploração no mundo real, validando vulnerabilidades, configurações incorretas e o uso de credenciais padrão ou fracas.
Antes de começar
Nesta seção, descrevemos como preparar seu ambiente para usar o External Exposure.
Ativar a API Security Center Management
Se você planeja usar as APIs do Security Command Center, ative a API Security Center Management para seu projeto de cota e, se as políticas da organização estiverem em uso e restringirem o uso da API, verifique se a API Security Center Management está permitida. A API Security Center Management é usada para controlar o estado de ativação dos serviços do Security Command Center, como o External Exposure.
Em um terminal, ative a API Security Center Management no projeto de cota:
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDSubstitua QUOTA_PROJECT_ID pelo ID do projeto que você usa para gerenciar a cota.
Se você tiver políticas da organização que restringem o uso da API, verifique se a API Security Center Management é permitida. Para mais informações, consulte Analisar políticas da organização.
Se quiser receber insights sobre o caminho de exposição da rede nas suas descobertas, ative o External Exposure no nível da organização ou da pasta.
Funções exigidas
Para ter as permissões necessárias para configurar a exposição externa e acessar os dados do painel, peça ao administrador para conceder a você os seguintes papéis do IAM na organização, pasta ou projeto:
-
Configure as configurações de External Exposure no Security Command Center e veja os dados do painel: Administrador da Central de segurança (
roles/securitycenter.admin) -
Conceda papéis aos agentes de serviço, como o papel
externalexposure.serviceAgent: Administrador de segurança (roles/iam.securityAdmin) -
Criar e gerenciar contas de serviço: Administrador da conta de serviço (
roles/iam.serviceAccountAdmin) -
Acessar apenas dados do painel:
Leitor administrador da Central de segurança (
roles/securitycenter.adminViewer) -
Confira o painel de exposição externa e as métricas de verificação no console, na CLI ou na API:
Leitor de exposição externa (
roles/externalexposure.viewer)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando papéis personalizados ou outros papéis predefinidos.
Os comandos da Google Cloud CLI a seguir podem ser usados para atribuir as funções anteriores a um usuário:
Atribuir papéis usando a CLI gcloud
Para conceder o papel de administrador do Security Center a um usuário, execute o seguinte comando:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminPara conceder o papel de Leitor administrativo da Central de segurança a um usuário, execute o seguinte comando:
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \ --member=user:USER_EMAIL_ID \ --role=roles/securitycenter.adminViewerPara conceder o papel de leitor de exposição externa a um usuário para acesso a métricas da CLI ou da API, execute o seguinte comando:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=user:USER_EMAIL_ID \ --role=roles/externalexposure.viewerSubstitua:
- ORGANIZATION_ID: o ID numérico da organização
- PROJECT_ID: o ID do projeto;
- USER_EMAIL_ID: o endereço de e-mail do usuário que precisa de acesso
Ativar e configurar o serviço
Para ativar e configurar o External Exposure, conclua as tarefas nas seções a seguir.
É possível ativar e configurar o serviço no nível da organização, da pasta ou do projeto. Ao usar a API, se você quiser configurar as definições no nível da pasta ou da organização em vez do nível do projeto, substitua projects/PROJECT_ID por folders/FOLDER_ID ou organizations/ORGANIZATION_ID em todos os URLs de solicitação e parâmetros de dados JSON.
Ativar o External Exposure
Ative o External Exposure para sua organização, pasta ou projeto.
Depois de ativar o serviço, conceda ao agente de serviço as permissões necessárias, conforme descrito em Conceder permissões ao agente de serviço.
Console
No console do Google Cloud , acesse a página Ativação de serviços para External Exposure.
Selecione a organização ou o projeto.
Na guia Ativação do serviço, na coluna Exposição externa, selecione o status de ativação da organização, pasta ou projeto que você quer modificar e escolha uma das seguintes opções:
- Ativar: ativa o External Exposure.
- Desativar: desativa o External Exposure.
- Herdar: herda as configurações do recurso pai, a menos que sejam substituídas no recurso filho.
gcloud
Ative a API Security Center Management e o External Exposure para seu escopo de destino.
Em um terminal, ative a API para seu projeto de cota:
gcloud services enable securitycentermanagement.googleapis.com \ --project=QUOTA_PROJECT_IDEm um terminal, ative o External Exposure usando a 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" }' \ --compressedSubstitua:
- QUOTA_PROJECT_ID: o ID do projeto que você usa para gerenciar a cota.
- PROJECT_ID: o ID do projeto em que você quer ativar o External Exposure.
Conceder permissões ao agente de serviço
Dependendo do nível de recurso em que você ativa o serviço, Google Cloud gera um agente de serviço:
- Nível da organização ou pasta: um agente de serviço no nível da organização ou da pasta é criado.
- Nível do projeto: um agente de serviço para envolvidos no projeto é criado.
Para conceder permissões no nível da organização, execute o seguinte comando gcloud em um 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
Substitua ORGANIZATION_ID pelo ID numérico da organização.
Para conceder permissões no nível da pasta, execute o seguinte comando gcloud em um 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
Substitua FOLDER_ID pelo ID numérico da pasta.
Conceder acesso de entrada a perímetros de serviço
Se você usa o VPC Service Controls, conceda ao agente de serviço de exposição externa acesso de entrada a todos os perímetros de serviço que protegem os projetos que você quer verificar. Se você não conceder acesso de entrada, a Exposição externa não poderá realizar verificações nem gerar descobertas para projetos protegidos por perímetros de serviço.
Dependendo do nível de recurso em que o serviço está ativado, o identificador da conta de serviço usa um dos seguintes formatos de endereço de e-mail:
Para organizações ou pastas:
service-RESOURCE_KEYWORD-RESOURCE_ID@gcp-sa-ee-hpsa.iam.gserviceaccount.comPara projetos:
service-project-PROJECT_NUMBER@gcp-sa-ee.iam.gserviceaccount.com
Substitua:
RESOURCE_KEYWORD: a palavra-chaveorgoufolderRESOURCE_ID: o ID da organização ou da pastaPROJECT_NUMBER: o número do projeto.
Se houver contas de serviço no nível da organização e para envolvidos no projeto, aplique as etapas a ambas.
Para conceder acesso, adicione uma regra de entrada a cada perímetro de serviço de bloqueio:
No console do Google Cloud , acesse a página VPC Service Controls:
Selecione a política de acesso de bloqueio e o perímetro de serviço.
Clique em Editar e em Política de entrada.
Clique em Adicionar regra de entrada e configure o bloco De:
- Em Identidade, selecione Identidades e grupos selecionados.
- Digite o endereço de e-mail da conta de serviço do External Exposure.
- Em Origem, selecione Todas as fontes.
Configure o bloco Para da regra:
- Em Projeto, selecione Todos os projetos.
- Em Operações ou papéis do IAM, selecione Todas as operações.
Clique em Salvar.
Configurar portas personalizadas
Configure até 32 portas personalizadas por projeto para serem verificadas, além das portas de referência:
Console
No console do Google Cloud , acesse a página Ativação de serviços:
Selecione a organização ou o projeto.
Na coluna External Exposure da linha que você quer modificar, clique em Configurações.
No campo Portas personalizadas, insira os números de porta separados por vírgulas.
Clique em Salvar.
gcloud
Para configurar portas personalizadas para verificação, inclua service_config em updateMask e especifique os números inteiros da porta no wrapper de matriz ports no objeto serviceConfig. O exemplo a seguir configura as portas personalizadas 8081 e 8188 para verificação:
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
Substitua:
- QUOTA_PROJECT_ID: o ID do projeto que você usa para gerenciar a cota.
- PROJECT_ID: o ID do projeto em que você quer configurar portas personalizadas.
Configurar módulos de verificação
Configure módulos de verificação específicos para serem ativados ou desativados:
Console
No console do Google Cloud , acesse a página Ativação de serviços:
Selecione a organização ou o projeto.
Na coluna External Exposure da linha que você quer modificar, clique em Configurações.
Na seção Módulos de verificação, marque a caixa de seleção para ativar ou desativar cada módulo, como interfaces expostas, APIs, credenciais fracas ou RCE.
Clique em Salvar.
gcloud
Para ativar ou desativar módulos específicos, inclua modules no
updateMask e especifique o estado de ativação de cada módulo no
objeto modules. O exemplo a seguir ativa EXTERNALLY_EXPOSED_RCE_VULNERABILITY e desativa 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
Substitua:
- QUOTA_PROJECT_ID: o ID do projeto que você usa para gerenciar a cota.
- PROJECT_ID: o ID do projeto em que você quer configurar módulos.
É possível configurar estados de ativação apenas para os seguintes módulos:
EXTERNALLY_EXPOSED_UIEXTERNALLY_EXPOSED_APIEXTERNALLY_EXPOSED_WEAK_CREDENTIALSEXTERNALLY_EXPOSED_RCE_VULNERABILITYEXTERNALLY_EXPOSED_ARBITRARY_DATA_READ
Todos os outros módulos de External Exposure (incluindo banco de dados, carga de trabalho sem servidor e verificações de armazenamento do balanceador de carga) são ativados por padrão e não aparecem na página de configuração de módulos.
Depois que a exposição externa é ativada, verificações em lote contínuas são executadas automaticamente para identificar endereços IP externo expostos, sondar serviços em execução e validar vulnerabilidades ativas.
Investigar descobertas
Depois de ativar o External Exposure, você pode conferir as descobertas no console do Google Cloud . No Security Command Center, acesse a página Visão geral de risco e confira o painel External Exposure. Esse painel fica disponível quando o escopo é definido como uma organização, pasta ou projeto. Para mais informações sobre esse painel, consulte Avaliar o risco rapidamente.
Para buscar descobertas ativas de External Exposure usando a CLI, execute o seguinte comando:
gcloud alpha scc findings list projects/PROJECT_ID \
--location=global \
--filter="state=\"ACTIVE\" AND finding_class=\"EXTERNAL_EXPOSURE\""
Substitua PROJECT_ID pelo ID do projeto em que você quer ver descobertas.
Entender os detalhes das descobertas
As descobertas que pertencem à classe EXTERNAL_EXPOSURE identificam o tipo de risco
e como o recurso é exposto.
Para uma lista das categorias de risco granulares geradas para essas descobertas (como EXTERNALLY_EXPOSED_VM_INSTANCE ou EXTERNALLY_EXPOSED_SERVERLESS_WORKLOAD), consulte Descobertas de External Exposure.
Todas as descobertas de classe EXTERNAL_EXPOSURE incluem os seguintes detalhes:
- Serviço exposto: o aplicativo da Web, o software de servidor ou o protocolo específico identificado na porta ativa.
- Insights de caminho de rede: rastreamento de conectividade do caminho de rede da Internet pública por balanceadores de carga, regras de encaminhamento e serviços de back-end até o recurso de destino.
- Endpoint exposto: o recurso de destino subjacente (por exemplo, uma instância do Compute Engine ou um pod do Google Kubernetes Engine (GKE)).
Se for possível identificar o serviço ou a versão do software exposto, a descoberta também vai listar as vulnerabilidades de CVE que o afetam.
Priorizar descobertas com pontuações de exposição a ataques
As descobertas do External Exposure se integram às simulações de caminhos de ataque para ajudar a fornecer pontos de entrada confirmados e reais no seu ambiente. Quando uma exposição confirmada se conecta a um possível caminho de movimentação lateral (por exemplo, uma conta de serviço exposta que pode acessar um banco de dados sensível do BigQuery ou um bucket do Cloud Storage), a descoberta recebe uma pontuação de exposição a ataques. Use essa pontuação para priorizar a correção de exposições que representam o maior risco para seus recursos de alto valor.
Monitorar métricas de verificação
Para ajudar você a confirmar se a External Exposure está operando com sucesso em todo o ambiente, o console mostra métricas contínuas de verificação em lote:
- Última verificação: o carimbo de data/hora do ciclo de verificação concluído mais recentemente, confirmando que as descobertas refletem uma visão atual dos seus recursos.
- Próxima verificação: o horário de início programado do próximo ciclo de verificação.
- Projetos bem-sucedidos: o número total de projetos analisados com sucesso durante o último ciclo de verificação.
- Projetos excluídos: o número total de projetos que foram ignorados porque as políticas da organização ou as restrições do VPC Service Controls impedem que o scanner acesse os recursos. Quando um projeto é ignorado, o Security Command Center gera uma ou mais descobertas da classe
SCC_ERROR. - Recursos expostos: a contagem total de destinos de recursos únicos identificados como acessíveis ao público.
- Portas públicas expostas: o número total de portas externas ativas distintas detectadas nos recursos expostos.
Identificar o tráfego de verificadores nos seus registros
Quando o External Exposure verifica ativamente seus recursos externos, é possível observar solicitações de verificação recebidas nos registros de serviço, como os registros de solicitação do Cloud Run no Cloud Logging.
Para verificar se as solicitações recebidas são originadas da External Exposure
em vez de terceiros não autorizados, inspecione a entrada de registro no campo
userAgent em httpRequest. Todas as solicitações ativas do
serviço se identificam com o user agent TsunamiSecurityScanner.
O exemplo a seguir mostra uma entrada de registro de solicitação do Cloud Logging gerada quando o External Exposure verifica um serviço exposto do Cloud Run:
{
"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"
}
Desempenho e limitações
- Recursos compatíveis:instâncias do Compute Engine, serviços e controladores de entrada do Google Kubernetes Engine (GKE), bancos de dados, incluindo Cloud SQL e AlloyDB para PostgreSQL, clusters do Serviço Gerenciado para Apache Spark, Cloud Run, Cloud Storage e Gemini Enterprise Agent Platform Workbench.
- Intervalo de atualização:para informações sobre a frequência de verificação da External Exposure, consulte Quando esperar descobertas no Security Command Center.
- Portas verificadas:o External Exposure verifica automaticamente os serviços em execução em um grupo de referência predefinido de portas comuns, agrupadas principalmente por tipo de serviço ou protocolo:
- Administrativo / shell: 22 (SSH), 23 (Telnet), 3389 (RDP)
- Web / HTTP(S): 80, 443, 8000, 8080, 8081, 8443, 8800, 9000, 9443
- Bancos de dados: 1433, 1521, 3306, 5432, 9200, 11211, 27017, 6379
- Kubernetes e gateways de serviço: 6443, 10250, 10255, 15020, 15021
- Outras ferramentas e serviços comuns para desenvolvedores: 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.
- Portas personalizadas: além das portas padrão, é possível configurar até 32 portas personalizadas por projeto para verificação. Para mais informações, consulte Configurar portas personalizadas.
- Insights sobre o caminho de rede: o relatório de descobertas mostra um caminho de rede para um recurso exposto.
- VMs com balanceamento de carga: se várias instâncias de VM estiverem conectadas a um balanceador de carga, os resultados serão informados para apenas uma das instâncias de VM.
- Priorização de descobertas do Cloud Run: como cada
implantação do Cloud Run recebe um URL público por padrão,
as descobertas são avaliadas em relação às políticas do IAM e do Identity-Aware Proxy
(IAP). Se uma carga de trabalho for protegida pelo IAM ou IAP
(retornando uma resposta HTTP 403 não autorizada), a gravidade da descoberta será
reduzida para
LOWpara diminuir o ruído informativo. - Insights de caminho de exposição da rede: as descobertas não incluem insights de caminho de exposição da rede quando a External Exposure está ativada no nível do projeto. Para receber insights sobre o caminho de exposição da rede, ative o serviço no nível da organização ou da pasta.