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 consoleGoogle 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 oferecem 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.
  • É possível usar regras de silenciamento para silenciar descobertas temporária 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 futuras e atuais com base nos critérios especificados por você. Você pode criar filtros com regras de silenciamento estáticas ou dinâmicas.

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

Tipos de regras de silenciamento

O Security Command Center é compatível com 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ático substituem as dinâmicas quando são aplicadas à mesma descoberta. Como resultado, as regras de silenciamento dinâmico não vão funcionar como esperado, o que pode gerar confusão ao gerenciar suas descobertas. Por isso, recomendamos que você use apenas um tipo de regra de silenciamento.

A menos que você já esteja usando regras de silenciamento estáticas, recomendamos usar apenas as dinâmicas, porque elas oferecem mais flexibilidade.

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

Regras de silenciamento estáticas Regras de silenciamento dinâmicas
Agir indefinidamente com base nas descobertas. Pode agir em uma descoberta temporariamente com um prazo de validade ou indefinidamente se nenhum prazo de validade for definido.
Não se aplicam a descobertas atuais. Aplicar a descobertas novas e atuais.
Ter precedência sobre as regras de silenciamento dinâmicas. Têm uma prioridade menor e são substituídas por regras de silenciamento estático quando ambos os tipos se aplicam a uma descoberta.

Regras de silenciamento estáticas

  • As regras de silenciamento estáticas funcionam por tempo indeterminado. Quando uma descoberta corresponde à sua 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 silenciamento estático não afetam as descobertas atuais, a menos que sejam criadas usando o console Google Cloud . Nesse caso, a regra silencia as descobertas atuais de forma retroativa. Caso contrário, elas só se aplicam a descobertas criadas ou atualizadas depois que a regra é definida. Se você também quiser silenciar descobertas existentes semelhantes sem usar o console Google Cloud , use os mesmos filtros para silenciar descobertas em massa.
  • As regras de silenciamento estático têm precedência sobre as dinâmicas. Portanto, todas as novas descobertas que corresponderem a uma regra de silenciamento estático definida serã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 prazo de validade ou indefinidamente se nenhum prazo for definido. Quando uma descoberta existente ou recém-criada corresponde à sua configuração de exclusão dinâmica, o Security Command Center define automaticamente a propriedade mute da descoberta como MUTED até a data de expiração especificada ou até que haja mudanças na descoberta ou na 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 silenciamento dinâmico, 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 exclusão dinâmica têm uma prioridade menor e são substituídas pelas regras de exclusão estática quando ambos os tipos se aplicam a uma descoberta.

Recomendamos usar apenas regras de desativação dinâmica. A capacidade de silenciar e ativar o som das descobertas temporariamente 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 analisa 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 ela foi criada. Por exemplo, se você criar uma regra de silenciamento no local Estados Unidos (us), ela não vai silenciar descobertas armazenadas no local União Europeia (eu).

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 ver uma lista de propriedades que não são compatíveis com as regras de desativação de som, 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 exclusão de alertas (recursos muteConfig) estarão sujeitas aos controles de residência de dados e serão armazenadas em um local do Security Command Center selecionado por você.

Para aplicar uma regra de silenciamento às descobertas em um local do Security Command Center, crie a regra 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. O Security Command Center não restringe o local em que você cria regras de exclusão ou exportações de streaming.

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

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

Para saber como usar o Security Command Center quando a residência de dados está ativada, consulte Endpoints regionais do Security Command Center.

Criar uma regra para ignorar

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

Recomendamos usar 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 criar uma regra de silenciamento, clique na guia do procedimento que você quer usar:

Console

Para criar uma regra de silenciamento usando o console Google Cloud , clique na guia da sua camada de serviço:

Padrão ou Premium

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

    Acesse Descobertas

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

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

  4. Clique em Criar regra de silenciamento.

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

  6. 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.

  7. Confirme o escopo da regra de exclusão verificando o valor do Recurso principal.

  8. Se você estiver criando uma regra de silenciamento estática ou dinâmica sem expiração, siga para a próxima etapa. Se você estiver criando uma regra de desativação de som 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 expiração 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 aparece 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 operadores de consulta e funções 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. Clique em Visualizar descobertas correspondentes. Uma tabela mostra descobertas que correspondem à sua consulta.

  11. Clique em Salvar.

