Os resultados da detecção de dependências relatados pelo GitHub Enterprise Server podem ser diferentes dos resultados retornados por outras ferramentas. Existem boas razões para isso e é útil entender como GitHub determina as dependências para o seu projeto.
Por que algumas dependências parecem estar faltando?
O GitHub gera e exibe dados de dependência de maneira diferente de outras ferramentas. Consequentemente, se você usou outra ferramenta para identificar dependências, quase certamente verá resultados diferentes. Considere o seguinte:
-
Banco de Dados Consultivo GitHub é uma das fontes de dados que GitHub usa para identificar dependências vulneráveis. É um banco de dados grátis e curado de consultorias de segurança para ecossistemas de pacote comum em GitHub. Inclui tanto dados relatados diretamente para GitHub de Aviso de Segurança do GitHub quanto os feeds oficiais e as fontes comunitárias. Estes dados são revisados e curados por GitHub para garantir que informações falsas ou não acionáveis não sejam compartilhadas com a comunidade de desenvolvimento. For more information about advisory data, see "Browsing security advisories in the Banco de Dados Consultivo GitHub" in the GitHub.com documentation.
-
O gráfico de dependências analisa todos os arquivos conhecidos de manifesto de pacote no repositório de um usuário. Por exemplo, para o npm, ele irá analisar o arquivo package-lock.json. Ele constrói um gráfico de todas as dependências do repositório e dependências públicas. Isso acontece quando você habilita o gráfico de dependências e quando alguém faz push para o branch-padrão, e inclui commits que fazem alterações em um formato de manifesto compatível. Para obter mais informações, consulte "Sobre o gráfico de dependências" e "Solucionando problemas no gráfico de dependências".
-
Dependabot verifica qualquer push, para o branch-padrão, que contém um arquivo de manifesto. Quando uma nova consultoria é adicionada, ela verifica todos os repositórios existentes e gera um alerta para cada repositório afetado. Alertas do Dependabot são agregados ao nível do repositório, em vez de criar um alerta por consultoria. Para obter mais informações, consulte "Sobre Alertas do Dependabot".
-
Dependabot não digitaliza repositórios em uma agenda, mas sim quando algo muda. Por exemplo, adiciona-se uma digitalização quando uma nova dependência é adicionada (GitHub verifica isso em cada push), ou quando uma nova consultoria é adicionada ao banco de dados e sincronizada com your GitHub Enterprise Server instance. Para obter mais informações, consulte "Sobre Alertas do Dependabot".
Alertas do Dependabot só está relacionado a dependências inseguras nos manifestos e arquivos de bloqueio?
Os Alertas do Dependabot aconselham você com relação a dependências que você deve atualizar, incluindo dependências transitivas, em que a versão pode ser determinada a partir de um manifesto ou de um arquivo de bloqueio.
Verifique: A vulnerabilidade não detectada para um componente não especificado no manifesto ou no arquivo de bloqueio do repositório?
Por que não tenho Alertas do Dependabot para alguns ecossistemas?
Alertas do Dependabot são compatíveis com um conjunto de ecossistemas em que podemos fornecer dados de alta qualidade e acionáveis. As consultorias curadas no Banco de Dados Consultivo GitHub, o gráfico de dependências, e Alertas do Dependabot são fornecidos para vários ecossistemas, incluindo o Maven do Javaen, o npm do JavaScript e o Yarn, Nuget do .NET's, Pip Python, RubyGems e PHP Composer. Nós continuaremos a adicionar suporte para mais ecossistemas ao longo do tempo. Para uma visão geral dos ecossistemas de pacotes suportados por nós, consulte "Sobre o gráfico de dependências".
Vale a pena notar que podem existir consultorias de segurança para outros ecossistemas. As informações em uma consultoria de segurança não revisada são fornecidas pelos mantenedores de um determinado repositório. Este dado não é curado por GitHub. For more information about advisory data, see "Browsing security advisories in the Banco de Dados Consultivo GitHub" in the GitHub.com documentation.
Verificar: A vulnerabilidade não capturada se aplica a um ecossistema não suportado?
O Dependabot gera alertas de vulnerabilidades que são conhecidas há muitos anos?
O Banco de Dados Consultivo GitHub foi lançado em novembro de 2019 e inicialmente preenchido para incluir consultores sobre riscos de segurança nos ecossistemas compatívies a partir de 2017. Ao adicionar CVEs ao banco de dados, priorizamos a curadoria de CVEs mais recentes e CVEs que afetam versões mais recentes do software.
Algumas informações sobre vulnerabilidades mais antigas estão disponíveis, especialmente quando estes CVEs estão particularmente disseminados. No entanto algumas vulnerabilidades antigas não estão incluídas no Banco de Dados Consultivo GitHub. Se houver uma vulnerabilidade antiga específica que você precisar incluir no banco de dados, entre em contato com your site administrator.
Verifique: A vulnerabilidade não detectada tem uma data de publicação anterior a 2017 no Banco de Dados Nacional de Vulnerabilidade?
Por que o Banco de Dados Consultivo GitHub usa um subconjunto de dados de vulnerabilidade publicada?
Algumas ferramentas de terceiros usam dados de CVE não descurados que não são verificados ou filtrados por um ser humano. Isto significa que os CVEs com erros de etiqueta ou de gravidade, ou outros problemas de qualidade, gerarão alertas mais frequentes, mais ruidosos e menos úteis.
Uma vez que Dependabot usa dados curados em Banco de Dados Consultivo GitHub, o volume de alertas pode ser menor, mas os alertas que você recebe serão precisos e relevantes.