Como um projeto de código aberto com um repositório público pode lidar melhor com solicitações pull (PRs) que abordam vulnerabilidades de segurança relatadas com segurança, mas ainda não divulgadas publicamente?
Estou envolvido em um projeto de código aberto com várias centenas de colaboradores. Publicamos avisos de segurança e vulnerabilidades várias vezes ao ano, como parte de um lançamento mensal agendado regularmente. Não publicamos informações sobre as vulnerabilidades até disponibilizar a versão corrigida. Podemos gerenciar com segurança os problemas de segurança em nosso sistema de gerenciamento de projetos (JIRA). Mas não temos um bom processo para ocultar os PRs que corrigem vulnerabilidades de segurança à medida que são enviados ao GitHub. Estamos preocupados que as pessoas possam encontrar essas correções antes de serem lançadas e criar explorações de dia zero.
Consideramos o uso de repositórios particulares que dividem o repositório principal, mas grande parte de nosso fluxo de trabalho de revisão e controle de qualidade atualmente ocorre nos PRs. Se movêssemos o fluxo de trabalho para um repo privado da equipe de segurança, isso reduziria a janela quando a correção fosse pública até o tempo necessário para gerar os tarballs e publicá-los no sourceforge, o que seria uma grande melhoria. Também provavelmente precisaríamos evitar a fusão dos PRs em nosso beta público.
Antes de ir nessa direção, gostaria de saber qual é a melhor prática para lidar com patches de correção de bug de segurança de pré-lançamento em projetos de código aberto com repositórios abertos? Se o problema puder ser melhor resolvido usando uma plataforma diferente do GitHub, devo mencionar que estamos avaliando a migração para o GitLab.
fonte
Respostas:
O protocolo para isso é decidir os fatores de risco na exibição pública de vulnerabilidades. Para qualquer coisa relacionada à segurança, esses PRs precisam estar em um repositório particular que somente sua equipe de segurança possa ver. Isso permanece, independentemente da plataforma usada para produzir e executar solicitações de recebimento.
fonte