Skip to main content

Sobre o banco de dados de avisos do GitHub

O GitHub Advisory Database contém uma lista de vulnerabilidades de segurança conhecidas e malwares, agrupados em três categorias: avisos revisados pelo GitHub, avisos não revisados e avisos de malwares.

Sobre o GitHub Advisory Database

Adicionamos comunicados ao GitHub Advisory Database das seguintes fontes:

Se você conhecer outro banco de dados do qual devemos importar os avisos, conte-nos sobre ele abrindo um problema em https://github.com/github/advisory-database.

Os avisos de segurança são publicados como arquivos JSON no formato OSV (Vulnerabilidade de código aberto). Para obter mais informações sobre o formato OSV, confira "Formato de vulnerabilidade de código aberto".

Sobre tipos de avisos de segurança

Cada aviso no GitHub Advisory Database é sobre uma vulnerabilidade em projetos de código aberto ou sobre softwares de código aberto mal-intencionados.

Uma vulnerabilidade é um problema no código de um projeto que poderia ser explorada para corromper a confidencialidade, a integridade ou a disponibilidade do projeto ou de outros projetos que usam o código. As vulnerabilidades variam de tipo, gravidade e método de ataque. As vulnerabilidades no código geralmente são introduzidas por acidente e corrigidas logo que são descobertas. Você deve atualizar o código para usar a versão fixa da dependência assim que ela estiver disponível.

Por outro lado, um software mal-intencionado ou um malware é um código projetado com a intenção de para executar funções indesejadas ou prejudiciais. O malware pode ter como alvo hardware, software, dados confidenciais ou usuários de qualquer aplicativo que o use. Você precisa remover o malware do projeto e encontrar uma substituição alternativa e mais segura para a dependência.

Avisos examinados pelo GitHub

Os avisos revisados pelo GitHub são vulnerabilidades de segurança que foram mapeadas para pacotes nos ecossistemas que contam com nosso suporte. Examinamos cuidadosamente a validade de cada aviso e garantimos que eles tenham uma descrição completa e contenham informações de ecossistema e pacote.

Geralmente, nomeamos os ecossistemas com suporte de acordo com o registro do pacote associado da linguagem de programação de software. Examinamos os avisos quando eles são de uma vulnerabilidade em um pacote proveniente de um registro com suporte.

Se você tiver uma sugestão para um novo ecossistema que precisa de suporte, abra um problema para discussão.

Caso habilite os Dependabot alerts para os repositórios, você será notificado automaticamente quando um novo aviso revisado pelo GitHub relatar uma vulnerabilidade ou um malware em pacotes dos quais você depende. Para obter mais informações, confira "Sobre alertas do Dependabot".

Avisos não examinados

Comunicados não revisados são vulnerabilidades de segurança que publicamos automaticamente no GitHub Advisory Database, diretamente do feed do National Vulnerability Database.

Dependabot não cria Dependabot alerts para consultorias não revisadas, pois esse tipo de consultoria não é verificado com relação à validade ou integralidade.

Avisos de malware

Observação: o Assistente para malware está atualmente na versão beta e está sujeito a alterações.

Os avisos de malware estão relacionados a vulnerabilidades causadas por malware e são avisos de segurança que o GitHub publica automaticamente no GitHub Advisory Database, diretamente das informações fornecidas pela equipe de segurança do npm. Os avisos de malware são exclusivos para o ecossistema do npm. O GitHub não edita nem aceita contribuições da comunidade nesses avisos.

O Dependabot não gera alertas quando um malware é detectado, pois a maioria das vulnerabilidades não pode ser resolvida por usuários downstream. Você pode visualizar avisos de malware ao pesquisar type:malware no GitHub Advisory Database.

Nossos avisos de malware são principalmente sobre ataques de substituição. Durante esse tipo de ataque, um invasor publica um pacote no registro público com o mesmo nome de uma dependência da qual os usuários dependem de um registro de terceiros ou privado, com a esperança de que a versão mal-intencionada seja consumida. O Dependabot não examina as configurações do projeto para determinar se os pacotes são provenientes de um registro privado. Portanto, não temos certeza se você está usando uma versão mal-intencionada ou uma versão não mal-intencionada. Os usuários que têm suas dependências adequadamente definidas não devem ser afetados por malware.

Sobre informações em avisos de segurança

Nesta seção, é possível encontrar informações mais detalhadas sobre avisos de segurança no GitHub Advisory Database, como as seguintes:

  • IDs de consultoria e qual formato esses identificadores usam.
  • Os níveis do CVSS usados para atribuir níveis de gravidade.

Sobre as IDs de GHSA

Cada comunicado de segurança, independentemente do tipo, tem um identificador exclusivo conhecido como ID de GHSA. Um qualificador GHSA-ID é atribuído quando um comunicado é criado no GitHub.com ou adicionado ao GitHub Advisory Database por meio de qualquer uma das fontes compatíveis.

A sintaxe das IDs de GHSA segue este formato: GHSA-xxxx-xxxx-xxxx em que:

  • x é uma letra ou um número do seguinte conjunto: 23456789cfghjmpqrvwx.
  • Fora da parte GHSA do nome:
    • Os números e letras são atribuídos aleatoriamente.
    • Todas as letras são minúsculas.

É possível validar uma ID de GHSA usando uma expressão regular.

Bash
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/

Sobre os níveis do CVSS

Cada aviso de segurança contém informações sobre a vulnerabilidade ou malware,, o que pode incluir a descrição, a severidade, o pacote afetado, o ecossistema do pacote, as versões afetadas e as versões de patch, o impacto e informações opcionais como, referências, soluções alternativas e créditos. Além disso, a consultoria da lista de Bancos de Vulnerabilidade Nacional contêm um link para o registro CVE, onde você pode ler mais detalhes sobre a vulnerabilidade, suas pontuações CVSS e seu nível de gravidade qualitativa. Para obter mais informações, confira o "Banco de Dados de Vulnerabilidades Nacionais" (National Vulnerability Database) do National Institute of Standards and Technology.

O nível de severidade é um dos quatro níveis possíveis definidos no "CVSS (Sistema de Pontuação de Vulnerabilidade Comum), Seção 5".

  • Baixo
  • Médio/Moderado
  • Alta
  • Crítico

O GitHub Advisory Database usa os níveis de CVSS descritos acima. Se GitHub obtiver um CVE, o GitHub Advisory Database usará a versão 3.1 do CVSS. Se o CVE for importado, o GitHub Advisory Database será compatível com as versões 3.0 e 3.1 do CVSS.

Você também pode ingressar no GitHub Security Lab para procurar tópicos relacionados à segurança e contribuir com ferramentas de segurança e projetos.

Leitura adicional