¿Cuál es la mejor práctica para manejar las relaciones públicas que abordan las vulnerabilidades de seguridad en el repositorio público?

22

¿Cómo debería un proyecto de código abierto con un repositorio público manejar mejor las solicitudes de extracción (RP) que abordan vulnerabilidades de seguridad informadas de forma segura pero aún no divulgadas públicamente?

Estoy involucrado en un proyecto de código abierto con varios cientos de contribuyentes. Publicamos avisos de seguridad y vulnerabilidades varias veces al año como parte de un lanzamiento mensual programado regularmente. No publicamos información sobre las vulnerabilidades hasta que la versión parcheada esté disponible. Podemos gestionar de forma segura los problemas de seguridad en nuestro sistema de gestión de proyectos (JIRA). Pero no tenemos un buen proceso para ocultar los RP que corrigen las vulnerabilidades de seguridad a medida que se envían a GitHub. Nos preocupa que las personas puedan encontrar estas soluciones antes de su lanzamiento y crear vulnerabilidades de día cero.

Hemos considerado el uso de repositorios privados que bifurcan el repositorio principal, pero gran parte de nuestra revisión actual y el flujo de trabajo de control de calidad ocurre en los RP. Si trasladamos el flujo de trabajo a un repositorio privado solo del equipo de seguridad, eso reduciría la ventana cuando la solución sea pública a las horas que lleva generar los tarballs y publicarlos en sourceforge, lo que sería una gran mejora. También es probable que debamos evitar fusionar los RP en nuestra versión beta pública.

Antes de ir en esa dirección, me gustaría saber cuál es la mejor práctica para manejar parches de corrección de errores de seguridad previos al lanzamiento en proyectos de código abierto con repositorios abiertos. Si el problema puede abordarse mejor utilizando una plataforma diferente a GitHub, debo mencionar que estamos evaluando la migración a GitLab.

Joe Murray
fuente
1
No estoy seguro de si hay una mejor práctica establecida. GitLab es esencialmente un GitHub privado. Equilibrar las preocupaciones del código abierto y las soluciones de seguridad no es fácil. ¿Cuántas de sus soluciones de seguridad provienen de personas que no están en su equipo de seguridad?
Berin Loritsch
La mayoría de los problemas son reportados por otros, pero probablemente menos de una quinta parte de las soluciones provienen de aquellos que no están en el equipo de seguridad.
Joe Murray
1
En mi opinión, si necesita que una parte de su proceso sea privada, debe hacerse fuera de GitHub (porque GH es pública); después de que se realiza esta parte específica y todos revisaron su código; puede crear un RP sobre GH que se fusionará lo más rápido posible, solo para 'regresar' al proceso oficial. Podría usar otra herramienta para administrar esas excepciones en el proceso.
Emerson Cardoso
2
La divulgación inmediata inmediata (es decir, la divulgación pública sin demora) es algo perfectamente legítimo.
Miles Rout
1
Esta pregunta parece suponer que, mientras el equipo no revele el problema de seguridad, el mundo lo desconoce. Eso simplemente no es cierto; cualquier problema de seguridad que se descubra debe suponerse conocido por alguien con malas intenciones en algún lugar. Ahora, si asume que alguien más ya conoce el problema y podría estar explotándolo, ya no puede posponer el lanzamiento de la solución hasta su lanzamiento mensual regular. Debe liberar lo antes posible. Eso significa que no hay problema con seguir el flujo regular de PR. Solo relaciones públicas contra la última rama de lanzamiento, fusión, etiqueta, lanzamiento.
Jory Geerts

Respuestas:

1

El protocolo para esto es decidir los factores de riesgo al mostrar públicamente vulnerabilidades. Para cualquier cosa relacionada con la seguridad, esos RP deben estar en un repositorio privado que solo su equipo de seguridad pueda ver. Esto se mantiene independientemente de la plataforma que utilice para producir y ejecutar solicitudes de extracción.

Lloyd Moore
fuente