Relatar secrets em variáveis de ambiente ao Security Command Center

Nesta página, descrevemos como usar o serviço de descoberta da Proteção de dados sensíveis para determinar se os secrets estão presentes nas variáveis de ambiente do Cloud Functions. A proteção de dados sensíveis relata todas as descobertas ao Security Command Center como vulnerabilidades.

Sobre o Security Command Center

O Security Command Center é o serviço centralizado de geração de relatórios de vulnerabilidade e ameaças do Google Cloud. O Security Command Center ajuda a fortalecer sua postura de segurança ao identificar configurações incorretas, vulnerabilidades, observações e ameaças. Ele também fornece recomendações para investigar e corrigir as descobertas.

Por que verificar secrets em variáveis de ambiente

Armazenar secrets, como senhas, em variáveis de ambiente não é uma prática segura, porque as variáveis de ambiente não são criptografadas. Os valores delas podem ser coletados e expostos em vários sistemas, como registros. Recomendamos que você use o Secret Manager para armazenar seus secrets. Para mais informações, consulte Configurar secrets na documentação do Cloud Functions.

Como funciona

Para executar a descoberta de secrets, crie uma configuração de verificação de descoberta no nível da organização ou do projeto. Dentro do escopo selecionado, a proteção de dados sensíveis verifica periodicamente se há secrets no Cloud Functions em variáveis de ambiente de build e ambiente de execução.

Se um secret estiver presente em uma variável de ambiente, a proteção de dados sensíveis enviará uma descoberta de vulnerabilidade Secrets in environment variables para o Security Command Center. Nenhum perfil de dados é gerado. Todas as descobertas estão disponíveis apenas pelo Security Command Center.

A proteção de dados sensíveis gera no máximo uma descoberta por função. Por exemplo, se secrets forem encontrados em duas variáveis de ambiente na mesma função, somente uma descoberta será gerada no Security Command Center.

No Security Command Center, é possível ver as descobertas de Secrets in environment variables ao fazer o seguinte:

As descobertas geradas na lista de descobertas do Security Command Center no console do Google Cloud

O JSON a seguir mostra um exemplo de uma descoberta Secrets in environment variables. Este exemplo mostra apenas os campos relevantes para esse recurso. Ele não fornece uma lista completa de campos.

Secrets em variáveis de ambiente

{
  "finding": {
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "category": "SECRETS_IN_ENVIRONMENT_VARIABLES",
    "compliances": [
      {
        "standard": "cis",
        "version": "1.3",
        "ids": [
          "1.18"
        ]
      }
    ],
    "createTime": "DATE_TIME",
    "description": "The affected resource is storing credentials or other secret information in its environment variables. This is a security vulnerability because environment variables are stored unencrypted, and accessible to all users who have access to the code.",
    "eventTime": "DATE_TIME",
    "findingClass": "VULNERABILITY",
    "findingProviderId": "organizations/ORGANIZATION_ID/firstPartyFindingProviders/dlp",
    "mute": "MUTE_STATUS",
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "parentDisplayName": "Sensitive Data Protection",
    "resourceName": "//cloudfunctions.googleapis.com/projects/PROJECT_ID/locations/REGION/functions/FUNCTION_ID",
  },
  "resource": {
    "name": "//cloudfunctions.googleapis.com/projects/PROJECT_ID/locations/REGION/functions/FUNCTION_ID",
    "display_name": "projects/PROJECT_ID/locations/REGION/functions/FUNCTION_ID",
    "type": "google.cloudfunctions.CloudFunction",
    "project_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "project_display_name": "PROJECT_DISPLAY_NAME",
    "parent_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "parent_display_name": "PARENT_DISPLAY_NAME"
  }
}
    

Como encontrar a latência de geração

A partir do momento em que você ativa a descoberta de secrets na proteção de dados confidenciais, pode levar até 12 horas para a verificação inicial de variáveis de ambiente ser concluída. Em seguida, a proteção de dados confidenciais verifica as variáveis de ambiente a cada 24 horas. Na prática, as verificações podem ser executadas com mais frequência do que isso.

