Sobre o GitHub Advisory Database
Adicionamos comunicados ao GitHub Advisory Database das seguintes fontes:
- Consultorias de segurança relatadas em GitHub
- O banco de dados Nacional de Vulnerabilidades
- O banco de dados Avisos de segurança do npm
- O banco de dados FriendsOfPHP
- O banco de dados Go Vulncheck
- O banco de dados Avisos de Empacotamento do Python
- O banco de dados Avisos do Ruby
- O banco de dados Avisos do RustSec
- {1>Contribuições da comunidade<1}. Para obter mais informações, confira https://github.com/github/advisory-database/pulls.
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 .
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.
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.
- Composer (Registro: https://packagist.org/)
- Go (registro: https://pkg.go.dev/)
- GitHub Actions (https://github.com/marketplace?type=actions/)
- Maven (registro: https://repo.maven.apache.org/maven2)
- npm (registro: https://www.npmjs.com/)
- NuGet (registro: https://www.nuget.org/)
- pip (registro: https://pypi.org/)
- pub (registro: https://pub.dev/packages/registry)
- RubyGems (registro: https://rubygems.org/)
- Rust (registro: https://crates.io/)
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.
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.
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
/GHSA(-[23456789cfghjmpqrvwx]{4}){3}/
Sobre os níveis do CVSS
Cada aviso de segurança contém informações sobre a vulnerabilidade, 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
- "Sobre alertas do Dependabot"
- A definição de "vulnerabilidade" do Programa CVE