Skip to main content

Sobre os avisos de segurança do repositório

Você pode usar avisos de segurança do repositório para discutir de maneira privada, corrigir e publicar informações sobre vulnerabilidades de segurança em seu repositório público.

Quem pode usar esse recurso?

Os avisos de segurança do repositório e os relatórios de vulnerabilidades privadas estão disponíveis para repositórios públicos no GitHub.com

Sobre os avisos de segurança do repositório

A divulgação de vulnerabilidades é uma área onde a colaboração entre relatores de vulnerabilidade, como investigadores de segurança, e mantenedores de projeto, é muito importante. A partir do momento em que se detecta uma vulnerabilidade potencialmente prejudicial em termos de segurança, ambas as partes terão de trabalhar em conjunto até que uma vulnerabilidade seja divulgada para todos, idealmente com um patch disponível. Normalmente, quando alguém deixa um mantenedor saber em particular sobre uma vulnerabilidade de segurança, o mantenedor desenvolve uma correção, valida-a e notifica os usuários do projeto ou pacote. Para saber mais, consulte Sobre a divulgação coordenada de vulnerabilidades de segurança.

Os avisos de segurança do repositório permitem que os mantenedores dos repositórios públicos discutam e corrijam de modo privado as vulnerabilidades de segurança em um projeto. Depois de colaborar em uma correção, os responsáveis pelo repositório podem publicar o aviso de segurança para divulgar publicamente a vulnerabilidade de segurança na comunidade do projeto. Ao publicar avisos de segurança, os responsáveis pelo repositório facilitam para a comunidade a atualização das dependências do pacote e a pesquisa sobre o impacto das vulnerabilidades de segurança.

Com os avisos de segurança do repositório, você pode:

  1. Criar um aviso de segurança rascunho e usar o rascunho para discutir em particular o impacto da vulnerabilidade no seu projeto.
  2. Colaborar de modo particular com a correção da vulnerabilidade em uma bifurcação privada temporária.
  3. Publique a consultoria de segurança para alertar a sua comunidade sobre a vulnerabilidade depois que um patch for lançado.

Você também pode usar a API REST para criar, listar e atualizar avisos de segurança do repositório. Para saber mais, confira Endpoints de API REST para avisos de segurança de repositórios.

Você pode dar crédito a indivíduos que contribuíram para um aviso de segurança. Para saber mais, confira Editando uma consultoria de segurança do repositório.

Você pode criar uma política de segurança para dar às pessoas instruções para relatar vulnerabilidades de segurança no seu projeto. Para saber mais, confira Adicionar uma política de segurança a um repositório.

Se você criou uma consultoria de segurança no seu repositório, o consultório de segurança permanecerá no seu repositório. Publicamos avisos de segurança para qualquer um dos ecossistemas compatíveis com o grafo de dependência no GitHub Advisory Database em github.com/advisories. Qualquer um pode enviar uma alteração para um consultor publicado em GitHub Advisory Database. Para saber mais, confira Editando consultorias de segurança no banco de dados consultivo do GitHub.

Se uma consultoria de segurança for especificamente para o npm, nós também publicamos a consultoria nas consultorias de segurança do npm. Para obter mais informações, confira npmjs.com/advisories.

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.

Números de identificação CVE

GitHub Security Advisories baseia-se na base da lista de Vulnerabilidades e Exposições Comuns (CVE). O formulário de consultoria de segurança em GitHub é um formulário padronizado que corresponde ao formato de descrição CVE.

GitHub é uma Autoridade de Numeração CVE (CNA) e está autorizada a atribuir números de identificação CVE. Para obter mais informações, consulte Sobre o CVE e Autoridades de Numeração do CVE no site do CVE.

Ao criar um aviso de segurança para um repositório público no GitHub, você tem a opção de fornecer um número de identificação CVE existente para a vulnerabilidade de segurança. Caso você deseje ter um número de identificação CVE para a vulnerabilidade de segurança no seu projeto e ainda não tiver um, solicite um número de identificação CVE ao GitHub. GitHub geralmente revisa o pedido em 72 horas. Solicitar um número de identificação CVE não torna público a sua consultoria de segurança público. Se o seu aviso de segurança for qualificado para um CVE, o GitHub reservará um número de identificação CVE para ele. Em seguida, publicaremos os detalhes da CVE depois que você tornar o aviso de segurança público. Qualquer pessoa com permissões de administrador em um aviso de segurança pode solicitar um número de identificação CVE.

Se você já tiver uma CVE que deseja usar, por exemplo, se usar uma CNA (Autoridade de Numeração CVE) diferente do GitHub, adicione a CVE ao formulário de aviso de segurança. Isso pode acontecer, por exemplo, se você quiser que a consultoria seja consistente com outras comunicações que pretende enviar no horário da publicação. O GitHub não poderá atribuir CVEs ao seu projeto se ele for coberto por outra CNA.

Uma que você publicou a consultoria de segurança e o GitHub atribuiu um número de identificação CVE para a vulnerabilidade, o GitHub irá publicar o CVE no banco de dados do MITRE.

Publicação de avisos de segurança

A publicação de um aviso de segurança notifica sua comunidade sobre a vulnerabilidade que ela aborda, facilitando a atualização das dependências do pacote e pesquisando o impacto da vulnerabilidade.

Quando você publica um rascunho de consultoria de um repositório público, os níveis de visibilidade variam da seguinte maneira:

  •         **Qualquer pessoa** pode ver a versão atual dos dados de consultoria, bem como quaisquer créditos de consultoria que os usuários creditados aceitaram.
    
  •         **Os colaboradores** podem exibir o histórico de conversas da consultoria.
    

A URL de um aviso de segurança não é alterada após a publicação.

Se você precisar atualizar ou corrigir informações em uma consultoria de segurança que publicou, poderá editar a consultoria de segurança. Confira Editando uma consultoria de segurança do repositório.

Dependabot alerts para consultorias de segurança publicadas

GitHub irá revisar cada consultoria de segurança publicada, adicioná-la ao GitHub Advisory Database, e poderá utilizar a consultoria de segurança para enviar Dependabot alerts aos repositórios afetados. Se o aviso de segurança vier de uma ramificação, só enviaremos um alerta se a ramificação possuir um pacote, publicado com um nome único, em um registro de pacotes público. Este processo pode levar até 72 horas e GitHub pode entrar em contato com você para obter mais informações.

Importância das versões de correção

Sempre que possível, você deve adicionar uma versão de correção a um aviso de segurança antes de publicar o aviso. Se você não fizer isso, a sua consultoria será publicado sem uma versão de correção e Dependabot alertará os seus usuários sobre o problema, sem oferecer qualquer versão segura para a qual atualizar.

Dependendo da vulnerabilidade, talvez seja necessário ajustar sua abordagem. Se uma versão de correção for:

  •         **Iminentemente disponível** e você pode aguardar para divulgar o problema quando a correção estiver pronta.
    
  •         **Em desenvolvimento, mas ainda não disponível**, mencione isso na consultoria e edite o aviso posteriormente, após a publicação.
    
  •         **Não planejado**, fique claro sobre isso na consultoria para que seus usuários não entrem em contato com você para perguntar quando uma correção será feita. Neste caso, é útil incluir as etapas que os usuários podem seguir para mitigar o problema.