Enterprise

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

    Acesse Descobertas

  2. Se necessário, selecione seu projeto ou organização do Google Cloud .
  3. Selecione pelo menos uma descoberta.
  4. Clique em Opções de silenciamento e selecione Ver regras de silenciamento.
  5. Clique em Criar regra 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.
  8. Confirme o escopo da regra de exclusão verificando o valor do Recurso principal.
  9. Se você estiver criando uma regra de silenciamento estática ou dinâmica sem expiração, 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 expiração da regra de silenciamento dinâmico. Esse valor indica por quanto tempo a regra vai silenciar as descobertas correspondentes.
  10. 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 aparece 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 operadores de consulta e funções 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.
  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: o local do Security Command Center em que criar uma regra de exclusão de alertas. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 silenciar 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 válidos de regras de silenciamento são DYNAMIC e STATIC. Por padrão, o tipo de regra de silêncio é definido como STATIC. Não é possível mudar o tipo de uma regra de desativação após a criação.
    • TIMESTAMP: só se aplica se você estiver criando uma regra de silenciamento dinâmico. A string de data/hora que indica quando a regra de desativação dinâmica expira. O valor precisa ser definido para pelo menos um dia no futuro, caso contrário, a solicitação será rejeitada. Para informações sobre formatos de tempo, consulte gcloud topic datetimes. Quando uma regra de exclusão dinâmica expira, ela é removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico funcione indefinidamente em descobertas correspondentes, omita esse campo.

    A resposta inclui o ID da regra de silenciamento, que pode ser usado para ver, atualizar e excluir regras de silenciamento, conforme descrito em Gerenciar regras de silenciamento.

Terraform

Crie uma regra de silenciamento para uma organização:

resource "google_scc_v2_organization_mute_config" "default" {
  mute_config_id    = "my-config"
  organization = "123456789"
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Organization mute Configuration"
  filter = "severity = \"HIGH\""
  type = "STATIC"
}

Criar uma regra para ignorar uma pasta:

resource "google_folder" "folder" {
  parent       = "organizations/123456789"
  display_name = "folder-name"
}

resource "google_scc_v2_folder_mute_config" "default" {
  mute_config_id    = "my-config"
  folder = google_folder.folder.folder_id
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Folder mute Configuration"
  filter = "severity = \"HIGH\""
  type = "STATIC"
}

Crie uma regra de silenciamento para um projeto:

resource "google_scc_v2_project_mute_config" "default" {
  mute_config_id    = "my-config"
  project = "my-project-name"
  location     = "global"
  description  = "My custom Cloud Security Command Center Finding Project mute Configuration"
  filter = "severity = \"HIGH\""
  type = "STATIC"
}

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 exclusã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: o local do Security Command Center em que uma regra de exclusão será criada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 válidos de regras de silenciamento 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âmico. A string de data/hora que indica quando a regra de desativação dinâmica expira. O valor precisa ser definido para pelo menos um dia no futuro, caso contrário, a solicitação será rejeitada. Para informações sobre formatos de tempo, consulte gcloud topic datetimes. Quando uma regra de exclusão dinâmica expira, ela é removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico funcione 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. Abra a seção a seguir para conferir a lista de propriedades que não são compatíveis com filtros de regras de silenciamento.

Propriedades de descoberta sem suporte

  • caiResource
  • canonicalName
  • createTime
  • description
  • eventTime
  • externalUri
  • gcpMetadata.folders1
  • libraryPaths
  • mute
  • muteAnnotation
  • muteInfo
  • muteInitiator
  • muteUpdateTime
  • name
  • nextSteps
  • originalProviderId
  • parent
  • processes.binaryPath
  • processes.libraryPaths
  • propertyDataTypes
  • resourceName
  • securityMarks
  • sourceProperties
  • state
  • workflowState
  • 1: a propriedade gcpMetadata.folders contém subcampos compatíveis com filtros de silenciamento.

Listar regras de silenciamento

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

A 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 list também será limitado ao local do Security Command Center selecionado.

Para 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 seu projeto ou organização do Google Cloud .

  3. Na seção Ignorar regras, você vê 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 principal para listar regras de silenciamento
    • PARENT_ID: o ID da organização, pasta ou projeto pai
    • LOCATION: o local do Security Command Center em que listar as regras de exclusão temporária. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 regras de exclusão:

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: o local do Security Command Center em que listar as regras de exclusão temporária. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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.

