Silenciar as descobertas no Security Command Center

Nesta página, explicamos como reduzir o volume de descobertas recebidas no Security Command Center silenciando as descobertas.

A desativação de uma descoberta a oculta da visualização padrão das suas descobertas no Console do Google Cloud. É possível ignorar descobertas manual ou programaticamente e criar filtros para silenciar automaticamente as descobertas atuais e futuras com base nos critérios especificados por você.

Os serviços de detecção do Security Command Center fornecem avaliações de segurança amplas da implantação do Google Cloud, mas talvez você descubra que determinadas descobertas não são apropriadas ou relevantes para sua organização ou projetos. Um grande volume de descobertas também pode dificultar a identificação e a correção dos riscos mais críticos pelos analistas de segurança. As descobertas de silenciamento economizam tempo de análise ou resposta a descobertas de segurança para recursos isolados ou que se enquadram em parâmetros comerciais aceitáveis.

A desativação de descobertas tem várias vantagens em relação à desativação de detectores:

  • Você pode criar filtros personalizados para ajustar quais descobertas são silenciadas.
  • Você pode usar regras de silenciamento para silenciar descobertas temporariamente ou indefinidamente.
  • Ignorar as descobertas não impede que os recursos subjacentes sejam verificados. As descobertas ainda serão geradas, mas permanecerão ocultas até que você decida visualizá-las.

Permissões

Para usar as descobertas de silenciamento, você precisa de um dos seguintes papéis de gerenciamento de identidade e acesso (IAM) na organização, pasta ou projeto } nível:

  • Ver regras de silenciamento:
    • Leitor administrador da Central de segurança (roles/securitycenter.adminViewer)
    • Leitor de configurações da Central de segurança (roles/securitycenter.settingsViewer)
    • Leitor de configurações de desativação de som da Central de segurança (roles/securitycenter.muteConfigsViewer)
  • Veja, crie, atualize e exclua regras de silenciamento:
    • Administrador da Central de segurança (roles/securitycenter.admin)
    • Editor administrador da Central de segurança (roles/securitycenter.adminEditor)
    • Editor de configurações da Central de segurança (roles/securitycenter.settingsEditor)
    • Editor de configurações de desativação de sons da Central de segurança (roles/securitycenter.muteConfigsEditor)
  • Silenciar descobertas manualmente:
    • Editor de descobertas da Central de segurança (roles/securitycenter.findingsEditor)

Também é possível criar e conceder papéis personalizados com algumas ou todas as seguintes permissões:

  • Permissões de leitura da regra de silenciamento
    • securitycenter.muteconfigs.get
    • securitycenter.muteconfigs.list
  • Permissões de gravação da regra de silenciamento
    • securitycenter.muteconfigs.create
    • securitycenter.muteconfigs.update
    • securitycenter.muteconfigs.delete
  • Como encontrar permissões de gravação
    • securitycenter.findings.setMute
    • securitycenter.findings.bulkMuteUpdate

O recurso de silenciar descobertas adere aos papéis concedidos no nível da organização, da pasta ou do projeto. É possível silenciar descobertas em pastas ou projetos específicos e restringir a capacidade de outras pessoas de ignorar descobertas com base no acesso concedido a elas. Por exemplo, se você tiver acesso a um único projeto, só será possível silenciar as descobertas nesse projeto. Se você tiver acesso a uma pasta, poderá ignorar as descobertas em qualquer subpasta ou projeto dentro dela.

Para saber mais sobre os papéis do Security Command Center, consulte Controle de acesso.

Criar e gerenciar regras de silenciamento

As regras de silenciamento são configurações do Security Command Center que usam filtros criados para ignorar automaticamente as descobertas atuais e futuras com base nos critérios especificados por você. É possível criar filtros com regras de silenciamento estáticas ou dinâmicas.

As regras de silenciamento estáticas silenciam as descobertas futuras indefinidamente. As regras de desativação dinâmica silenciam descobertas futuras e atuais temporariamente até uma data especificada ou indefinidamente até que uma descoberta não corresponda mais à configuração.

Tipos de regras de silenciamento

O Security Command Center oferece suporte a configurações de regras de silenciamento estáticas e dinâmicas. Embora seja possível usar regras de silenciamento estáticas e dinâmicas simultaneamente, não recomendamos isso. As regras de silenciamento estáticas substituem as regras de silenciamento dinâmicas quando são aplicadas à mesma detecção. Como resultado, as regras de silenciamento dinâmico não funcionam como esperado, o que pode criar confusão ao gerenciar suas descobertas. Portanto, recomendamos que você use um tipo de regra de silenciamento exclusivamente.

A menos que você já esteja usando regras de desativação estática, recomendamos usar exclusivamente regras de desativação dinâmica, porque elas oferecem mais flexibilidade.

A tabela a seguir fornece uma comparação geral dos dois tipos de regras de silenciamento. Para mais detalhes, consulte Regras de silenciamento estáticas e Regras de silenciando dinâmico.

Regras de silenciamento estáticas Regras de silenciamento dinâmicas
Agir indefinidamente com base nas descobertas. Pode agir em uma descoberta temporariamente com um tempo de expiração ou indefinidamente se nenhum tempo de expiração for definido.
Não se aplica a descobertas atuais. Aplique a descobertas novas e existentes.
têm precedência sobre as regras de silenciamento dinâmicas. Tem prioridade mais baixa e são substituídas por regras de silenciamento estáticas quando ambos os tipos se aplicam a uma descoberta.

Regras de silenciamento estáticas

  • As regras de silenciamento estáticas são aplicadas indefinidamente. Quando uma descoberta corresponde à configuração de silenciamento estático, o Security Command Center define automaticamente a propriedade mute da descoberta como MUTED até que você a mude manualmente.
  • As regras de desativação de som estáticas não afetam as descobertas atuais. Elas só se aplicam a achados criados ou atualizados após a definição da regra. Se você também quiser silenciar descobertas existentes semelhantes, use os mesmos filtros para descobertas em massa de descobertas.
  • As regras de silenciamento estáticas têm precedência sobre as dinâmicas. Portanto, todas as novas encontradas que correspondem a uma regra de silenciamento estático definida são consideradas silenciadas, mesmo que também correspondam a uma regra de silenciamento dinâmico definida.

Regras de silenciamento dinâmicas

  • As regras de silenciamento dinâmico podem agir em uma descoberta temporariamente com um tempo de expiração ou indefinidamente se nenhum tempo de expiração for definido. Quando uma descoberta existente ou recém- criada corresponde à sua configuração de silenciamento dinâmico, o Security Command Center define automaticamente a propriedade mute da descoberta como MUTED até a data de validade especificada ou até que haja mudanças na descoberta ou na própria configuração. Quando uma regra de silenciamento dinâmico expira, o Security Command Center remove a regra da descoberta. Se a descoberta não corresponder a nenhuma outra regra de desativação de som dinâmica, a propriedade mute será redefinida automaticamente para UNDEFINED.
  • As regras de desativação de som dinâmicas são aplicadas automaticamente às descobertas atuais que correspondem à sua configuração, bem como às descobertas recém-criadas ou atualizadas.
  • As regras de desativação dinâmica têm prioridade mais baixa e são substituídas por regras de desativação estática quando ambos os tipos se aplicam a uma descoberta.

Recomendamos usar apenas as regras de silenciamento dinâmico. A capacidade de silenciar temporariamente e reativar automaticamente as descobertas torna as regras de silenciamento dinâmicas uma opção mais flexível do que as estáticas.

Se você estiver usando regras de silenciamento estático para reduzir o número de descobertas que analisou manualmente e quiser migrar para regras de silenciamento dinâmico, consulte Migrar de regras de silenciamento estático para dinâmico.

Escopo das regras de silenciamento

Considere o escopo de uma regra de silenciamento ao criar filtros.

Por exemplo, se um filtro for gravado para silenciar as descobertas em Project A, mas o próprio filtro for criado em Project B, o filtro poderá não corresponder a nenhuma descoberta.

Da mesma forma, se a residência de dados estiver ativada, o escopo de uma regra de silenciamento será limitado ao local do Security Command Center em que a regra de silenciamento for criada. Por exemplo, se você criar uma regra de silenciamento no local Estados Unidos (us), a regra não vai silenciar as descobertas armazenadas nos locais União Europeia (eu) ou Global (global). Para mais informações sobre residência de dados e regras de silenciamento, consulte Regras de silenciamento, exportações contínuas e residência de dados.

Para mais informações sobre como criar filtros, consulte Como filtrar notificações.

Restrições da regra de silenciamento

