{"meta":{"title":"Detecção de dependência vulnerável","intro":"Se as informações de dependência relatadas por GitHub não forem o que você esperava, há vários pontos a serem considerados e várias coisas que você pode verificar.","product":"Qualidade de segurança e código","breadcrumbs":[{"href":"/pt/code-security","title":"Qualidade de segurança e código"},{"href":"/pt/code-security/reference","title":"Referência"},{"href":"/pt/code-security/reference/supply-chain-security","title":"Segurança da cadeia de fornecedores"},{"href":"/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot","title":"Solucionar problemas do Dependabot"},{"href":"/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/vulnerability-detection","title":"Detecção de vulnerabilidades"}],"documentType":"article"},"body":"# Detecção de dependência vulnerável\n\nSe as informações de dependência relatadas por GitHub não forem o que você esperava, há vários pontos a serem considerados e várias coisas que você pode verificar.\n\nOs resultados da detecção de dependências relatados pelo GitHub podem ser diferentes dos resultados retornados por outras ferramentas. Existem boas razões para isso e é útil entender como o GitHub determina as dependências para o seu projeto.\n\n## Dependências ausentes ou não detectadas\n\nGitHub gera e exibe dados de dependência de forma diferente de outras ferramentas. Consequentemente, se você usou outra ferramenta para identificar dependências, quase certamente verá resultados diferentes. Considere o seguinte:\n\n* GitHub Advisory Database é uma das fontes de dados que GitHub usa para identificar dependências vulneráveis e malware. É um banco de dados gratuito e selecionado de avisos de segurança para ecossistemas de pacotes comuns em GitHub. Ele inclui tanto os dados relatados diretamente para GitHub a partir de GitHub Security Advisories quanto feeds oficiais e fontes da comunidade. Esses dados são revisados e curados GitHub para garantir que informações falsas ou sem possibilidade de ação não sejam compartilhadas com a comunidade de desenvolvimento. Para saber mais, confira [Como procurar avisos de segurança no GitHub Advisory Database](/pt/code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/browse-advisory-database).\n\n* O gráfico de dependências processa todos os arquivos de manifesto de pacote conhecidos no repositório de um usuário. Por exemplo, para o npm, ele 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 grafo de dependências e quando alguém faz push para o branch padrão, incluindo commits que alteram um formato de manifesto compatível. Para obter mais informações, consulte [Grafo de dependência](/pt/code-security/concepts/supply-chain-security/dependency-graph) e [Solução de problemas para o gráfico de dependências](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependency-graph-errors).\n\n* Dependabot verifica qualquer push para a ramificação padrão que contenha um arquivo de manifesto. Quando um novo aviso é adicionado, ele verifica todos os repositórios existentes e gera um alerta para cada repositório afetado.\n  Dependabot alerts são agregados no nível do repositório, em vez de criar um alerta por aviso. Para obter mais informações, consulte [Alertas do Dependabot](/pt/code-security/concepts/supply-chain-security/dependabot-alerts#when-dependabot-sends-alerts).\n\n* Dependabot security updates são disparados quando você recebe um alerta sobre uma dependência vulnerável em seu repositório. Sempre que possível, Dependabot cria uma solicitação de pull em seu repositório para atualizar a dependência vulnerável para a versão segura mínima possível necessária para evitar a vulnerabilidade. Para obter mais informações, consulte [Atualizações de segurança do Dependabot](/pt/code-security/concepts/supply-chain-security/dependabot-security-updates) e [Erros do Dependabot](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-errors).\n\nDependabot não verifica repositórios de forma programada, mas sim quando algo é alterado. Por exemplo, uma verificação é disparada quando uma nova dependência é adicionada (GitHub verifica isso em cada push) ou quando uma nova recomendação é adicionada ao banco de dados. Para obter mais informações, consulte [Alertas do Dependabot](/pt/code-security/concepts/supply-chain-security/dependabot-alerts#when-dependabot-sends-alerts).\n\n## Escopo de cobertura de alerta\n\nDependabot alerts informá-lo sobre as dependências que você deve atualizar, incluindo dependências transitivas, onde a versão pode ser determinada a partir de um manifesto ou de um lockfile.\nDependabot security updates só sugira uma mudança onde Dependabot possa \"corrigir\" diretamente a dependência, ou seja, quando ela é:\n\n* Dependências diretas, que são definidas explicitamente em um manifesto ou arquivo de bloqueio\n* Dependências transitórias declaradas em um arquivo de bloqueio\n\n**Verificação**: a vulnerabilidade não capturada é de um componente que não está especificado no manifesto ou no arquivo de bloqueio do repositório?\n\n## Ecossistemas sem suporte\n\nDependabot alerts há suporte para um conjunto de ecossistemas em que podemos fornecer dados acionáveis e de alta qualidade. Avisos selecionados no GitHub Advisory Database, o gráfico de dependência, Dependabot atualizações de segurança, e Dependabot alerts são fornecidos para vários ecossistemas, incluindo Maven do Java, npm e Yarn do JavaScript, NuGet do .NET, pip do Python, RubyGems do Ruby e Composer do PHP. Para obter uma visão geral dos ecossistemas de pacote aos quais oferecemos suporte Dependabot alerts, consulte [Ecossistemas de pacotes com suporte a gráficos de dependência](/pt/code-security/reference/supply-chain-security/dependency-graph-supported-package-ecosystems#supported-package-ecosystems).\n\nVale a pena observar que podem existir avisos de segurança para outros ecossistemas. As informações em um aviso de segurança não examinado são fornecidas pelos mantenedores de um determinado repositório. Esses dados não são curados por GitHub. Para saber mais, confira [Como procurar avisos de segurança no GitHub Advisory Database](/pt/code-security/how-tos/report-and-fix-vulnerabilities/fix-reported-vulnerabilities/browse-advisory-database).\n\n**Verificação**: a vulnerabilidade não capturada se aplica a um ecossistema sem suporte?\n\n## Vulnerabilidades históricas\n\nO GitHub Advisory Database foi lançado em novembro de 2019 e inicialmente atualizado retroativamente para incluir conselhos sobre riscos de segurança nos ecossistemas com suporte, com início em 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.\n\nAlgumas informações sobre vulnerabilidades mais antigas estão disponíveis, especialmente quando esses CVEs são particularmente difundidos, no entanto, algumas vulnerabilidades antigas não são incluídas no GitHub Advisory Database. Se houver uma vulnerabilidade antiga específica que você precise que seja incluída no banco de dados, entre em contato nos por meio do portal .\n\n**Verificação**: a vulnerabilidade não capturada tem uma data de publicação anterior a 2017 no National Vulnerability Database?\n\n## Escopo do banco de dados de consultoria\n\nAlgumas 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.\n\nComo Dependabot usa dados coletados no GitHub Advisory Database, o volume de alertas pode ser menor, mas os alertas recebidos serão precisos e relevantes.\n\n## Geração e agregação de alertas\n\nQuando uma dependência tem várias vulnerabilidades, gera-se um alerta para cada vulnerabilidade no nível da consultoria mais manifesto.\n\n![Captura de tela da aba de Dependabot que mostra dois alertas do mesmo pacote com manifestos diferentes.](/assets/images/help/repository/dependabot-alerts-view.png)\n\nOs Dependabot alerts herdados foram agrupados em um único alerta agregado com todas as vulnerabilidades para a mesma dependência. Se você navegar até um link para um alerta herdado Dependabot , será redirecionado para a Dependabot guia filtrada para exibir vulnerabilidades para esse pacote e manifesto dependentes.\n\n![Captura de tela da aba Dependabot que mostra os alertas filtrados da navegação até um alerta de legado de Dependabot.](/assets/images/help/repository/legacy-dependabot-alerts-view.png)\n\nA Dependabot alerts contagem em GitHub mostra um total para o número de alertas, que é o número de vulnerabilidades, não o número de dependências.\n\n**Verificação**: se houver uma discrepância nos totais que você está vendo, verifique se não está comparando números de alertas com números de dependências. Também verifique se você está visualizando todos os alertas e não um subconjunto de alertas filtrados.\n\n## Opções para ignorar dependências\n\nVocê pode configurar Dependabot para ignorar dependências específicas no arquivo de configuração, o que impedirá atualizações de segurança e de versão para essas dependências. Se você quiser usar apenas atualizações de segurança, substitua o comportamento padrão usando um arquivo de configuração. Para saber mais, confira [Configuração de atualizações de segurança do Dependabot](/pt/code-security/how-tos/secure-your-supply-chain/secure-your-dependencies/configure-security-updates#overriding-the-default-behavior-with-a-configuration-file) para impedir que as atualizações de versão sejam ativadas. Para obter informações sobre como ignorar dependências, confira [Como ignorar dependências específicas](/pt/code-security/how-tos/secure-your-supply-chain/manage-your-dependency-security/controlling-dependencies-updated#ignoring-specific-dependencies).\n\n## Limitações de repositório único para GitHub Actions versões\n\nSe o repositório contiver vários GitHub Actions (por exemplo, em um repositório único), o formato de marcação que você usa afetará como Dependabot detecta e atualiza versões de ações.\n\n* **Separador traço (`-`)** (por exemplo, `@my-action-v0.1.0`):\n  * Dependabot pode agrupar várias ações em uma única entrada de dependência ou não detectar novas versões corretamente. Isso ocorre porque Dependabot depende da análise de tags com base em barras para distinguir entre ações.\n* **Separador barra (`/`)** (por exemplo, `@my-action/v0.1.0`):\n  * Dependabot detecta e atualiza cada ação de forma independente, pois a barra cria uma estrutura hierárquica de marcações que se alinha à lógica de análise de Dependabot.\n\n**Recomendação:** para repositórios únicos com várias ações, use o formato `name/version` (barra) para marcas de ação. Isso garante que Dependabot possa analisar a hierarquia de tags corretamente e atualizar as ações de forma independente.\n\n* Example:\n\n  ```yaml\n  # Recommended: namespaced with slash\n  uses: my-org/monorepo/my-action@my-action/v0.1.0\n\n  # Not recommended: dash\n  uses: my-org/monorepo@my-action-v0.1.0\n  ```\n\n## Leitura adicional\n\n* [Alertas do Dependabot](/pt/code-security/concepts/supply-chain-security/dependabot-alerts#when-dependabot-sends-alerts)\n* [Visualizando e atualizando alertas do Dependabot](/pt/code-security/how-tos/manage-security-alerts/manage-dependabot-alerts/view-dependabot-alerts)\n* [Gerenciando as configurações de segurança e análise do repositório](/pt/repositories/managing-your-repositorys-settings-and-features/enabling-features-for-your-repository/managing-security-and-analysis-settings-for-your-repository)\n* [Solução de problemas para o gráfico de dependências](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependency-graph-errors)\n* [Erros do Dependabot](/pt/code-security/reference/supply-chain-security/troubleshoot-dependabot/dependabot-errors)\n* [Dependabot nos executores do GitHub Actions](/pt/code-security/concepts/supply-chain-security/dependabot-on-actions)"}