Ver a configuração de uma regra de silenciamento

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

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

Para ver 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 seu projeto ou organização do Google Cloud .

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

  4. 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 silenciamento
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project);
    • PARENT_ID: o ID da organização, pasta ou projeto
    • LOCATION: o local do Security Command Center em que a configuração da regra de exclusão temporária será exibida. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 exclusão:

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: o local do Security Command Center em que a configuração da regra de exclusão temporária será exibida. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 descobertas de uma regra de silenciamento usando o console 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, nem 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 ver 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 Google Cloud que é o recurso pai da regra de silenciamento que você quer modificar.

  3. 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.

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

  5. Para regras de silenciamento dinâmicas, atualize ou mude o prazo de validade.

  6. Atualize ou altere o filtro.

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

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

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

  8. 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 silenciamento.
    • PARENT: o recurso pai da regra de silenciamento (organization, folder ou project).
    • PARENT_ID: o ID da organização, pasta ou projeto.
    • LOCATION: o local do Security Command Center em que a regra de exclusão será atualizada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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á atualizando. Os tipos válidos de regras de silenciamento são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criada.

    • TIMESTAMP: só se aplica se você estiver atualizando uma regra de silenciamento dinâmico. A string de data/hora que indica quando a regra de desativação dinâmica expira. O valor precisa ser definido para pelo menos um dia no futuro, caso contrário, a solicitação será rejeitada. Para informações sobre formatos de hora, consulte gcloud topic datetimes. Quando uma regra de exclusão dinâmica expira, ela é removida de todas as descobertas correspondentes. Se você quiser que a regra de silenciamento dinâmico funcione 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 exclusão. 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: o local do Security Command Center em que a regra de exclusão será atualizada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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á atualizando. Os tipos válidos de regras de silenciamento são DYNAMIC e STATIC. Não é possível mudar o tipo de uma regra de silenciamento depois de criada.

  • TIMESTAMP: só se aplica se você estiver atualizando uma regra de silenciamento dinâmico. A string de data/hora que indica quando a regra de desativação dinâmica expira. O valor precisa ser definido para pelo menos um dia no futuro. Caso contrário, a solicitação será rejeitada. Para informações sobre formatos de tempo, consulte gcloud topic datetimes. Quando uma regra de silenciamento dinâmico expira, ela é removida de todos os resultados correspondentes. Se você quiser que a regra de silenciamento dinâmico funcione 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 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 que estão 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 cancela o silenciamento delas se não corresponderem a nenhuma regra adicional.
  • As descobertas futuras que corresponderem aos filtros nas regras de silenciamento excluídas não serão silenciadas.

Para ver 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 seu projeto ou organização do Google Cloud .

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

  4. Clique em Excluir

  5. 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: o local do Security Command Center em que a regra de exclusão temporária será excluída. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 exclusão de ruído:

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: o local do Security Command Center em que a regra de exclusão temporária será excluída. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, use o valor global.
  • CONFIG_ID: o ID numérico da regra de silenciamento

Desativar o som de uma descoberta específica

É possível silenciar estaticamente uma descoberta individual usando o consoleGoogle 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 aplicadas a ela.

Ao silenciar uma descoberta de combinação tóxica, o caso correspondente é encerrado.

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

Para ver um exemplo de código para silenciar uma descoberta, consulte Silenciar 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 seu projeto ou organização do Google Cloud .

  3. 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.

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

  5. Na barra de ações Resultados da consulta de descobertas, clique em Desativar opções 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: o local do Security Command Center em que a descoberta será ignorada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 principal.
  • LOCATION: o local do Security Command Center em que a descoberta será ignorada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 estaticamente remover o silêncio de uma descoberta individual usando o console Google Cloud , a CLI gcloud ou a API Security Command Center.

Cancelar o silenciamento de uma descoberta é útil quando você precisa evitar que ela seja ocultada 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 ver um exemplo de código para ativar o som de uma descoberta, consulte Ativar o som de 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 afetam as descobertas não ignoradas pelos usuários.