As regras de silenciamento não são compatíveis com todas as propriedades de descoberta. Para conferir uma lista de propriedades que não são compatíveis com as regras de silenciamento, consulte Propriedades de descoberta não compatíveis com regras de silenciamento.

É possível criar, visualizar, atualizar e excluir regras de silenciamento com base no escopo dos papéis do IAM. Com os papéis no nível da organização, você vê regras de silenciamento para todas as pastas e projetos dentro da organização. Se você tiver papéis no nível da pasta, poderá acessar e gerenciar regras de silenciamento para pastas específicas e todas as subpastas e projetos dentro dessas pastas. Os papéis no nível do projeto permitem gerenciar regras de silenciamento em projetos específicos.

O Security Command Center Premium é compatível com a concessão de papéis nos níveis da organização, pasta e projeto. O Security Command Center Standard aceita apenas papéis no nível da organização. Para mais informações, consulte Controle de acesso.

Residência de dados e regras de silenciamento

Se a residência de dados estiver ativada, as configurações que definem regras de silenciamento (recursos muteConfig) estarão sujeitas ao controle de residência de dados e serão armazenadas em um local do Security Command Center selecionado.

Para aplicar uma regra de silenciamento às descobertas em um local do Security Command Center, crie a regra de silenciamento no mesmo local das descobertas a que ela se aplica.

Como os filtros usados nas regras de silenciamento podem conter dados sujeitos a controles de residência, especifique o local correto antes de criar as regras. O Security Command Center não restringe o local em que você cria regras de silenciamento ou exportações de streaming.

As regras de silenciamento são armazenadas apenas no local em que são criadas e não podem ser visualizadas ou editadas em outros locais.

Depois de criar uma regra de desativação, não é possível mudar o local dela. Para mudar o local, exclua a regra de silenciamento e recrie-a no novo local.

Para conferir as regras de silenciamento no console do Google Cloud, primeiro é necessário definir a visualização do console do Google Cloud para o local em que elas foram criadas.

As mesmas regras se aplicam à representação da API de uma regra de silenciamento, MuteConfig.

Para recuperar um MuteConfig usando chamadas de API, especifique o local no nome completo do recurso do MuteConfig. Exemplo:

GET https://securitycenter.googleapis.com/v2/organizations/123/locations/eu/muteConfigs/my-mute-rule-01

Da mesma forma, para recuperar um muteConfig usando a CLI gcloud, especifique o local usando a flag --location. Exemplo:

gcloud scc muteconfigs list --organization=123 --location=us

Criar uma regra para ignorar

Sua organização pode criar no máximo 1.000 regras de silenciamento.

É possível criar regras de silenciamento estáticas ou dinâmicas usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center. Recomendamos o uso de regras de silenciamento dinâmicas exclusivamente nas configurações de regras de silenciamento porque elas são mais flexíveis do que as estáticas. Para uma comparação dos tipos de regras de silenciamento, consulte Tipos de regras de silenciamento.

Para conferir um exemplo de código que cria uma regra de silenciamento, consulte Criar uma regra de silenciamento.

Para criar uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. Clique em Opções de silenciamento e selecione Gerenciar regras de silenciamento.

  5. Clique em Criar regra de silenciamento e selecione Regra de silenciamento dinâmica ou Regra de silenciamento estática. Para mais informações sobre os tipos de regras de silenciamento, consulte Tipos de regras de silenciamento.

  6. Digite um ID da regra de silenciamento. Esse valor é obrigatório.

  7. Insira uma descrição de regra de silenciamento que forneça contexto para explicar por que as descobertas são silenciadas. Esse valor é opcional, mas recomendado.

    Recurso pai indica o escopo em que a regra de silenciamento será criada e aplicada.

  8. Se você estiver criando uma regra de silenciamento estática ou dinâmica sem vencimento, siga para a próxima etapa. Se você estiver criando uma regra de desativação dinâmica para desativar temporariamente as descobertas, siga estas etapas:

    1. Marque a caixa de seleção Silenciar descobertas correspondentes temporariamente.
    2. Selecione ou insira a data de validade da regra de silenciamento dinâmico. Esse valor indica por quanto tempo a regra vai silenciar as descobertas correspondentes.
  9. No campo Consulta de descobertas, crie as instruções de consulta clicando em Adicionar filtro. Como alternativa, é possível digitar as instruções de consulta manualmente.

    A caixa de diálogo Selecionar filtro permite escolher os atributos e valores de descoberta suportados.

    1. Selecione um atributo de descoberta ou digite um nome na caixa Pesquisar atributos de descoberta. Uma lista dos subatributos disponíveis será exibida.
    2. Selecione um subatributo. Um campo de seleção é exibido para que você possa criar a instrução de consulta usando o subatributo selecionado, um operador de consulta e um ou mais valores para o subatributo.
    3. Selecione o operador e um ou mais valores para o subatributo no painel. Para mais informações sobre os operadores e as funções de consulta que eles usam, consulte Operadores de consulta no menu "Adicionar filtros".
    4. Clique em Aplicar.

      A caixa de diálogo será fechada, e a consulta será atualizada.

    5. Repita até que a consulta de descobertas contenha todos os atributos que você quer.
  10. Verifique a precisão do filtro. Para fazer alterações, exclua ou adicione propriedades e filtre os valores conforme necessário.

  11. Clique em Visualizar descobertas correspondentes.

    Uma tabela mostra descobertas que correspondem à sua consulta.

  12. Clique em Save.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para criar regras de silenciamento, execute o comando gcloud scc muteconfigs create:

    gcloud scc muteconfigs create CONFIG_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION
      --description="RULE_DESCRIPTION" \
      --filter="FILTER" \
      --type=MUTE_TYPE \
      --expiry-time=TIMESTAMP

    Substitua:

    • CONFIG_ID: o nome da regra de silenciamento. O ID precisa usar caracteres alfanuméricos e hifens e ter entre 1 e 63 caracteres.
    • PARENT: o escopo na hierarquia de recursos a que a regra de silenciamento se aplica, organization, folder ou project.
    • PARENT_ID: o ID numérico da organização, pasta ou projeto pai ou o ID alfanumérico do projeto pai.
    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que uma regra de desativação será criada. Se a residência de dados não estiver ativada, use o valor global.
    • RULE_DESCRIPTION: uma descrição da regra de silenciamento de no máximo 1.024 caracteres.
    • FILTER: a expressão definida para filtrar descobertas. Por exemplo, para desativar descobertas OPEN_FIREWALL, seu filtro pode ser FILTER="category=\"OPEN_FIREWALL\"".
    • MUTE_TYPE: o tipo de regra de silenciamento que você quer criar. Os tipos de regra de desativação válidos são DYNAMIC e STATIC. O tipo de regra de desativação de som é definido como STATIC por padrão. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.
    • TIMESTAMP: só se aplica se você estiver criando uma regra de silenciamento dinâmica. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor precisa ser definido para pelo menos um dia no futuro, ou a solicitação será rejeitada. Para informações sobre formatos de tempo, consulte gcloud topic datetimes. Quando uma regra de desativação dinâmica expira, ela é removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico aja indefinidamente em descobertas correspondentes, omita esse campo.

    A resposta inclui o ID da regra de desativação de som, que pode ser usado para conferir, atualizar e excluir regras de desativação de som, conforme descrito em Gerenciar regras de desativação de som.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// createMuteRule: Creates a mute configuration under a given scope that will mute
// all new findings that match a given filter.
// Existing findings will not be muted.
func createMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// parent: Use any one of the following options:
	//             - organizations/{organization_id}
	//             - folders/{folder_id}
	//             - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	// muteConfigId: Set a random id; max of 63 chars.
	// muteConfigId := "random-mute-id-" + uuid.New().String()
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	muteConfig := &securitycenterpb.MuteConfig{
		Description: "Mute low-medium IAM grants excluding 'compute' ",
		// Set mute rule(s).
		// To construct mute rules and for supported properties, see:
		// https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
		Filter: "severity=\"LOW\" OR severity=\"MEDIUM\" AND " +
			"category=\"Persistence: IAM Anomalous Grant\" AND " +
			"-resource.type:\"compute\"",
		Type: securitycenterpb.MuteConfig_STATIC,
	}

	req := &securitycenterpb.CreateMuteConfigRequest{
		Parent:       parent,
		MuteConfigId: muteConfigId,
		MuteConfig:   muteConfig,
	}

	response, err := client.CreateMuteConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to create mute rule: %w", err)
	}
	fmt.Fprintf(w, "Mute rule created successfully: %s", response.Name)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.LocationName;
import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.MuteConfig.MuteConfigType;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;
import java.util.UUID;