Tipos de secrets reportados

Exemplos de secrets são senhas, tokens de autenticação e credenciais do Google Cloud. Para ver uma lista completa de tipos de secrets que a proteção de dados sensíveis verifica nesse recurso, consulte Credenciais e secrets.

Recursos suportados

Para a descoberta de secrets, a proteção de dados sensíveis é compatível com o Cloud Functions (1a e 2a geração).

Preços

Esse recurso não tem cobranças de proteção de dados sensíveis. Cobranças do Security Command Center podem ser aplicadas, dependendo do nível de serviço: Standard ou Premium. A proteção de dados sensíveis funciona com o Security Command Center nos níveis Standard e Premium.

Residência dos dados

Na primeira vez que criar uma configuração de verificação, especifique onde você quer que a proteção de dados sensíveis armazene-a. Todas as configurações de verificação subsequentes criadas são armazenadas na mesma região. A proteção de dados sensíveis exporta os metadados do Cloud Functions para a região onde a configuração de verificação está armazenada, mas a função em si não é exportada.

Se a proteção de dados sensíveis detectar secrets em variáveis de ambiente, as descobertas serão enviadas ao Security Command Center e estarão sujeitas aos processos de processamento de dados.

Papéis do IAM obrigatórios

Para realizar a descoberta de secrets, você precisa dos papéis do Identity and Access Management necessários para criar perfis de dados:

Além disso, você precisa dos papéis apropriados para trabalhar com as descobertas do Security Command Center. Para mais informações, consulte IAM para ativações no nível da organização na documentação do Security Command Center.

Antes de começar

  1. Verifique o nível de ativação do Security Command Center para sua organização. Para enviar perfis de dados ao Security Command Center, é necessário ativar o Security Command Center no nível da organização, no nível Standard ou Premium. Para mais informações, consulte Ativar o Security Command Center para uma organização.

    Se o Security Command Center for ativado apenas no nível do projeto, as descobertas da proteção de dados sensíveis não serão exibidas no Security Command Center.

  2. No Security Command Center, verifique se a proteção de dados sensíveis está ativada como um serviço integrado. Para mais informações, consulte Adicionar um serviço integrado do Google Cloud.

Configurar a descoberta de secrets no nível da organização

Siga estas etapas se quiser ativar a descoberta de secrets em toda a organização. Para a descoberta no nível do projeto, consulte Configurar a descoberta de secrets no nível do projeto.

Se você não tiver o papel Administrador da organização (roles/resourcemanager.organizationAdmin) ou Administrador de segurança (roles/iam.securityAdmin), ainda poderá criar uma configuração de verificação. No entanto, depois de criar a configuração de verificação, alguém com um desses papéis precisa conceder acesso de descoberta ao seu agente de serviço.

  1. Acesse a página Criar configuração de verificação.

    Acessar "Criar configuração de verificação"

  2. Acesse sua organização. Na barra de ferramentas, clique no seletor de projetos e selecione a organização.

    Após cada etapa nesta página, clique em Continuar.

  3. Em Selecionar um tipo de descoberta, selecione Vulnerabilidades de secrets/credenciais.

  4. Em Selecionar escopo, escolha se você quer verificar toda a organização.

  5. Em Gerenciar o contêiner e o faturamento do agente de serviço, especifique o projeto a ser usado como um contêiner do agente de serviço. É possível que a proteção de dados sensíveis crie automaticamente um novo projeto ou escolha um atual.

    • Se você não tiver um projeto para usar como contêiner do agente de serviço, selecione Criar um novo projeto como um contêiner do agente de serviço. A proteção de dados confidenciais cria um novo projeto chamado Contêiner do agente de serviço do DLP. O agente de serviço neste projeto será usado para autenticação na proteção de dados sensíveis e em outras APIs. O sistema solicita que você selecione a conta a ser cobrada por todas as operações faturáveis relacionadas a este projeto, incluindo operações não relacionadas à descoberta.

      Se você não tiver as permissões necessárias para criar projetos, a opção Criar um novo projeto como um contêiner do agente de serviço será desativada. Nesse caso, é necessário selecionar um projeto atual ou pedir ao administrador do Google Cloud para conceder a você o papel de Criador de projetos (roles/resourcemanager.projectCreator).

    • Se você tiver um contêiner do agente de serviço que queira reutilizar, selecione Selecionar um contêiner do agente de serviço atual. Em seguida, clique em Procurar para selecionar o ID do projeto do contêiner do agente de serviço.

  6. Em Definir o local para armazenar a configuração, selecione a região em que você quer armazenar essa configuração de verificação. Todas as configurações de verificação criadas posteriormente também serão armazenadas nesse local. Para informações sobre considerações de residência de dados, consulte Residência de dados nesta página.

  7. Opcional: se você não quiser que a verificação comece logo depois de criar a configuração, selecione Criar verificação no modo pausado.

    Essa opção é útil nos seguintes casos:

    • Seu administrador do Google Cloud ainda precisa conceder acesso de descoberta ao agente de serviço.
    • Você quer criar várias configurações de verificação e quer que algumas configurações substituam outras.
  8. Clique em Criar.

