Acerca de las asesorías de seguridad de repositorio
La divulgación de vulnerabilidades es un área en donde la colaboración entre los reporteros de vulnerabilidades, tales como los investigadores de seguridad, y los mantenedores de proyectos es muy importante. Ambas partes necesitan trabajar en conjunto desde el momento en el que se encuentra una vulnerabilidad de seguridad potencialmente dañina, justo hasta que la vulnerabilidad se divulgue al público en general, idealmente con la disponibilidad de un parche. Habitualmente, cuando alguien deja saber, en privado, a un mantenedor sobre una vulnerabilidad de seguridad, este desarrolará una corrección, la validará y notificacá a los usuarios sobre el proyecto o paquete. Para obtener más información, consulte Divulgación coordinada de vulnerabilidades de seguridad.
Las asesorías de seguridad del repositorio permiten a los mantenedores de repositorios públicos analizar y corregir de forma privada una vulnerabilidad de seguridad en un proyecto. Después de colaborar en una corrección, los mantenedores de repositorios pueden publicar el aviso de seguridad para revelar públicamente la vulnerabilidad de seguridad a la comunidad del proyecto. Al publicar avisos de seguridad, los mantenedores de repositorios facilitan a su comunidad la actualización de las dependencias de paquetes y la investigación del impacto de las vulnerabilidades de seguridad.
Con las asesorías de seguridad de repositorio, puedes hacer lo siguiente:
- Crear un borrador de asesoría de seguridad y utilizarlo para debatir de manera privada sobre el impacto de la vulnerabilidad en tu proyecto.
- Colaborar en privado para solucionar la vulnerabilidad en una bifurcación privada temporaria.
- Publica la asesoría de seguridad para alertar a tu comunidad sobre la vulnerabilidad una vez que se lance el parche.
También puedes utilizar asesorías de seguridad de repositorio para volver a publicar los detalles de una vulnerabilidad de seguridad que ya has divulgado en otro lugar si copias y pegas los detalles de la vulnerabilidad en una asesoría de seguridad nueva.
También puede usar la API REST para crear, enumerar y actualizar avisos de seguridad del repositorio. Para obtener más información, vea Puntos de conexión de API de REST para avisos de seguridad de repositorios.
Puedes dar crédito a los individuos que contribuyeron con una asesoría de seguridad. Para obtener más información, vea Editing a repository security advisory.
Puedes crear una política de seguridad para dar instrucciones a las personas para reportar las vulnerabilidades de seguridad en tu proyecto. Para más información, consulta Agregar una política de seguridad a tu repositorio.
Si creaste una asesoría de seguridad en tu repositorio, esta permanecerá en tu repositorio. Publicamos avisos de seguridad para cualquiera de los ecosistemas admitidos por el gráfico de dependencias en GitHub Advisory Database. Cualquiera puede enviar un cambio a un aviso publicado en el GitHub Advisory Database. Para obtener más información, vea Edición de avisos de seguridad en la base de avisos de GitHub.
Si una asesoría de seguridad es específicamente para npm, también la publicamos en las asesorías de seguridad de npm. Para más información, vea npmjs.com/advisories.
También puede unir GitHub Security Lab para examinar temas relacionados con la seguridad y colaborar en herramientas y proyectos de seguridad.
Números de identificación CVE
GitHub Security Advisories se basa en la base de la lista de vulnerabilidades y exposiciones comunes (CVE). El formulario de aviso de seguridad de GitHub es un formulario normalizado que se ajusta al formato de descripción de CVE.
GitHub es una Autoridad de Numeración CVE (CNA) y está autorizada para asignar identificadores CVE. Para obtener más información, consulte Acerca de CVE y Entidades de numeración de CVE en el sitio web de CVE.
Al crear un aviso de seguridad para un repositorio público en GitHub, tiene la opción de proporcionar un número de identificación CVE existente para la vulnerabilidad de seguridad. Si quieres un número de identificación CVE para la vulnerabilidad de seguridad en tu proyecto y aún no tienes uno, puedes solicitarlo de GitHub. GitHub habitualmente revisa la solicitud dentro de las primeras 72 horas de su recepción. El solicitar un número de identificación de CVE no convierte tu asesoría de seguridad en pública. Si tu asesoría de seguridad es elegible para un CVE, GitHub reservará un número de identificación de CVE para ésta. Entonces publicaremos los detalles de CVE después de que hayas hecho pública tu asesoría de seguridad. Cualquiera con permisos de administrador en una asesoría de seguridad puede solicitar un número de identificación de CVE.
Si ya tienes un CVE que quieres utilizar, por ejemplo, si utilizas una Autoridad de Numeración de CVE (CNA) diferente a la de GitHub, agrega el CVE al formato de asesoría de seguridad. Esto podría pasar, por ejemplo, si quiers que la asesoría sea consistente con otras comnicaciones que planees enviar al momento de la publicación. GitHub no pude asignar un CVE a tu proyecto si se cubre con otro CNA.
Una vez que haya publicado el aviso de seguridad y GitHub haya asignado un número de identificación cve a la vulnerabilidad, GitHub publica la CVE en la base de datos MITRE.
Publicación de avisos de seguridad
La publicación de un aviso de seguridad notifica a la comunidad sobre la vulnerabilidad que aborda, lo que facilita que actualicen las dependencias del paquete e investiguen el impacto de la vulnerabilidad.
Al publicar un borrador de aviso desde un repositorio público, los niveles de visibilidad varían de la siguiente manera:
- Cualquier persona puede ver la versión actual de los datos de asesoramiento, así como cualquier crédito de asesoramiento que hayan aceptado los usuarios acreditados.
- Los colaboradores pueden ver el historial de conversaciones del aviso.
La dirección URL de un aviso de seguridad no cambia después de la publicación.
Si necesitas actualizar o corregir información en una asesoría de seguridad que hayas publicado, puedes editarla. Consulte Editing a repository security advisory.
Dependabot alerts para avisos de seguridad publicados
GitHub revisará cada aviso de seguridad publicado, lo agregará a GitHub Advisory Databasey podrá usar el aviso de seguridad para enviar Dependabot alerts a repositorios afectados. Si la asesoría de seguridad proviene de un fork, únicamente enviaremos una alerta si el fork posee un paquete que se publique con un nombre único en un registro de paquetes público. Este proceso puede tardar hasta 72 horas y GitHub puede ponerse en contacto con usted para obtener más información.
Importancia de las versiones de corrección
Siempre que sea posible, debe agregar una versión de corrección a un aviso de seguridad antes de publicar el aviso. Si no lo hace, el aviso se publicará sin una versión fija y Dependabot avisará a los usuarios sobre el problema, sin ofrecer ninguna versión segura a la que actualizar.
En función de la vulnerabilidad, es posible que tenga que ajustar el enfoque. Si una versión de corrección es:
- Está disponible de forma inminente y puede esperar a revelar el problema cuando la corrección esté lista.
- En desarrollo, pero aún no disponible, mencione esto en el aviso y edite el aviso más adelante, después de la publicación.
- No planeado, sea claro en el aviso para que los usuarios no se comuniquen con usted para preguntar cuándo se realizará una corrección. En este caso, es útil incluir pasos que puedan seguir los usuarios para mitigar el problema.