public class CreateMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the following variables.
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config.
    String location = "global";

    // muteConfigId: Set a random id; max of 63 chars.
    String muteConfigId = "random-mute-id-" + UUID.randomUUID();

    createMuteRule(projectId, location, muteConfigId);
  }

  // Creates a mute configuration in a project under a given location.
  public static void createMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      MuteConfig muteConfig =
          MuteConfig.newBuilder()
              .setDescription("Mute low-medium IAM grants excluding 'compute' ")
              // Set mute rule(s).
              // To construct mute rules and for supported properties, see:
              // https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
              .setFilter(
                  "severity=\"LOW\" OR severity=\"MEDIUM\" AND "
                      + "category=\"Persistence: IAM Anomalous Grant\" AND "
                      + "-resource.type:\"compute\"")
              .setType(MuteConfigType.STATIC)
              .build();

      // You can also create mute rules in an organization/ folder.
      // Construct the parameters according to the parent resource.
      //  * Organization -> client.createMuteConfig(OrganizationLocationName.of(...
      //  * Folder -> client.createMuteConfig(FolderLocationName.of(...
      MuteConfig response = client.createMuteConfig(
          LocationName.of(projectId, location), muteConfig, muteConfigId);
      System.out.println("Mute rule created successfully: " + response.getName());
    }
  }
}

Python

def create_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
    """
    Creates a mute configuration under a given scope that will mute
    all new findings that match a given filter.
    Existing findings will NOT BE muted.
    Args:
        parent_path: use any one of the following options:
                     - organizations/{organization_id}
                     - folders/{folder_id}
                     - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
        Dict: returns the mute rule details
    """

    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    mute_config = securitycenter_v2.MuteConfig()
    mute_config.description = "Mute low-medium IAM grants excluding 'compute' "
    # Set mute rule(s).
    # To construct mute rules and for supported properties, see:
    # https://cloud.google.com/security-command-center/docs/how-to-mute-findings#create_mute_rules
    mute_config.filter = (
        'severity="LOW" OR severity="MEDIUM" AND '
        'category="Persistence: IAM Anomalous Grant" AND '
        '-resource.type:"compute"'
    )
    mute_config.type = "STATIC"

    request = securitycenter_v2.CreateMuteConfigRequest()
    request.parent = parent_path + "/locations/" + location_id
    request.mute_config_id = mute_config_id
    request.mute_config = mute_config

    mute_config = client.create_mute_config(request=request)
    print(f"Mute rule created successfully: {mute_config.name}")
    return mute_config

REST

Na API Security Command Center, use o método muteConfigs.create para criar uma regra de desativação. O corpo da solicitação é uma instância de MuteConfig:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs?muteConfigId=MUTE_CONFIG_ID -d

  {
    "description": "RULE_DESCRIPTION",
    "filter": "FILTER",
    "type": "MUTE_TYPE",
    "expiryTime": "TIMESTAMP"
  }

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que uma regra de desativação será criada. Se a residência de dados não estiver ativada, use o valor global
  • MUTE_CONFIG_ID: o nome da regra de silenciamento (entre 1 e 63 caracteres).
  • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máximo de 1.024 caracteres).
  • FILTER: a expressão definida para filtrar descobertas

    Por exemplo, para silenciar descobertas OPEN_FIREWALL, seu filtro pode ser "category=\"OPEN_FIREWALL\"".

  • MUTE_TYPE: o tipo de regra de silenciamento que você quer criar. Os tipos de regra de desativação de som válidos são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.

  • TIMESTAMP: só se aplica se você estiver criando uma regra de silenciamento dinâmica. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor precisa ser definido para pelo menos um dia no futuro, ou a solicitação será rejeitada. Para informações sobre formatos de tempo, consulte gcloud topic datetimes. Quando uma regra de desativação dinâmica expira, ela é removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico aja indefinidamente em descobertas correspondentes, omita esse campo.

A resposta inclui o ID de configuração de desativação de som que pode ser usado para ver, atualizar e excluir regras de desativação de som, conforme descrito em Gerenciar regras de desativação de som.

Novas descobertas que correspondem exatamente ao filtro estão ocultas, e o atributo mute para as descobertas é definido como MUTED.

Não há suporte para as propriedades de descoberta nas regras de silenciamento

As regras de silenciamento não são compatíveis com todas as propriedades de descoberta em filtros. As propriedades a seguir não são compatíveis com filtros de regras de silenciamento.

  • createTime
  • eventTime
  • mute
  • mute_initiator
  • mute_update_time
  • name
  • parent
  • security_marks
  • source_properties
  • state

Listar regras de silenciamento

É possível listar as regras de desativação em uma organização, pasta ou projeto usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Sua capacidade de listar regras de silenciamento para um determinado escopo depende das permissões concedidas aos seus papéis do IAM.

Se a residência de dados estiver ativada para o Security Command Center, o escopo do comando de lista também será limitado ao local do Security Command Center selecionado.

Para conferir um exemplo de código que lista regras de silenciamento, consulte Listar regras de silenciamento.

Para listar as regras de silenciamento de uma organização, pasta ou projeto, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. Na seção Regras de silenciamento, você encontra detalhes sobre as regras de silenciamento ativas, incluindo o seguinte:

    • Nome: ID da regra de silenciamento
    • Recurso pai: o recurso no qual a regra para silenciar fica.
    • Descrição: a descrição da regra de silenciamento, se disponível
    • Última atualização feita por: o principal que atualizou a regra pela última vez.
    • Última atualização: a data e a hora em que a regra foi atualizada pela última vez

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para listar regras de silenciamento, execute o comando gcloud scc muteconfigs list:

    gcloud scc muteconfigs list --PARENT=PARENT_ID \
      --location=LOCATION

    Substitua:

    • PARENT: o organization, folder ou project pai para listar as regras de silenciamento
    • PARENT_ID: o ID da organização, pasta ou projeto pai
    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que as regras de silenciamento serão listadas. Se a residência de dados não estiver ativada, use o valor global

Go

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
	"google.golang.org/api/iterator"
)

// listMuteRules lists mute configs at the organization level will return all the configs
// at the org, folder, and project levels.
// Similarly, listing configs at folder level will list all the configs
// at the folder and project levels.
func listMuteRules(w io.Writer, parent string) error {
	// Use any one of the following resource paths to list mute configurations:
	//         - organizations/{organization_id}
	//         - folders/{folder_id}
	//         - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.ListMuteConfigsRequest{Parent: parent}

	// List all mute configs present in the resource.
	it := client.ListMuteConfigs(ctx, req)
	for {
		muteconfig, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			return fmt.Errorf("it.Next: %w", err)
		}
		fmt.Fprintf(w, "Muteconfig Name: %s, ", muteconfig.Name)
	}
	return nil
}

Java


import com.google.cloud.securitycenter.v2.ListMuteConfigsRequest;
import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;

public class ListMuteRules {

  public static void main(String[] args) throws IOException {
    // TODO: Replace variables enclosed within {}
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location to list mute configs.
    String location = "global";

    listMuteRules(projectId, location);
  }

  // Lists all mute rules present under the resource type in the given location.
  public static void listMuteRules(String projectId, String location) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      // Parent can also be one of:
      //  * "organizations/{org_id}/locations/{location}"
      //  * "folders/{folder_id}/locations/{location}"
      ListMuteConfigsRequest listMuteConfigsRequest = ListMuteConfigsRequest.newBuilder()
          .setParent(String.format("projects/%s/locations/%s", projectId, location))
          .build();

      // List all mute configs present in the resource.
      for (MuteConfig muteConfig : client.listMuteConfigs(listMuteConfigsRequest).iterateAll()) {
        System.out.println(muteConfig.getName());
      }
    }
  }
}

Python

