A guia Dependabot alerts do repositório lista todos os Dependabot alerts abertos e fechados e as Dependabot security updates correspondentes. Você pode filtrar os alertas por pacote, ecossistema ou manifesto. Você pode classificar a lista de alertas, além de poder clicar em alertas específicos para mais detalhes. Você também pode descartar ou reabrir alertas, um a um ou selecionando vários alertas de uma só vez. Para obter mais informações, confira "Sobre alertas do Dependabot".
Você pode habilitar atualizações automáticas de segurança para qualquer repositório que use Dependabot alerts e o grafo de dependência. Para obter mais informações, confira "Sobre as atualizações de segurança do Dependabot".
Sobre atualizações para dependências vulneráveis no seu repositório
GitHub gera Dependabot alerts quando detectamos que a ramificação padrão da sua base de código está usando dependências com riscos de segurança conhecidos. Para repositórios em que Dependabot security updates estão habilitados, quando GitHub detecta uma dependência vulnerável no branch padrão, Dependabot cria uma pull request para corrigi-la. A pull request irá atualizar a dependência para a versão minimamente segura possível, o que é necessário para evitar a vulnerabilidade.
O Dependabot não gera Dependabot alerts para malwares. Para obter mais informações, confira "Sobre o banco de dados de avisos do GitHub".
Cada alerta de Dependabot tem um identificador único de número e a aba de Dependabot alerts lista um alerta para cada vulnerabilidade detectada. O legado de Dependabot alerts agrupou as vulnerabilidades por dependência e gerou um único alerta por dependência. Se você acessar um alerta de legado Dependabot, você será redirecionado para uma aba de Dependabot alerts filtrada para esse pacote.
Você pode filtrar e classificar Dependabot alerts usando uma variedade de filtros e opções de classificação disponíveis na interface do usuário. Para obter mais informações, confira "Como priorizar Dependabot alerts", abaixo.
Você também pode auditar as ações executadas em resposta aos alertas do Dependabot. Para obter mais informações, confira "Alertas de segurança de auditoria".
Como priorizar Dependabot alerts
A GitHub ajuda você a priorizar a correção de Dependabot alerts. Por padrão, Dependabot alerts são classificados por importância. A ordem de classificação "Mais importante" ajuda você a priorizar em quais Dependabot alerts se concentrar primeiro. Os alertas são classificados com base no impacto potencial, capacidade de ação e relevância. Nosso cálculo de priorização está constantemente sendo aprimorado e inclui fatores como pontuação CVSS, escopo de dependência e se chamadas de função vulneráveis são encontradas no alerta.
Você também pode usar Regras de triagem automática do Dependabot para priorizar Dependabot alerts. Para obter mais informações, confira "Sobre as regras de triagem automática do Dependabot".
Você pode classificar e filtrar Dependabot alerts digitando filtros como pares key:value
na barra de pesquisa.
Opção | Descrição | Exemplo |
---|---|---|
ecosystem | Exibe alertas para o ecossistema selecionado | Usar ecosystem:npm para mostrar Dependabot alerts para npm |
has | Exibe alertas atendendo aos critérios de filtro selecionados | Usar has:patch para mostrar alertas relacionados a avisos que têm um patchUsar has:vulnerable-calls para mostrar alertas relacionados a chamadas a funções vulneráveis |
is | Exibe alertas com base no estado | Usar is:open para mostrar alertas abertos |
manifest | Exibe alertas para o manifesto selecionado | Usar manifest:webwolf/pom.xml para mostrar alertas no arquivo pom.xml do aplicativo webwolf |
package | Exibe alertas para o pacote selecionado | Usar package:django para mostrar alertas para o django |
resolution | Exibe alertas do status de resolução selecionado | Usar resolution:no-bandwidth para mostrar alertas estacionados anteriormente devido à falta de recursos ou de tempo para corrigi-los |
repo | Exibe alertas com base no repositório ao qual eles se relacionam Observe que esse filtro só está disponível para obter uma visão geral de segurança. Para obter mais informações, confira "Sobre a visão geral de segurança". | Usar repo:octocat-repo para mostrar alertas no repositório chamado octocat-repo |
scope | Exibe alertas com base no escopo da dependência à qual eles se relacionam | Usar scope:development para mostrar alertas para dependências que são usadas somente durante o desenvolvimento |
severity | Exibe alertas com base no nível de gravidade | Usar severity:high para mostrar alertas com nível de gravidade Alto |
sort | Exibe alertas de acordo com a ordem de classificação selecionada | A opção de classificação padrão para alertas é sort:most-important , que classifica os alertas por importânciaUsar sort:newest para mostrar os alertas mais recentes relatados por Dependabot |
Além dos filtros disponíveis por meio da barra de pesquisa, você pode classificar e filtrar dados Dependabot alerts usando os menus suspensos na parte superior da lista de alertas. Como alternativa, para filtrar por rótulo, clique em um rótulo atribuído a um alerta para aplicar automaticamente esse filtro à lista de alertas.
A barra de pesquisa também permite a pesquisa completa de texto de alertas e avisos de segurança relacionados. Você pode pesquisar parte de um nome de consultoria de segurança ou descrição para retornar os alertas em seu repositório relacionados a esse aviso de segurança. Por exemplo, a pesquisa yaml.load() API could execute arbitrary code
retornará Dependabot alerts vinculados a "PyYAML desserializa de maneira insegura cadeias de caracteres YAML que levam à execução arbitrária do código" à medida que a cadeia de caracteres de pesquisa aparece na descrição do aviso.
Ecossistemas e manifestos com suporte para escopo de dependência
A tabela a seguir resume se há suporte para escopo de dependência em vários ecossistemas e manifestos, ou seja, se o Dependabot pode identificar se uma dependência é usada para desenvolvimento ou produção.
Idioma | Ecossistema | Arquivo de manifesto | Escopo de dependência com suporte |
---|---|---|---|
Dart | pub | pubspec.yaml | |
Dart | pub | pubspec.lock | |
Go | Módulos Go | go.mod | Não. O padrão é runtime |
Java | Maven | pom.xml | O test mapeia para desenvolvimento, caso contrário, o escopo é padronizado para tempo de execução |
JavaScript | npm | package.json | |
JavaScript | npm | package-lock.json | |
JavaScript | npm | pnpm-lock.yaml | |
JavaScript | yarn v1 | yarn.lock | Não. O padrão é runtime |
PHP | Compositor | composer.json | |
PHP | Compositor | composer.lock | |
Python | Poetry | poetry.lock | |
Python | Poetry | pyproject.toml | |
Python | pip | requirements.txt | O escopo é o desenvolvimento se o nome do arquivo contiver test ou dev , caso contrário, é runtime |
Python | pip | pipfile.lock | |
Python | pip | pipfile | |
Ruby | RubyGems | Gemfile | |
Ruby | RubyGems | Gemfile.lock | Não. O padrão é runtime |
Rust | Cargo | Cargo.toml | |
Rust | Cargo | Cargo.lock | Não. O padrão é runtime |
YAML | GitHub Actions | - | Não. O padrão é runtime |
.NET (C#, F#, VB etc.) | NuGet | .csproj/.vbproj .vcxproj/.fsproj | Não. O padrão é runtime |
.NET | NuGet | packages.config | Não. O padrão é runtime |
.NET | NuGet | .nuspec | Quando a tag != tempo de execução |
Os alertas para pacotes listados como dependências de desenvolvimento são marcados com o rótulo Development
na página Dependabot alerts e também estão disponíveis para filtragem por meio do filtro scope
.
A página de detalhes dos alertas em pacotes com escopo de desenvolvimento mostra uma seção "Tags" que contém um rótulo Development
.
Sobre a detecção de chamadas para funções vulneráveis
Observações:
- A detecção de chamadas a funções vulneráveis pelo Dependabot está em versão prévia pública e está sujeita a alterações.
- A detecção de chamadas vulneráveis está habilitada em repositórios públicos. Essa análise também está disponível em repositórios privados pertencentes a organizações que usam o GitHub Enterprise Cloud e que têm uma licença do GitHub Advanced Security. Para obter mais informações, confira "Sobre a Segurança Avançada do GitHub".
Quando Dependabot informa que seu repositório usa uma dependência vulnerável, você precisa determinar quais são as funções vulneráveis e verificar se você as está usando. Depois de ter essas informações, você pode determinar com que urgência precisa atualizar para uma versão segura da dependência.
Para idiomas com suporte, Dependabot detecta automaticamente se você usa uma função vulnerável e adiciona o rótulo "Chamada vulnerável" aos alertas afetados. Você pode usar essas informações na exibição Dependabot alerts para fazer a triagem e priorizar o trabalho de correção com mais eficiência.
Observação: durante a versão versão prévia pública, esse recurso está disponível apenas para novos avisos do Python criados após 14 de abril de 2022 e para um subconjunto de avisos históricos do Python. GitHub está trabalhando para preencher dados em outros avisos históricos do Python, que são adicionados continuamente. Chamadas vulneráveis são destacadas apenas nas páginas Dependabot alerts.
Você pode filtrar a exibição para mostrar apenas alertas em que Dependabot detectou pelo menos uma chamada para uma função vulnerável usando o filtro has:vulnerable-calls
no campo de pesquisa.
Para alertas em que chamadas vulneráveis são detectadas, a página de detalhes do alerta mostra informações adicionais:
- Um ou mais blocos de código mostrando onde a função é usada.
- Uma anotação listando a própria função, com um link para a linha onde a função é chamada.
Para obter mais informações, confira "Revisão e correção de alertas" abaixo.
Exibir Dependabot alerts
Você pode exibir todos os Dependabot alerts abertos e fechados e as Dependabot security updates correspondentes na guia Dependabot alerts do seu repositório. Você pode classificar e filtrar Dependabot alerts selecionando um filtro no menu suspenso.
-
Em GitHub, acesse a página principal do repositório.
-
Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.
-
Na barra lateral "Alertas de vulnerabilidade" da visão geral de segurança, clique em Dependabot . Se essa opção está ausente, isso significa que você não tem acesso aos alertas de segurança e precisa receber o acesso. Para obter mais informações, confira "Gerenciando as configurações de segurança e análise do repositório".
-
Opcionalmente, para filtrar alertas, selecione um filtro no menu suspenso e clique no filtro que deseja aplicar. Você também pode digitar filtros na barra de pesquisa. Como alternativa, para filtrar por rótulo, clique em um rótulo atribuído a um alerta para aplicar automaticamente esse filtro à lista de alertas. Para obter mais informações sobre filtragem e classificação de alertas, confira "Como priorizar Dependabot alerts".
-
Clique no alerta que você deseja visualizar.
-
Opcionalmente, para sugerir um aprimoramento na consultoria de segurança relacionada, no lado direito da página de detalhes do alerta, clique em Sugerir aprimoramentos para essa consultoria no GitHub Advisory Database . Para obter mais informações, confira "Editando consultorias de segurança no banco de dados consultivo do GitHub".
Revisão e correção de alertas
É importante garantir que todas as suas dependências estejam livres de quaisquer falhas de segurança. Quando Dependabot descobre vulnerabilidades em suas dependências, você deve avaliar o nível de exposição do seu projeto e determinar quais etapas de correção devem ser tomadas para proteger seu aplicativo.
Se uma versão corrigida da dependência estiver disponível, você poderá gerar uma solicitação de pull Dependabot para atualizar essa dependência diretamente de um alerta Dependabot. Se a opção Dependabot security updates estiver habilitada, a solicitação de pull poderá ser vinculada ao alerta do Dependabot.
Nos casos em que uma versão corrigida não está disponível ou você não pode atualizar para a versão segura, Dependabot compartilha informações adicionais para ajudar você a determinar as próximas etapas. Ao clicar para visualizar um alerta Dependabot, você pode ver os detalhes completos do aviso de segurança para a dependência, incluindo as funções afetadas. Em seguida, você pode verificar se o código chama as funções afetadas. Essas informações podem ajudar a avaliar melhor o seu nível de risco e determinar soluções alternativas ou se você pode aceitar o risco representado pela conselho de segurança.
Para idiomas com suporte, Dependabot detecta chamadas para funções vulneráveis para você. Quando você visualiza um alerta rotulado como "Chamada vulnerável", os detalhes incluem o nome da função e um link para o código que a chama. Muitas vezes, você poderá tomar decisões com base nessas informações, sem explorar mais.
Corrigir dependências vulneráveis
-
Exiba os detalhes de um alerta. Para obter mais informações, confira "Exibir Dependabot alerts" acima.
-
Se você tiver a opção Dependabot security updates habilitada, poderá haver um link para uma solicitação de pull que corrigirá a dependência. Como alternativa, você pode clicar em Criar atualização de segurança Dependabot na parte superior da página de detalhes do alerta para criar uma solicitação de pull.
-
Opcionalmente, se você não usar Dependabot security updates, poderá usar as informações na página para decidir para qual versão da dependência atualizar e criar uma solicitação de pull para atualizar a dependência para uma versão segura.
-
Quando estiver pronto para atualizar a dependência e resolver a vulnerabilidade, faça merge da pull request.
Cada solicitação de pull gerada pelo Dependabot inclui informações sobre os comandos que você pode usar para controlar o Dependabot. Para obter mais informações, confira "Gerenciar pull requests para atualizações de dependências".
Ignorar Dependabot alerts
Dica: você só pode ignorar alertas em aberto.
Se você agendar um trabalho extensivo para atualizar uma dependência ou decidir que um alerta não precisa ser corrigido, poderá ignorar o alerta. Ignorar alertas que você já avaliou facilita a triagem de novos alertas à medida que aparecem.
-
Exiba os detalhes de um alerta. Para obter mais informações, confira "Exibir dependências vulneráveis" (acima).
-
Escolha a lista suspensa “Ignorar” e clique em um motivo para ignorar o alerta. Alertas descartados não corrigidos podem ser reabertos mais tarde.
-
Opcionalmente, adicione um comentário de ignorar. O comentário de ignorar será adicionado à linha do tempo do alerta e pode ser usado como justificativa em auditorias e relatórios. Você pode recuperar ou definir um comentário usando a API do GraphQL. O comentário está contido no campo
dismissComment
. Para obter mais informações, confira "Objetos" na documentação da API do GraphQL. -
Clique em Ignorar alerta.
Ignorar múltiplos alertas de uma vez
- Exibição dos Dependabot alerts em aberto. Para obter mais informações, confira "Visualizando e atualizando alertas do Dependabot".
- Opcionalmente, filtre a lista de alertas selecionando um menu suspenso e clique no filtro que você deseja aplicar. Você também pode digitar filtros na barra de pesquisa.
- À esquerda de cada título de alerta, selecione os alertas que você deseja ignorar.
- Opcionalmente, na parte superior da lista de alertas, selecione todos os alertas na página.
- Selecione a lista suspensa "Ignorar alertas" e clique em um motivo para ignorar os alertas.
Visualizando e atualizando alertas fechados
Você pode visualizar todos os alertas abertos e reabrir alertas que foram descartados anteriormente. Alertas fechados que já foram corrigidos não poderão ser reabertos.
-
Em GitHub, acesse a página principal do repositório.
-
Abaixo do nome do repositório, clique em Segurança. Caso não consiga ver a guia "Segurança", selecione o menu suspenso e clique em Segurança.
-
Na barra lateral "Alertas de vulnerabilidade" da visão geral de segurança, clique em Dependabot . Se essa opção está ausente, isso significa que você não tem acesso aos alertas de segurança e precisa receber o acesso. Para obter mais informações, confira "Gerenciando as configurações de segurança e análise do repositório".
-
Para ver apenas os alertas fechados, clique em Fechados.
-
Clique no alerta que deseja ver ou atualizar.
-
Opcionalmente, se o alerta foi ignorado e você deseja reabri-lo, clique em Reabrir. Alertas que já foram corrigidos não poderão ser reabertos.
Reabrir múltiplos alertas de uma vez
- Exibir os Dependabot alerts fechados. Para obter mais informações, confira "Visualizando e atualizando alertas do Dependabot" (acima).
- À esquerda de cada título de alerta, selecione os alertas que você deseja reabrir clicando na caixa de seleção adjacente a cada alerta.
- Opcionalmente, na parte superior da lista de alertas, selecione todos os alertas fechados na página.
- Clique em Reabrir para reabrir os alertas. Alertas que já foram corrigidos não poderão ser reabertos.
Revisão dos logs de auditoria do Dependabot alerts
Quando um membro da sua organização executa uma ação relacionada ao Dependabot alerts, você pode examiná-las no log de auditoria. Para obter mais informações sobre como acessar o log, confira “Revisar o log de auditoria da organização.”
Os eventos no log de auditoria do Dependabot alerts incluem detalhes da ação, como quem a executou, qual foi executada e quando. O evento também inclui um link para o próprio alerta. Quando um membro da sua organização ignora um alerta, o evento exibe o motivo e um comentário. Para obter informações sobre as ações Dependabot alerts, confira a categoria repository_vulnerability_alert
em “Eventos de log de auditoria para sua organização.”