Ativar verificação de vulnerabilidades

Neste guia, descrevemos como melhorar sua postura de segurança ativando o recurso de verificação de vulnerabilidades no Secure Source Manager.

A verificação de vulnerabilidades detecta automaticamente vulnerabilidades conhecidas nas dependências do código-fonte, verificando cada novo commit em uma solicitação de envio. As vulnerabilidades são apresentadas nas visualizações de solicitação de envio e em uma guia Segurança em todo o repositório.

Ativar verificação de vulnerabilidades

Verifique se os papéis e as configurações a seguir estão ativados para seu repositório.

Funções exigidas

Para receber a permissão necessária para ativar a verificação de vulnerabilidades, peça ao administrador para conceder a você o papel do IAM de Administrador do repositório do Secure Source Manager (roles/securesourcemanager.repoAdmin) no repositório do Secure Source Manager. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a permissão securesourcemanager.repositories.update, que é necessária para ativar a verificação de vulnerabilidades.

Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.

Para informações sobre como conceder papéis do Secure Source Manager, consulte Controle de acesso com o IAM e Conceder acesso à instância aos usuários.

Atualizar as configurações do repositório

É possível ativar a verificação de vulnerabilidades nos repositórios pela interface do Secure Source Manager:

  1. Navegue até o repositório em que você quer ativar a verificação de vulnerabilidades.
  2. Clique no ícone Settings.
  3. Localize o botão Verificação de vulnerabilidades.
  4. Clique no botão para a posição Ativado.
  5. Clique no botão Update Settings.

Como trabalhar com a verificação de vulnerabilidades

Depois que você ativa a verificação de vulnerabilidades, as seguintes verificações ocorrem automaticamente:

  • Verificações programadas: os commits principais de todas as ramificações, uma vez por dia.
  • Verificações de solicitações de pull:
    • Os commits principais de novas solicitações de pull, na criação da solicitação de envio.
    • Novos commits enviados para solicitações de pull, no push.

Somente as vulnerabilidades das dependências do seu código são detectadas. As verificações de vulnerabilidades detectam vulnerabilidades listadas em bancos de dados públicos, incluindo, mas não se limitando ao Banco de Dados Nacional de Vulnerabilidades e ao Banco de Dados de Avisos do GitHub. As vulnerabilidades detectadas incluem um link externo para os dados do banco de dados público sobre a vulnerabilidade e, quando disponível, o ID de CVE.

Guia "Segurança"

Depois de ativar a verificação de vulnerabilidades, uma guia Segurança é mostrada na barra de navegação do repositório, que pode ser usada para pesquisar vulnerabilidades verificadas até um período de armazenamento de 3 anos.

A guia "Segurança" inclui resultados de verificações programadas e de solicitação de envio.

Por padrão, o filtro Encontrado em da guia "Segurança" será definido como a ramificação navegada mais recentemente (ou a ramificação padrão do repositório). Para ver outras vulnerabilidades, ajuste ou limpe o filtro Encontrado em.

A guia Segurança inclui os seguintes dados sobre cada vulnerabilidade:

  • Gravidade: a gravidade de segurança da vulnerabilidade, conforme classificada pela fonte do banco de dados de vulnerabilidades públicas.
  • ID: o ID da CVE público, se disponível, ou outro identificador, como o ID do GHSA. Além disso, se disponível, um link externo para a entrada do banco de dados público da vulnerabilidade.
  • Encontrado em: o SHA de commit do Git que foi verificado, bem como uma lista de todas as ramificações do Git, tags do Git ou solicitações de pull para as quais esse é o commit mais recente.
  • Arquivo: o arquivo de origem do repositório que incluiu a dependência vulnerável e, se disponível, o número da linha.
  • Pacote: o nome do pacote dependente e a versão dele que contém a vulnerabilidade. Se conhecida, a versão do pacote que aborda a vulnerabilidade também é listada.
  • Descrição: se disponível, uma descrição da vulnerabilidade.
  • Detectado: a data da verificação que detectou a vulnerabilidade.

Os seguintes filtros estão disponíveis na guia Segurança:

  • Gravidade: exibe apenas vulnerabilidades com a gravidade especificada (CRITICAL, HIGH, MEDIUM ou LOW).
  • Encontrado em: exibe apenas as vulnerabilidades detectadas na ramificação, tag ou SHA de commit do Git especificado.
  • Arquivo: exibe apenas as vulnerabilidades detectadas no caminho de origem especificado. Aceita substrings. Por exemplo, project/ pode ser usado para filtrar dependências vulneráveis no diretório project/.
  • Vulnerabilidade: pesquise uma vulnerabilidade pelos dados públicos dela, como ID, descrição ou nome do pacote afetado. Aceita substrings.
  • Data de início e Data de término: exibe apenas as vulnerabilidades detectadas depois ou antes das datas fornecidas, respectivamente. Formato: YYYY-MM-DD.

Solicitações de pull

Quando uma verificação de solicitação de envio é concluída, as vulnerabilidades detectadas são exibidas na guia Conversa da solicitação de envio. As verificações analisam todos os arquivos do repositório. Vulnerabilidades de arquivos não modificados na solicitação de envio podem ser incluídas.

As solicitações de pull mostram uma visualização resumida das principais vulnerabilidades detectadas. Para ver a lista completa e os detalhes das vulnerabilidades da solicitação de envio, clique no link Resultados completos para acessá-los na guia "Segurança" do repositório.

As vulnerabilidades não impedem que as solicitações de pull sejam mescladas.

Tipos de arquivos compatíveis

Os arquivos de pacotes dos seguintes idiomas serão verificados em busca de vulnerabilidades de dependência:

Com suporte
Go
Java
JavaScript
Node.js
PHP
Python
Ruby
Rust
TypeScript
.NET

A seguir