def list_mute_rules(parent: str, location_id: str) -> Dict:
    """
    Listing mute configs at organization level will return all the configs
    at the org, folder and project levels.
    Similarly, listing configs at folder level will list all the configs
    at the folder and project levels.
    Args:
        parent: Use any one of the following resource paths to list mute configurations:
                - organizations/{organization_id}
                - folders/{folder_id}
                - projects/{project_id}
        location_id: Gcp location id; example: 'global'
    Returns:
         Dict: returns the mute rule details
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.ListMuteConfigsRequest()
    request.parent = parent + "/locations/" + location_id
    response = client.list_mute_configs(request)
    # List all Mute Configs present in the resource.
    for mute_config in response:
        print(mute_config.name)
    return response

REST

Na API Security Command Center, use o método muteConfigs.list para listar as regras de silenciamento:

GET https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que as regras de silenciamento serão listadas. Se a residência de dados não estiver ativada, use o valor global

A resposta inclui os nomes, as descrições e os códigos de configuração de desativação de som das regras de silenciamento.

Conferir a configuração de uma regra de silenciamento

É possível conferir a configuração de uma regra de desativação usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Para conferir um exemplo de código que recupera uma configuração de regra de silenciamento, consulte Conferir uma regra de silenciamento.

Para conferir a configuração de uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. Na seção Ignorar regras, você vê uma lista das regras de silenciamento.

  5. Clique no nome da regra que você quer ver.

    Uma página é aberta com a configuração da regra de silenciamento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para conferir a configuração de uma regra de silenciamento, execute o comando gcloud scc muteconfigs get:

    gcloud scc muteconfigs get MUTE_CONFIG_ID \
      --PARENT=PARENT_ID --location=LOCATION

    Substitua:

    • MUTE_CONFIG_ID: o ID da regra de desativação de som
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project);
    • PARENT_ID: o ID da organização, pasta ou projeto
    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a configuração da regra de desativação será mostrada. Se a residência de dados não estiver ativada, use o valor global

Go

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// getMuteRule retrieves a mute configuration given its resource name.
func getMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// Use any one of the following resource paths to get mute configuration:
	//         - organizations/{organization_id}
	//         - folders/{folder_id}
	//         - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	//
	// Name of the mute config to retrieve.
	// muteConfigId := "mute-config-id"
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.GetMuteConfigRequest{
		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
	}

	muteconfig, err := client.GetMuteConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("Failed to retrieve Muteconfig: %w", err)
	}
	fmt.Fprintf(w, "Muteconfig Name: %s ", muteconfig.Name)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.MuteConfigName;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;

public class GetMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the following variables
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config. If the mute config was
    // created with v1 API, it can be accessed with "global".
    String location = "global";

    // muteConfigId: Name of the mute config to retrieve.
    String muteConfigId = "mute-config-id";

    getMuteRule(projectId, location, muteConfigId);
  }

  // Retrieves a mute configuration given its resource name.
  public static MuteConfig getMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate `MuteConfigName` methods depending on the parent type.
      //  * organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
      //  * folder -> MuteConfigName.ofFolderLocationMuteConfigName()

      MuteConfigName muteConfigName = MuteConfigName.ofProjectLocationMuteConfigName(projectId,
          location, muteConfigId);
      return client.getMuteConfig(muteConfigName);
    }
  }
}

Python

def get_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
    """
    Retrieves a mute configuration given its resource name.
    Args:
        parent_path: use any one of the following options:
                     - organizations/{organization_id}
                     - folders/{folder_id}
                     - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
         Dict: returns the mute rule details
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.GetMuteConfigRequest()
    request.name = (
        parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
    )

    mute_config = client.get_mute_config(request)
    print(f"Retrieved the mute rule: {mute_config.name}")
    return mute_config

REST

Na API Security Command Center, use o método muteConfigs.get para retornar a configuração de uma regra de silenciamento:

GET https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a configuração da regra de desativação será mostrada. Se a residência de dados não estiver ativada, use o valor global
  • CONFIG_ID: o ID numérico da regra de silenciamento

Atualizar regras de silenciamento

É possível atualizar a descrição ou o filtro de descoberta de uma regra de silenciamento usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Não é possível mudar o ID, a organização, a pasta ou o projeto pai ou o local de uma regra de silenciamento. Para mudar qualquer um desses valores, crie uma nova regra de silenciamento.

Se você ativou as descobertas anteriormente, elas serão desativadas novamente se forem correspondidas por uma regra de desativação atualizada no console do Google Cloud. Para mais informações, consulte Ativar descobertas individuais.

Para conferir um exemplo de código que atualiza uma regra de silenciamento, consulte Atualizar uma regra de silenciamento.

Para atualizar uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Selecione o projeto ou a organização do Google Cloud que é o recurso pai da regra de silenciamento que você quer modificar.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. Clique no nome da regra de silenciamento que você quer modificar.

    Se você não selecionou o projeto ou a organização apropriada, talvez veja uma observação informando que não tem permissão para modificar a regra de desativação de som.

  5. Insira uma nova descrição e clique em Salvar.

  6. Para regras de silenciamento dinâmicas, atualize ou mude o prazo de validade da regra.

  7. Atualize ou altere o filtro.

    Veja mais instruções em Criar regras de silenciamento.

  8. Para visualizar as descobertas que correspondem ao filtro atualizado, clique em Visualizar descobertas correspondentes.

    Uma tabela é carregada com descobertas que correspondem à nova consulta.

  9. Clique em Save.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para atualizar as regras de silenciamento, execute o comando gcloud scc muteconfigs update:

    gcloud scc muteconfigs update MUTE_CONFIG_ID \
        --PARENT=PARENT_ID \
        --location=LOCATION
        --description=RULE_DESCRIPTION \
        --filter=FILTER
        --type=MUTE_TYPE \
        --expiry-time=TIMESTAMP
    

    Substitua:

    • MUTE_CONFIG_ID: o ID da regra de desativação de som.
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project).
    • PARENT_ID: o ID da organização, pasta ou projeto.
    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a regra de desativação será atualizada. Se a residência de dados não estiver ativada, use o valor global.
    • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máximo de 1.024 caracteres).
    • FILTER: a expressão definida para filtrar descobertas.

      Por exemplo, para silenciar OPEN_FIREWALL descobertas, seu filtro pode ser FILTER="category=\"OPEN_FIREWALL\"".

    • MUTE_TYPE: o tipo de regra de silenciamento que você está atualizado. Os tipos de regra de desativação de som válidos são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.

    • TIMESTAMP: só se aplica se você estiver atualizando uma regra de silenciamento dinâmica. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor precisa ser definido para pelo menos um dia no futuro, ou a solicitação será rejeitada. Para informações sobre formatos de hora, consulte gcloud topic datetimes. Quando uma regra de desativação dinâmica expira, ela é removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico aja indefinidamente em descobertas correspondentes, omita esse campo.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
	"google.golang.org/protobuf/types/known/fieldmaskpb"
)

// updateMuteRule Updates an existing mute configuration.
// The following can be updated in a mute config: description and filter.
func updateMuteRule(w io.Writer, muteConfigName string) error {
	// Specify the name of the mute config to delete.
	// muteConfigName: Use any one of the following formats:
	//                 - organizations/{organization}/muteConfigs/{config_id}
	//                 - folders/{folder}/muteConfigs/{config_id}
	//                 - projects/{project}/muteConfigs/{config_id}
	// muteConfigName := fmt.Sprintf("projects/%s/muteConfigs/%s", "project-id", "mute-config")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	updateMuteConfig := &securitycenterpb.MuteConfig{
		Name:        muteConfigName,
		Description: "Updated mute config description",
	}

	req := &securitycenterpb.UpdateMuteConfigRequest{
		MuteConfig: updateMuteConfig,
		// Set the update mask to specify which properties of the mute config should be
		// updated.
		// If empty, all mutable fields will be updated.
		// Make sure that the mask fields match the properties changed in 'updateMuteConfig'.
		// For more info on constructing update mask path, see the proto or:
		// https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.muteConfigs/patch?hl=en#query-parameters
		UpdateMask: &fieldmaskpb.FieldMask{
			Paths: []string{
				"description",
			},
		},
	}

	response, err := client.UpdateMuteConfig(ctx, req)
	if err != nil {
		return fmt.Errorf("mute rule update failed! %w", err)
	}
	fmt.Fprintf(w, "Mute rule updated %s", response.Name)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.MuteConfig;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.UpdateMuteConfigRequest;
import com.google.protobuf.FieldMask;
import java.io.IOException;

public class UpdateMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config to update. If the mute config was
    // created with v1 API, it can be accessed with "global".
    String location = "global";

    // muteConfigId: Name of the mute config to update.
    String muteConfigId = "mute-config-id";

    updateMuteRule(projectId, location, muteConfigId);
  }

  // Updates an existing mute configuration.
  // The following can be updated in a mute config: description and filter.
  public static void updateMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient securityCenterClient = SecurityCenterClient.create()) {

      MuteConfig updateMuteConfig =
          MuteConfig.newBuilder()
              // Construct the name according to the parent type of the mute rule.
              // Parent can also be one of:
              //  * "organizations/{org_id}/locations/{location}/muteConfigs/{muteConfig_id}"
              //  * "folders/{folder_id}/locations/{location}/muteConfigs/{muteConfig_id}"
              .setName(String.format("projects/%s/locations/%s/muteConfigs/%s", projectId, location,
                  muteConfigId))
              .setDescription("Updated mute config description")
              .build();

      UpdateMuteConfigRequest updateMuteConfigRequest =
          UpdateMuteConfigRequest.newBuilder()
              .setMuteConfig(updateMuteConfig)
              // Make sure that the mask fields match the properties changed in
              // 'updateMuteConfig' object.
              // For more info on constructing update mask path, see the proto or:
              // https://cloud.google.com/security-command-center/docs/reference/rest/v2/folders.muteConfigs/patch?hl=en#query-parameters
              .setUpdateMask(FieldMask.newBuilder().addPaths("description").build())
              .build();

      MuteConfig response = securityCenterClient.updateMuteConfig(updateMuteConfigRequest);
      System.out.println(response);
    }
  }
}

