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 e malware conhecidos, agrupados em três categorias: advertências revisadas pela GitHub, advertências não revisadas, e advertências de malware.

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.

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 revisados pela 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 para um pacote do qual você depende. Para saber mais, 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

{dados reutilizáveis.advisory-database.visão-geral-de-malware}

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.

Informações em avisos de segurança

Nesta seção, você pode encontrar informações mais detalhadas sobre atributos de dados específicos do GitHub Advisory Database.

GHSA IDs

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 aviso é criado no GitHub 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}/

Níveis de CVSS

O GitHub Advisory Database é compatível com o CVSS versão 3.1 e o CVSS versão 4.0.

Cada aviso de segurança contém informações sobre a vulnerabilidade ou o 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, avisos da lista do Banco de Dados Nacional de Vulnerabilidades contém um link para a entrada CVE, no qual 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.

  • Low
  • Médio/Moderado
  • High
  • 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 do CVSS atribuída pelo mantenedor, que pode ser a versão 3.1 ou 4.0. Se o CVE for importado, o GitHub Advisory Database é compatível com as versões 4.0, 3.1 e 3.0 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.

Pontuações do EPSS

O Exploit Prediction Scoring System, ou EPSS, é um sistema desenvolvido pelo Forum of Incident Response and Security Teams (FIRST) para quantificar a probabilidade de exploração de vulnerabilidades. O modelo produz uma pontuação de probabilidade entre 0 e 1 (0 e 100%) em que, quanto maior a pontuação, maior a probabilidade de uma vulnerabilidade ser explorada. Para obter mais informações sobre o FIRST, consulte https://www.first.org/.

O GitHub Advisory Database inclui pontuações EPSS fornecidas pelo FIRST para avisos que contêm CVEs com os dados EPSS correspondentes. A GitHub também exibe o percentil de pontuação do EPSS, que é a proporção de todas as vulnerabilidades marcadas com a mesma pontuação ou uma pontuação do EPSS inferior.

Por exemplo, se um consultor teve uma pontuação do EPSS com uma porcentagem de 90,534% no percentil 95, de acordo com o modelo do EPSS, isso significa que:

  • Há 90,534% de chance de essa vulnerabilidade ser explorada nos próximos 30 dias.
  • 95% do total de vulnerabilidades modeladas são consideradas menos propensas de serem exploradas nos próximos 30 dias do que essa vulnerabilidade.

Informações estendidas sobre como interpretar esses dados podem ser encontradas no Guia do Usuário sobre o EPSS do FIRST. Essas informações ajudam a entender como a porcentagem e o percentil podem ser usados para interpretar a probabilidade de uma vulnerabilidade ser explorada, de acordo com o modelo do FIRST. Para obter mais informações, consulte o Guia do usuário sobre o EPSS do FIRST, no site do FIRST.

O FIRST também fornece informações adicionais sobre a distribuição de seus dados do EPSS. Para obter mais informações, consulte a documentação de dados e estatísticas do EPSS no site do FIRST.

Observação

Para garantir que os dados do EPSS estejam sempre atualizados, a GitHub realiza uma sincronização diária. Embora as porcentagens de pontuação do EPSS sempre sejam totalmente sincronizadas, os percentis de pontuação apenas serão atualizados quando forem significativamente diferentes.

Na GitHub, não criamos esses dados, mas os obtemos do FIRST, o que significa que esses dados não são editáveis nas contribuições da comunidade. Para obter mais informações sobre contribuições da comunidade, confira Editando consultorias de segurança no banco de dados consultivo do GitHub.

Contribuições da comunidade

Uma contribuição da comunidade é uma solicitação de pull enviada ao github/advisory-database repositório que melhora o conteúdo de um aviso de segurança global. Ao fazer uma contribuição da comunidade, você pode editar ou adicionar qualquer detalhe, incluindo ecossistemas afetados adicionais, o nível de gravidade ou a descrição de quem é afetado. A equipe de curadoria do GitHub Security Lab irá revisar as contribuições enviadas e as publicará em GitHub Advisory Database, se aceitas.

Se aceitarmos e publicarmos a contribuição da comunidade, a pessoa que enviou a solicitação de pull da contribuição da comunidade receberá automaticamente o tipo de crédito "Analista". Para saber mais, confira Criando uma consultoria de segurança do repositório.

Leitura adicional