A proteção de dados confidenciais começa a verificar suas variáveis de ambiente do Cloud Functions logo depois que você cria uma configuração de verificação ou retoma uma configuração pausada. Para informações sobre quanto tempo leva para as descobertas aparecerem no Security Command Center, consulte Como encontrar a latência de geração nesta página.

Se você não tiver o papel Administrador da organização (roles/resourcemanager.organizationAdmin) ou Administrador de segurança (roles/iam.securityAdmin), alguém com um desses papéis precisará conceder acesso de descoberta ao seu agente de serviço antes que a descoberta possa começar.

Configurar a descoberta de secrets no nível do projeto

Siga estas etapas se quiser ativar a descoberta de secrets em um único projeto. Para a descoberta de secrets da organização, consulte Configurar a descoberta de secrets no nível da organização.

  1. Acesse a página Criar configuração de verificação.

    Acessar "Criar configuração de verificação"

  2. Acesse seu projeto. Na barra de ferramentas, clique no seletor de projetos e selecione seu projeto.

    Após cada etapa nesta página, clique em Continuar.

  3. Em Selecionar um tipo de descoberta, selecione Vulnerabilidades de secrets/credenciais.

  4. Em Selecionar escopo, verifique se Verificar todo o projeto está selecionado. Se ele não estiver selecionado, verifique se você está na visualização do projeto.

  5. Em Definir o local para armazenar a configuração, selecione a região em que você quer armazenar essa configuração de verificação. Todas as configurações de verificação criadas posteriormente também serão armazenadas nesse local. Para informações sobre considerações de residência de dados, consulte Residência de dados nesta página.

  6. Clique em Criar.

A proteção de dados confidenciais começa a verificar suas variáveis de ambiente do Cloud Functions logo depois que você cria uma configuração de verificação ou retoma uma configuração pausada. Para informações sobre quanto tempo leva para as descobertas aparecerem no Security Command Center, consulte Como encontrar a latência de geração nesta página.

Consultar descobertas de Secrets in environment variables

Veja a seguir exemplos de consultas que podem ser usadas para encontrar descobertas de Secrets in environment variables no Security Command Center. É possível inserir essas consultas no campo Editor de consultas. Para saber mais sobre o editor de consultas, acesse Editar uma consulta de descobertas no painel do Security Command Center.

Listar todas as Secrets in environment variables descobertas

state="ACTIVE"
AND NOT mute="MUTED"
AND category="SECRETS_IN_ENVIRONMENT_VARIABLES"

Listar todas as descobertas de Secrets in environment variables de um projeto específico

state="ACTIVE"
AND NOT mute="MUTED"
AND category="SECRETS_IN_ENVIRONMENT_VARIABLES"
AND resource.project_name="//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"

Substitua:

  • PROJECT_NUMBER: o ID numérico do projeto que você quer consultar