Python

def update_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> Dict:
    """
    Updates an existing mute configuration.
    The following can be updated in a mute config: description, and filter/ mute rule.
    Args:
        parent: Use any one of the following resource paths to list mute configurations:
                - organizations/{organization_id}
                - folders/{folder_id}
                - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
         Dict: returns the mute rule details
    """
    from google.cloud import securitycenter_v2
    from google.protobuf import field_mask_pb2

    client = securitycenter_v2.SecurityCenterClient()

    update_mute_config = securitycenter_v2.MuteConfig()
    update_mute_config.name = (
        parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
    )
    update_mute_config.description = "Updated mute config description"

    field_mask = field_mask_pb2.FieldMask(paths=["description"])

    request = securitycenter_v2.UpdateMuteConfigRequest()
    request.mute_config = update_mute_config
    # Set the update mask to specify which properties of the Mute Config should be updated.
    # If empty, all mutable fields will be updated.
    # Make sure that the mask fields match the properties changed in 'update_mute_config'.
    # For more info on constructing update mask path, see the proto or:
    # https://cloud.google.com/security-command-center/docs/reference/rest/v1/folders.muteConfigs/patch?hl=en#query-parameters
    request.update_mask = field_mask

    mute_config = client.update_mute_config(request)
    print(f"Updated mute rule : {mute_config}")
    return mute_config

REST

Na API Security Command Center, use o método muteConfigs.patch para atualizar uma regra de silenciamento. O corpo da solicitação é uma instância de MuteConfig:

PATCH https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID

  {
    "description": "RULE_DESCRIPTION",
    "filter": "FILTER",
    "type": "MUTE_TYPE",
    "expiryTime": "TIMESTAMP"
  }

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a regra de desativação será atualizada. Se a residência de dados não estiver ativada, use o valor global
  • CONFIG_ID: o ID numérico da regra de silenciamento
  • RULE_DESCRIPTION: uma descrição da regra de silenciamento (máximo de 1.024 caracteres).
  • FILTER: a expressão definida para filtrar descobertas

    Por exemplo, para silenciar descobertas OPEN_FIREWALL, seu filtro pode ser "category=\"OPEN_FIREWALL\"".

  • MUTE_TYPE: o tipo de regra de silenciamento que você está atualizado. Os tipos de regra de desativação de som válidos são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criá-la.

  • TIMESTAMP: só se aplica se você estiver atualizando uma regra de silenciamento dinâmica. A string de data/hora que indica quando a regra de silenciamento dinâmico expira. O valor precisa ser definido para pelo menos um dia no futuro, ou a solicitação será rejeitada. Para mais informações sobre formatos de tempo, consulte gcloud topic datetimes. Quando uma regra de silenciamento dinâmica expira, ela é removida de todos os resultados correspondentes. Se você quiser que a regra de silenciamento dinâmico aja indefinidamente em descobertas correspondentes, omita esse campo.

Novas descobertas que correspondem exatamente ao filtro estão ocultas, e o atributo mute para as descobertas está definido como MUTED.

Excluir regras de silenciamento

É possível excluir uma regra de silenciamento usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Antes de excluir regras de silenciamento, entenda o seguinte:

  • Não é possível recuperar as regras de silenciamento excluídas.
  • A exclusão de regras de silenciamento estáticas não ativa automaticamente o som de descobertas silenciadas. É necessário ativar as descobertas de maneira manual ou programática.
  • A exclusão de regras de silenciamento dinâmicas remove automaticamente a regra de todas as descobertas correspondentes anteriores e ativa o som delas se não corresponderem a nenhuma outra regra.
  • As descobertas futuras que corresponderem aos filtros nas regras de silenciamento excluídas não serão silenciadas.

Para conferir um exemplo de código que exclui uma regra de silenciamento, consulte Excluir uma regra de silenciamento.

Para excluir uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a guia Regras de desativação na página Configurações do Security Command Center.

    Acessar "Ignorar regras"

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. Clique no nome da regra de silenciamento que você quer excluir.

  5. Clique em Excluir

  6. Leia a caixa de diálogo e, se estiver tudo certo, clique em Excluir.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para excluir regras de silenciamento, execute o comando gcloud scc muteconfigs delete:

    gcloud scc muteconfigs delete MUTE_CONFIG_ID \
      --PARENT=PARENT_ID --location=LOCATION

    Substitua:

    • MUTE_CONFIG_ID: o ID da configuração de desativação de som
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project);
    • PARENT_ID: o ID da organização, pasta ou projeto
    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a regra de desativação será excluída. Se a residência de dados não estiver ativada, use o valor global
  3. Confirme sua solicitação para excluir a regra de silenciamento.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// deleteMuteRule deletes a mute configuration given its resource name.
// Note: Previously muted findings are not affected when a mute config is deleted.
func deleteMuteRule(w io.Writer, parent string, muteConfigId string) error {
	// parent: Use any one of the following options:
	//             - organizations/{organization_id}
	//             - folders/{folder_id}
	//             - projects/{project_id}
	// parent := fmt.Sprintf("projects/%s", "your-google-cloud-project-id")
	//
	// muteConfigId: Specify the name of the mute config to delete.
	// muteConfigId := "mute-config-id"
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.DeleteMuteConfigRequest{
		Name: fmt.Sprintf("%s/muteConfigs/%s", parent, muteConfigId),
	}

	if err := client.DeleteMuteConfig(ctx, req); err != nil {
		return fmt.Errorf("failed to delete Muteconfig: %w", err)
	}
	fmt.Fprintf(w, "Mute rule deleted successfully: %s", muteConfigId)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.MuteConfigName;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import java.io.IOException;

public class DeleteMuteRule {

  public static void main(String[] args) throws IOException {
    // TODO(Developer): Replace the following variables
    // projectId: Google Cloud Project id.
    String projectId = "google-cloud-project-id";

    // Specify the location of the mute config. If the mute config was
    // created with v1 API, it can be accessed with "global".
    String location = "global";

    // muteConfigId: Specify the name of the mute config to delete.
    String muteConfigId = "mute-config-id";

    deleteMuteRule(projectId, location, muteConfigId);
  }

  // Deletes a mute configuration given its resource name.
  // Note: Previously muted findings are not affected when a mute config is deleted.
  public static void deleteMuteRule(String projectId, String location, String muteConfigId)
      throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {
      // Use appropriate `MuteConfigName` methods depending on the parent type.
      // folder -> MuteConfigName.ofFolderLocationMuteConfigName()
      // organization -> MuteConfigName.ofOrganizationLocationMuteConfigName()
      client.deleteMuteConfig(
          MuteConfigName.ofProjectLocationMuteConfigName(projectId, location, muteConfigId));

      System.out.println("Mute rule deleted successfully: " + muteConfigId);
    }
  }
}

Python