Para ver um exemplo de código para ativar o som de uma descoberta, consulte Ativar o som de 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 seu projeto ou 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. À direita da seção Visualização da consulta, clique em Editar consulta para abrir o Editor de consultas.

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

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

  6. 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.

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

  8. 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 de 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 principal

    • LOCATION: o local do Security Command Center em que a descoberta será reativada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 reativar 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: o local do Security Command Center em que a descoberta será reativada. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 substituição de estado de ignorar quando modifica intencionalmente o estado de ignorar de uma descoberta para ignorar ou cancelar a ignorância dela de forma estática. 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 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 ativada estaticamente. É possível aplicar uma substituição de estado de silenciamento a qualquer descoberta de forma manual ou automática com regras de silenciamento estáticas.
  • Uma substituição de estado de silenciamento é aplicada a uma descoberta por tempo indeterminado 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 dela para que 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 remover o silenciamento dela. Quando você cancela o silenciamento de uma descoberta (aplica uma substituição de cancelamento de silenciamento), as regras de silenciamento não podem silenciar essa descoberta até que você remova manualmente a substituição do estado de silenciamento.

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 o projeto Google Cloud ou a organização.

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

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

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

  6. 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.

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

  8. 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: o local do Security Command Center em que remover a substituição do estado de ignorar de uma descoberta. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 principal
  • LOCATION: o local do Security Command Center em que remover a substituição do estado de ignorar de uma descoberta. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, use o valor global.
  • SOURCE_ID: o ID numérico da origem

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 SetMuteUndefinedFinding {

  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/{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}
    String findingPath = "{path-to-the-finding}";
    setMuteUndefined(findingPath);
  }

  // Reset mute state of an individual finding.
  // If a finding is already reset, resetting it again has no effect.
  // Various mute states are: MUTE_UNSPECIFIED/MUTE/UNMUTE/UNDEFINED.
  public static Finding setMuteUndefined(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.UNDEFINED)
              .build();

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

Silenciar ou redefinir várias descobertas

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

  • Silenciar várias descobertas. Silenciar descobertas em massa as silencia estaticamente e substitui todas as regras de silenciamento dinâmico aplicadas a elas. Se você precisar silenciar descobertas futuras semelhantes, crie uma regra de silenciamento.

  • Remova a substituição do estado de silenciamento em várias descobertas atuais. Ao remover a substituição do estado de silenciamento em uma descoberta, você redefine o estado de MUTED (silenciada estaticamente) ou UNMUTED (sem silenciamento estático) para UNDEFINED. Isso 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 uma lista de propriedades não compatíveis, consulte Propriedades de descoberta não compatíveis com regras de silenciamento.

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

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

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

Console

No console do Google Cloud , só é possível desativar em massa as descobertas criando regras de desativação. No console do Google Cloud , a criação de regras de desativação silencia descobertas existentes 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: o local do Security Command Center em que ignorar ou redefinir descobertas em massa. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 padrão é MUTED. Defina esse valor como UNDEFINED somente se você estiver redefinindo o estado de silenciamento de várias descobertas atuais.

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 principal.
  • LOCATION: o local do Security Command Center em que ignorar ou redefinir descobertas em massa. Se a residência de dados estiver ativada, use eu, ksa ou us. Caso contrário, 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 silenciamento de várias descobertas atuais.

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 mostra apenas as descobertas que não estão silenciadas.

Ver descobertas silenciadas por tipo de regra de silenciamento

As seções a seguir descrevem como consultar descobertas ativas por tipo de regra de exclusão.

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

Consultar descobertas silenciadas 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 informações sobre formatos de tempo, consulte gcloud topic datetimes.

Consultar descobertas silenciadas por regras de silenciamento dinâmico

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 principal, 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 à desativação do som

Esta seção lista as propriedades relacionadas ao estado de silenciamento de uma descoberta 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 será 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 tipo de regra de silenciamento (estática ou dinâmica) e quais regras de silenciamento corresponderam à descoberta.
  • muteInfo.staticMute: um estado de silenciamento estático substitui todas as regras de silenciamento dinâmico aplicadas a essa descoberta.
    • state: um estado de silenciamento estático que pode ser definido silenciando a descoberta diretamente ou por uma regra de silenciamento estática.
    • applyTime: 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 exclusão temporária, representado pela configuração de exclusão temporária que criou o registro. Por exemplo, organizations/123/muteConfigs/examplemuteconfig.
    • matchTime: o momento em que uma regra de silenciamento dinâmico 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 corresponderem 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.