def delete_mute_rule(parent_path: str, location_id: str, mute_config_id: str) -> None:
    """
    Deletes a mute configuration given its resource name.
    Note: Previously muted findings are not affected when a mute config is deleted.
    Args:
         parent_path: use any one of the following options:
                     - organizations/{organization_id}
                     - folders/{folder_id}
                     - projects/{project_id}
        location_id: Gcp location id; example: 'global'
        mute_config_id: Set a unique id; max of 63 chars.
    Returns:
         None: returns none mute rule is deleted
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.DeleteMuteConfigRequest()
    request.name = (
        parent_path + "/locations/" + location_id + "/muteConfigs/" + mute_config_id
    )

    client.delete_mute_config(request)
    print(f"Mute rule deleted successfully: {mute_config_id}")

REST

Na API Security Command Center, use o método muteConfigs.delete para excluir uma regra de silenciamento:

DELETE https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/muteConfigs/CONFIG_ID

Substitua:

  • PARENT: o recurso pai da regra de silenciamento (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a regra de desativação será excluída. Se a residência de dados não estiver ativada, use o valor global
  • CONFIG_ID: o ID numérico da regra de silenciamento

Desativar o som de uma descoberta específica

É possível desativar uma descoberta individual usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Silenciar uma descoberta de forma estática não afeta se ela está ativa ou não. Se o som de uma descoberta ativa for desativado, o atributo state não vai mudar: state="ACTIVE". A descoberta fica oculta, mas permanece ativa até que a vulnerabilidade, a configuração incorreta ou a ameaça seja resolvida. Além disso, ao silenciar uma descoberta de forma estática, você substitui todas as regras de silenciamento dinâmico aplicáveis a ela.

O silenciamento de uma combinação tóxica fecha o caso de combinação tóxica correspondente.

Para silenciar todas as descobertas futuras que correspondam aos critérios especificados, consulte Criar regras de silenciamento.

Para conferir um exemplo de código para desativar uma descoberta, consulte Desativar uma descoberta.

Para desativar o som de uma descoberta individual, clique na guia do procedimento que você quer usar:

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. Se a descoberta que você precisa silenciar não estiver no painel Resultados da consulta de descobertas, selecione a categoria da descoberta na seção Categoria no painel Filtros rápidos.

  5. Marque a caixa de seleção ao lado da descoberta que você quer silenciar. É possível selecionar uma ou mais origens.

  6. Na barra de ações Resultados da consulta de descobertas, clique em Opções de silenciamento e selecione Aplicar substituição de silenciamento.

    O atributo mute das descobertas selecionadas está definido como MUTED, e a descoberta é removida do painel Resultados da consulta de descobertas.

Como alternativa, é possível silenciar uma descoberta no painel de detalhes:

  1. No painel Como encontrar resultados da consulta da página Descobertas, na coluna Categoria, clique no nome de uma descoberta individual. O painel de detalhes da descoberta será aberto.
  2. Clique em Realizar ação.
  3. No menu Realizar ação, selecione Aplicar substituição de silenciamento.

    Se você selecionar Ignorar descobertas como esta, a página Criar regra de silenciamento será aberta, em que você poderá criar uma regra de silenciamento para descobertas do mesmo tipo ou que incluem o mesmo atributo Indicator.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para definir o estado de silenciamento de uma descoberta como MUTED, use o comando set-mute na CLI gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=MUTED

    Substitua:

    • FINDING_ID: o ID da descoberta que você quer desativar

      Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings`/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: o recurso pai (project, folder ou organization), diferencia maiúsculas de minúsculas

    • PARENT_ID: o ID da organização, pasta ou projeto pai

    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será silenciada. Se a residência de dados não estiver ativada, use o valor global

    • SOURCE_ID: o ID da origem

      Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

Go

import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// setMute mutes an individual finding.
// If a finding is already muted, muting it again has no effect.
// Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
func setMute(w io.Writer, findingPath string) error {
	// findingPath: The relative resource name of the finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Use any one of the following formats:
	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.SetMuteRequest{
		Name: findingPath,
		Mute: securitycenterpb.Finding_MUTED}

	finding, err := client.SetMute(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to set the specified mute value: %w", err)
	}
	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetMuteFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //
    String findingPath = "{path-to-the-finding}";

    setMute(findingPath);
  }

  // Mute an individual finding.
  // If a finding is already muted, muting it again has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setMute(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              // Relative path for the finding.
              .setName(findingPath)
              .setMute(Mute.MUTED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

Python

def set_mute_finding(finding_path: str) -> None:
    """
      Mute an individual finding.
      If a finding is already muted, muting it again has no effect.
      Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    Args:
        finding_path: The relative resource name of the finding. See:
        https://cloud.google.com/apis/design/resource_names#relative_resource_name
        Use any one of the following formats:
        - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
        - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
        - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.SetMuteRequest()
    request.name = finding_path
    request.mute = securitycenter_v2.Finding.Mute.MUTED

    finding = client.set_mute(request)
    print(f"Mute value for the finding: {finding.mute.name}")
    return finding

REST

Na API Security Command Center, use o método findings.setMute para silenciar uma descoberta. O corpo da solicitação é uma enumeração que indica o estado de desativação de som resultante:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "MUTED"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects).
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será silenciada. Se a residência de dados não estiver ativada, use o valor global
  • SOURCE_ID: o ID numérico da origem.

    Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

  • FINDING_ID: o ID da descoberta que você quer desativar.

    Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

Depois de desativar uma descoberta, o atributo mute é definido como MUTED.

Ativar som de descobertas individuais

É possível desativar uma descoberta individual usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Desfazer o silenciamento de uma descoberta é útil quando você precisa impedir que ela seja oculta por uma regra de silenciamento muito ampla ou por uma regra que pode ser muito complexa para modificar e excluir descobertas que você considera importantes.

Para conferir um exemplo de código para desativar uma descoberta, consulte Desativar uma descoberta.

As descobertas silenciadas são desativadas novamente somente se forem desativadas manualmente. As regras de silenciamento criadas com a CLI gcloud ou a API Security Command Center não vão afetar as descobertas não silenciadas pelos usuários.

Para conferir um exemplo de código para desativar uma descoberta, consulte Desativar uma descoberta.

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Se necessário, selecione o projeto ou a organização do Google Cloud.

    A página Descobertas é aberta com a consulta padrão exibida na seção Visualização da consulta. A consulta padrão filtra as descobertas silenciadas. Portanto, você precisa editar a consulta antes que as descobertas silenciadas sejam exibidas no painel Resultados da consulta de descobertas.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. À direita da seção Visualização da consulta, clique em Editar consulta para abrir o Editor de consultas.

  5. No campo Editor de consultas, substitua a instrução de silenciamento atual pelo seguinte:

    mute="MUTED"
  6. Clique em Aplicar. As descobertas no painel Resultados da consulta de descobertas são atualizadas para incluir apenas as descobertas silenciadas.

  7. Se necessário, filtre outras descobertas silenciadas. Por exemplo, na Filtros rápidos painel em Categoria selecione o nome da descoberta que precisa ser ativada para filtrar todas as outras categorias de descoberta.

  8. Marque a caixa de seleção ao lado da descoberta que você quer parar de ignorar. É possível selecionar uma ou mais origens.

  9. Na barra de ações Resultados da consulta de descobertas, clique em Opções de silenciamento e selecione Aplicar substituição de ativação de som.

    O atributo mute das descobertas selecionadas está definido como UNMUTED, e a descoberta é removida do painel Resultados da consulta de descobertas.

Também é possível desativar o som de uma descoberta no painel de detalhes:

  1. No painel Como encontrar resultados da consulta da página Descobertas, na coluna Categoria, clique no nome de uma descoberta individual. O painel de detalhes da descoberta será aberto.
  2. Clique em Realizar ação.
  3. No menu Entrar em ação, selecione Aplicar substituição de ativação do som.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para definir o estado de silenciamento de uma descoberta como UNMUTED, use o comando set-mute na CLI gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNMUTED

    Substitua:

    • FINDING_ID: o ID da descoberta que você quer desativar

      Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: o recurso pai (project, folder ou organization), diferencia maiúsculas de minúsculas

    • PARENT_ID: o ID da organização, pasta ou projeto pai

    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será ativada. Se a residência de dados não estiver ativada, use o valor global

    • SOURCE_ID: o ID da origem

      Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

Go


import (
	"context"
	"fmt"
	"io"

	securitycenter "cloud.google.com/go/securitycenter/apiv2"
	"cloud.google.com/go/securitycenter/apiv2/securitycenterpb"
)

// setUnmute unmutes an individual finding.
// Unmuting a finding that isn't muted has no effect.
// Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
func setUnmute(w io.Writer, findingPath string) error {
	// findingPath: The relative resource name of the finding. See:
	// https://cloud.google.com/apis/design/resource_names#relative_resource_name
	// Use any one of the following formats:
	//  - organizations/{organization_id}/sources/{source_id}/finding/{finding_id}
	//  - folders/{folder_id}/sources/{source_id}/finding/{finding_id}
	//  - projects/{project_id}/sources/{source_id}/finding/{finding_id}
	// findingPath := fmt.Sprintf("projects/%s/sources/%s/finding/%s", "your-google-cloud-project-id", "source", "finding-id")
	ctx := context.Background()
	client, err := securitycenter.NewClient(ctx)
	if err != nil {
		return fmt.Errorf("securitycenter.NewClient: %w", err)
	}
	defer client.Close()

	req := &securitycenterpb.SetMuteRequest{
		Name: findingPath,
		Mute: securitycenterpb.Finding_UNMUTED}

	finding, err := client.SetMute(ctx, req)
	if err != nil {
		return fmt.Errorf("failed to set the specified mute value: %w", err)
	}
	fmt.Fprintf(w, "Mute value for the finding: %s is %s", finding.Name, finding.Mute)
	return nil
}

Java


import com.google.cloud.securitycenter.v2.Finding;
import com.google.cloud.securitycenter.v2.Finding.Mute;
import com.google.cloud.securitycenter.v2.SecurityCenterClient;
import com.google.cloud.securitycenter.v2.SetMuteRequest;
import java.io.IOException;

public class SetUnmuteFinding {

  public static void main(String[] args) throws IOException {
    // TODO: Replace the variables within {}
    // findingPath: The relative resource name of the finding. See:
    // https://cloud.google.com/apis/design/resource_names#relative_resource_name
    // Use any one of the following formats:
    //  - organizations/{org_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - folders/{folder_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //  - projects/{project_id}/sources/{source_id}/locations/{location}/finding/{finding_id}
    //
    String findingPath = "{path-to-the-finding}";

    setUnmute(findingPath);
  }

  // Unmute an individual finding.
  // Unmuting a finding that isn't muted has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
  public static Finding setUnmute(String findingPath) throws IOException {
    // Initialize client that will be used to send requests. This client only needs to be created
    // once, and can be reused for multiple requests.
    try (SecurityCenterClient client = SecurityCenterClient.create()) {

      SetMuteRequest setMuteRequest =
          SetMuteRequest.newBuilder()
              .setName(findingPath)
              .setMute(Mute.UNMUTED)
              .build();

      Finding finding = client.setMute(setMuteRequest);
      System.out.println(
          "Mute value for the finding " + finding.getName() + " is: " + finding.getMute());
      return finding;
    }
  }
}

Python

def set_unmute_finding(finding_path: str) -> None:
    """
      Unmute an individual finding.
      Unmuting a finding that isn't muted has no effect.
      Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE.
    Args:
        finding_path: The relative resource name of the finding. See:
        https://cloud.google.com/apis/design/resource_names#relative_resource_name
        Use any one of the following formats:
        - organizations/{organization_id}/sources/{source_id}/finding/{finding_id},
        - folders/{folder_id}/sources/{source_id}/finding/{finding_id},
        - projects/{project_id}/sources/{source_id}/finding/{finding_id}.
    """
    from google.cloud import securitycenter_v2

    client = securitycenter_v2.SecurityCenterClient()

    request = securitycenter_v2.SetMuteRequest()
    request.name = finding_path
    request.mute = securitycenter_v2.Finding.Mute.UNMUTED

    finding = client.set_mute(request)
    print(f"Mute value for the finding: {finding.mute.name}")
    return finding

REST

Na API Security Command Center, use o método findings.setMute para ativar uma descoberta. O corpo da solicitação é uma enumeração que indica o estado de desativação de som resultante:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "UNMUTED"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que a descoberta será ativada. Se a residência de dados não estiver ativada, use o valor global
  • SOURCE_ID: o ID numérico da origem

    Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

  • FINDING_ID: o ID da descoberta que você quer desativar.

    Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

As descobertas selecionadas não estão mais ocultas, e o atributo mute para as descobertas está definido como UNMUTED.

Remover uma substituição de estado de silenciamento de descobertas individuais

Você aplica uma modificação de estado de desativação quando modifica intencionalmente o estado de desativação de uma descoberta para desativá-la ou reativá-la estaticamente. Por exemplo, talvez você queira aplicar uma substituição de estado de silenciamento para ocultar uma descoberta de baixa gravidade que não vale a pena criar uma regra de silenciamento dinâmico.

É possível remover uma substituição de estado de silenciamento de uma descoberta individual usando o console do Google Cloud, a CLI gcloud ou a API Security Command Center.

Antes de remover a substituição do estado de silenciamento de uma descoberta, entenda o seguinte:

  • Uma descoberta tem uma substituição de estado de silenciamento se ela for silenciada ou não silenciada de forma estática. É possível aplicar uma substituição de estado de desativação de som a qualquer descoberta de forma manual ou automática com regras de desativação de som estáticas.
  • Uma substituição de estado de silenciamento é aplicada a uma descoberta indefinidamente e tem prioridade sobre qualquer regra de silenciamento correspondente.
  • A remoção da substituição do estado de silenciamento de uma descoberta redefine o estado de silenciamento para que ela possa ser processada por regras de silenciamento estáticas ou dinâmicas.
  • Remover a substituição do estado de silenciamento de uma descoberta é diferente de desativar o silenciamento. Quando você ativa o som de uma descoberta (aplica uma substituição de desativação), as regras de silenciamento não podem desativar o som dessa descoberta até que você remova manualmente a substituição do estado de desativação.

Para remover a substituição de desativação de uma descoberta individual, faça o seguinte:

Console

  1. No console do Google Cloud, acesse a página Descobertas do Security Command Center.

    Acesse Descobertas

  2. Selecione a organização ou o projeto do Google Cloud.

  3. Opcional: se a residência de dados estiver ativada para o Security Command Center, mude o local dos dados conforme necessário.

    Para mudar o local dos dados, clique no seletor de local na barra de ações.

    Uma lista de locais vai aparecer. Selecione o novo local.

  4. À direita da seção Visualização da consulta, clique em Editar consulta para abrir o Editor de consultas.

  5. No campo Editor de consultas, substitua a instrução de silenciamento atual pelo seguinte:

    mute="MUTED" OR mute="UNMUTED"
  6. Clique em Aplicar. As descobertas no painel Resultados da consulta de descobertas são atualizadas para incluir descobertas silenciadas e não silenciadas.

  7. Se necessário, filtre outras descobertas. Por exemplo, no painel Filtros rápidos, em Categoria, selecione o nome da descoberta que precisa ser redefinida para filtrar todas as outras categorias de descoberta.

  8. Marque a caixa de seleção ao lado da descoberta que você quer redefinir. É possível selecionar uma ou mais origens.

  9. Na barra de ações Resultados da consulta de descobertas, clique em Opções de silenciamento e selecione Remover substituições de silenciamento.

    O atributo mute das descobertas selecionadas está definido como UNDEFINED, e a descoberta é removida do painel Resultados da consulta de descobertas.

Também é possível desativar o som de uma descoberta no painel de detalhes:

  1. No painel Como encontrar resultados da consulta da página Descobertas, na coluna Categoria, clique no nome de uma descoberta individual. O painel de detalhes da descoberta será aberto.
  2. Clique em Realizar ação.
  3. No menu Entrar em ação, selecione Remover substituições de silenciamento.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para definir o estado de silenciamento de uma descoberta como UNDEFINED, use o comando set-mute na CLI gcloud:

    gcloud scc findings set-mute FINDING_ID \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --source=SOURCE_ID \
      --mute=UNDEFINED

    Substitua:

    • FINDING_ID: o ID da descoberta que você quer redefinir.

      Para recuperar os IDs de descoberta, use a API Security Command Center para listar descobertas. O ID de descoberta é a última parte do atributo canonicalName. Por exemplo, projects/123456789012/sources/1234567890123456789/findings/5ee30aa342e799e4e1700826de053aa9.

    • PARENT: o recurso pai (project, folder ou organization), diferencia maiúsculas de minúsculas

    • PARENT_ID: o ID da organização, pasta ou projeto pai

    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que será possível remover a substituição do estado de desativação de uma descoberta. Se a residência de dados não estiver ativada, use o valor global

    • SOURCE_ID: o ID da origem

      Para instruções sobre como recuperar um ID de origem, consulte Como conseguir o ID de origem.

REST

Na API Security Command Center, use o método findings.setMute para redefinir o estado de desativação de uma descoberta. O corpo da solicitação é uma enumeração que indica o estado de desativação de som resultante:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/sources/SOURCE_ID/locations/LOCATION/findings/FINDING_ID:setMute

{
  "mute": "UNDEFINED"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects);
  • PARENT_ID: o ID da organização, pasta ou projeto pai
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que o estado de desativação será removido de uma descoberta. Se a residência de dados não estiver ativada, use o valor global
  • SOURCE_ID: o ID numérico da origem

Silenciar ou redefinir várias descobertas

É possível executar as seguintes operações de desativação em massa para várias descobertas existentes usando o comando gcloud scc findings bulk-mute da CLI gcloud ou o método bulkMute da API Security Command Center:

  • Silenciar várias descobertas. Silenciar descobertas em massa silencia staticamente e substitui todas as regras de silenciamento dinâmico que se aplicam à descoberta. Se você precisar silenciar descobertas futuras semelhantes, crie uma regra de silenciamento.

  • Removemos a substituição do estado de silenciamento em várias descobertas. Ao remover a modificação do estado de silenciamento em uma descoberta, você redefine o estado de silenciamento de MUTED (silenciado estaticamente) ou UNMUTED (não silenciado estaticamente) para UNDEFINED. Esse recurso pode ser útil se você estiver migrando de regras de silenciamento estáticas para dinâmicas.

Especifique o conjunto de descobertas que você precisa silenciar definindo um filtro de descobertas. Os filtros de desativação de som em massa não são compatíveis com todas as propriedades de descoberta. Para conferir uma lista de propriedades sem suporte, consulte Propriedades de descoberta sem suporte para regras de silenciamento.

Se a residência de dados estiver ativada para o Security Command Center, as operações de silenciamento em massa serão limitadas ao local do Security Command Center em que elas forem executadas.

Para conferir um exemplo de código que silencia descobertas em massa, consulte Silenciar descobertas em massa.

Para desativar ou redefinir as descobertas em massa, clique na guia do procedimento que você quer usar:

Console

No console do Google Cloud, só é possível desativar o som de descobertas em massa criando regras de desativação de som. No console do Google Cloud, a criação de regras de desativação de som silencia as descobertas atuais e futuras.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Para desativar ou redefinir várias descobertas em massa, execute o comando gcloud scc findings bulk-mute:

    gcloud scc findings bulk-mute \
      --PARENT=PARENT_ID \
      --location=LOCATION \
      --filter="FILTER" \
      --mute-state=MUTE_STATE

    Substitua:

    • PARENT: o escopo na hierarquia de recursos a que a regra de silenciamento se aplica, organization, folder ou project.
    • PARENT_ID: o ID numérico da organização, pasta ou projeto pai ou o ID alfanumérico do projeto pai.
    • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que as descobertas serão silenciadas ou redefinidas em massa. Se a residência de dados não estiver ativada, use o valor global.
    • FILTER: a expressão definida para filtrar descobertas.

      Por exemplo, para desativar todas as descobertas de OPEN_FIREWALL e PUBLIC_IP_ADDRESS de baixa gravidade no projeto internal-test, o filtro pode ser "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

    • MUTE_STATE: o valor que indica se a descoberta está silenciada estaticamente ou não. Os valores válidos são: MUTED e UNDEFINED. O valor é definido como MUTED por padrão. Defina esse valor como UNDEFINED apenas se você estiver redefinindo o estado de desativação de vários resultados existentes.

REST

Na API Security Command Center, use o método findings.bulkMute para desativar ou redefinir o estado de desativação de várias descobertas. O corpo da solicitação contém a expressão usada para filtrar descobertas:

POST https://securitycenter.googleapis.com/v2/PARENT/PARENT_ID/locations/LOCATION/findings:bulkMute

{
  "filter": "FILTER",
  "muteState": "MUTE_STATE"
}

Substitua:

  • PARENT: o recurso pai (organizations, folders ou projects).
  • PARENT_ID: o ID da organização, pasta ou projeto pai.
  • LOCATION: se a residência de dados estiver ativada, o local do Security Command Center em que as descobertas serão silenciadas ou redefinidas em massa. Se a residência de dados não estiver ativada, use o valor global.
  • FILTER: a expressão definida para filtrar descobertas.

    Por exemplo, para desativar todas as descobertas de OPEN_FIREWALL e PUBLIC_IP_ADDRESS de baixa gravidade no projeto internal-test, o filtro pode ser "category=\"OPEN_FIREWALL\" OR category=\"PUBLIC_IP_ADDRESS\" AND severity=\"LOW\" AND resource.projectDisplayName=\"internal-test\"".

  • MUTE_STATE: o valor que indica se a descoberta está silenciada ou não. Os valores válidos são MUTED ou UNDEFINED. O valor é definido como MUTED por padrão. Defina esse valor como UNDEFINED apenas se você estiver redefinindo o estado de desativação de vários resultados.

Todas as descobertas existentes no recurso selecionado e que correspondem exatamente ao filtro estão ocultas. O atributo mute das descobertas está definido como MUTED.

A desativação de descobertas não muda o estado delas. Se as descobertas ativas forem silenciadas, elas ficarão ocultas, mas permanecerão ativas até que as vulnerabilidades, configurações incorretas ou ameaças sejam resolvidas.

Ver descobertas silenciadas no console do Google Cloud

É possível visualizar descobertas silenciadas no console do Google Cloud editando a consulta de descoberta para selecionar descobertas que incluam o valor de propriedade mute="MUTED".

Por exemplo, a consulta de descobertas a seguir exibe apenas descobertas ativas que estão com o som desativado:

state="ACTIVE"
AND mute="MUTED"

Para exibir todas as descobertas ativas, com e sem som, omita completamente o atributo mute da consulta:

state="ACTIVE"

Por padrão, a consulta de descoberta no console do Google Cloud exibe apenas as descobertas que não estão silenciadas.

Conferir descobertas silenciadas por tipo de regra

As seções a seguir descrevem como consultar resultados ativos por tipo de regra de silenciamento.

Para mais informações sobre como listar descobertas específicas, consulte Filtrar descobertas.

Resultados de consulta silenciados por regras de silenciamento estáticas

Para mostrar descobertas ativas que foram silenciadas por uma regra de silenciamento estática após um período especificado, use a consulta a seguir e inspecione o atributo muteInitiator para determinar se a descoberta foi silenciada por uma regra de silenciamento estática.

state="ACTIVE" AND
muteInfo.staticMute.applyTime>=TIMESTAMP AND
muteInfo.staticMute.state="MUTED"

Substitua TIMESTAMP pela string de data/hora que indica o início do período que você quer consultar. Para saber mais sobre formatos de tempo, consulte gcloud topic datetimes.

Resultados de consulta silenciados por regras de silenciamento dinâmicas

Para mostrar descobertas ativas que foram silenciadas por uma regra de silenciamento dinâmica após um período especificado, use a seguinte consulta:

state="ACTIVE" AND
muteUpdateTime>=TIMESTAMP AND
contains(muteInfo.dynamicMuteRecords, muteConfig="PARENT_ID/muteConfigs/CONFIG_ID")

Substitua:

  • TIMESTAMP: a string de data/hora que indica o início do período que você quer consultar. Para informações sobre formatos de hora, consulte gcloud topic datetimes.
  • PARENT_ID: o ID da organização, pasta ou projeto pai, especificado no formato organizations/123, folders/456 ou projects/789.
  • CONFIG_ID: o nome da regra de silenciamento. O ID precisa usar caracteres alfanuméricos e hifens e ter entre 1 e 63 caracteres.

Para mais informações sobre como editar consultas de descoberta, consulte Criar ou editar uma consulta de descobertas no painel.

Como encontrar propriedades relacionadas ao silenciamento

Esta seção lista as propriedades de detecção relacionadas ao estado de silenciamento de uma detecção e descreve como elas são afetadas pelas operações de silenciamento:

  • mute: defina como UNDEFINED quando as descobertas forem criadas e as alterações nos seguintes cenários:
    • MUTED: uma descoberta foi silenciada manualmente ou por uma regra de silenciamento.
    • UNMUTED: um usuário ativa o som de uma descoberta.
  • muteUpdateTime: o tempo em que uma descoberta é silenciada ou não.
  • muteInitiator: o identificador da regra principal ou de silenciamento que silenciou uma descoberta.
  • muteInfo: informações de silenciamento sobre a descoberta, como o tipo de regra de silenciamento (estático ou dinâmico) e quais regras de silenciamento foram correspondidas.
  • muteInfo.staticMute: um estado de silenciamento estático substitui qualquer regra de silenciamento dinâmico que se aplique a essa descoberta.
    • state: um estado de silenciamento estático que pode ser definido silenciando a descoberta diretamente ou uma regra de silenciamento estática.
    • applyTime: o momento em que o estado de desativação estática foi aplicado à descoberta.
  • muteInfo.dynamicMuteRecords: o registro de uma regra de silenciamento dinâmico que corresponde à descoberta.
    • muteConfig: é o nome do recurso relativo da regra de desativação, representado pela configuração de desativação que criou o registro. Por exemplo, organizations/123/muteConfigs/examplemuteconfig.
    • matchTime: o horário em que uma regra de silenciamento dinâmica correspondeu à descoberta.

Interromper notificações e exportações de descobertas silenciadas

Se você ativar as notificações de descoberta, as descobertas silenciadas novas ou atualizadas que correspondem aos filtros de notificação ainda serão exportadas para o Pub/Sub.

Para interromper as exportações e notificações de descobertas silenciadas, use o atributo mute para excluir as descobertas silenciadas no filtro NotificationConfig. Por exemplo, o filtro a seguir envia apenas notificações de descobertas ativas que não tenham o som desativado ou quando o atributo de silenciamento não tenha sido definido:

FILTER="state=\"ACTIVE\" AND -mute=\"MUTED\""

A seguir

Saiba mais sobre como filtrar notificações de descoberta.

Veja mais exemplos de filtros que você pode usar.