Skip to main content

Procedimientos recomendados para escribir asesorías de seguridad del repositorio

Cuando creas o editas asesorías de seguridad, la información que proporcionas es más fácil de entender para otros usuarios cuando especificas el ecosistema, el nombre del paquete y las versiones afectadas mediante los formatos estándar.

Nota de desuso: GitHub ya no usa avisos de seguridad del repositorio en repositorios privados que no tienen la GitHub Advanced Security (GHAS) habilitada. A partir del 15 de mayo de 2024, ya no podrás crear advertencias de seguridad en repositorios privados que no tengan la GHAS habilitada.

Este desuso no afecta a los avisos de seguridad publicados en repositorios públicos. Tampoco afecta a los avisos de seguridad en repositorios privados que tienen la GHAS habilitada.

Los avisos publicados anteriormente en repositorios privados que no tienen la GHAS habilitada desaparecerán. Si necesitas guardar avisos publicados anteriormente, puedes descargarlos mediante la API de REST GitHub. Para obtener más información, vea «Puntos de conexión de API de REST para avisos de seguridad de repositorios».

Cualquier usuario con permisos de administrador puede crear y editar una asesoría de seguridad.

Nota: Si es un investigador de seguridad, debe contactar directamente con los mantenedores para pedirles que creen asesorías de seguridad o que emitan CVE en su nombre en los repositorios que no administra. Pero si la generación de informes de vulnerabilidad privada está habilitada para el repositorio, puedes generar de forma privada un informe de vulnerabilidad por tu cuenta. Para obtener más información, vea «Creación de informes privados de una vulnerabilidad de seguridad».

Acerca de las asesorías de seguridad para repositorios

Las asesorías de seguridad del repositorio permiten a los mantenedores de repositorios 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. Para más información, consulta "Acerca de las asesorías de seguridad de repositorio".

Procedimientos recomendados

Se recomienda usar la sintaxis usada en GitHub Advisory Database (especialmente el formato de versión) al escribir una asesoría de seguridad del repositorio o realizar una contribución de la comunidad a una asesoría de seguridad global.

Si sigues la sintaxis de GitHub Advisory Database, especialmente al definir versiones afectadas:

  • Al publicar la asesoría del repositorio, podemos agregar dicha asesoría a GitHub Advisory Database como una asesoría "revisada por GitHub", sin necesidad de solicitar más información.
  • Dependabot tendrá la información para identificar con precisión los repositorios afectados y enviarles alertas de Dependabot alerts para notificarles.
  • Es menos probable que los miembros de la comunidad sugieran ediciones a tu asesoría para corregir la información incorrecta o la falta de esta.

Puedes agregar o editar una asesoría de repositorio mediante el formulario Borrador de asesoría de seguridad. Para obtener más información, vea «Creación de un aviso de seguridad de repositorio».

Puedes sugerir una mejora en una asesoría global existente mediante el formulario Mejorar la asesoría de seguridad. Para obtener más información, vea «Edición de avisos de seguridad en la base de avisos de GitHub».

Ecosistema

Debes asignar la asesorías a uno de nuestros ecosistemas admitidos mediante el campo Ecosistema. Para más información sobre los ecosistemas que apoyamos, consulta "Exploración de los avisos de seguridad en GitHub Advisory Database".

Captura de pantalla del área "Productos afectados" del formulario de asesoramiento de seguridad. El campo "Ecosistema" está resaltado con un contorno naranja oscuro.

Nombre del paquete

Se recomienda usar el campo Nombre del paquete para especificar qué paquetes se ven afectados porque se requiere información de paquete para las asesorías "revisados por GitHub" en GitHub Advisory Database. La información del paquete es opcional para las asesorías de seguridad de nivel de repositorio, pero la inclusión temprana de esta información simplifica el proceso de revisión cuando publicas la asesoría de seguridad.

Versiones afectadas

Se recomienda usar el campo Versiones afectadas para especificar qué versiones se ven afectadas porque se requiere esta información para las asesorías "revisadas por GitHub" en GitHub Advisory Database. La información de la versión es opcional para las asesorías de seguridad de nivel de repositorio, pero la inclusión temprana de esta información simplifica el proceso de revisión cuando publicas la asesoría de seguridad.

  • Una cadena de versión afectada válida consta de uno de los siguientes elementos:

    • Una secuencia de operador de límite inferior.
    • Una secuencia de operador de límite superior.
    • Una secuencia de operadores de límite superior e inferior.
    • Una secuencia de versión específica mediante el operador de igualdad (=).
  • Cada secuencia de operador debe especificarse como operador, un único espacio y, a continuación, la versión.

    • Los operadores válidos son =, <, <=, > o >=.
    • La versión debe comenzar por un número, seguido de cualquier número de números, letras, puntos, guiones o caracteres de subrayado (cualquiera que no sea un espacio o coma).
    • Al especificar una secuencia de límite superior e inferior, el límite inferior debe aparecer primero, seguido de una coma y un único espacio y, a continuación, el límite superior.

    Nota: Las cadenas de versión afectadas no pueden contener espacios iniciales o finales.

  • Los operadores de límite superior pueden ser inclusivos o exclusivos, es decir <= o <, respectivamente.

  • Los operadores de límite inferior pueden ser inclusivos o exclusivos, es decir >= o >, respectivamente. Sin embargo, si publicas la asesoría del repositorio y la graduamos en una asesoría global, se aplica una regla diferente: las cadenas de límite inferior solo pueden ser inclusivas, es decir >=. El operador de límite inferior exclusivo (>) solo se permite cuando la versión es 0, por ejemplo > 0.

    Notas: La limitación de límite inferior:

    • se debe a incompatibilidades con el esquema de vulnerabilidad de código abierto (OSV).
    • solo se aplica cuando se realiza una sugerencia sobre una asesoría existente en GitHub Advisory Database.
  • No se pueden especificar varios intervalos de versiones afectados en el mismo campo, como > 2.0, < 2.3, > 3.0, < 3.2. Para especificar más de un intervalo, crea una nueva sección Productos afectados para cada intervalo haciendo clic en el botón + Agregar otro producto afectado.

    Captura de pantalla del área "Productos afectados" del formulario de asesoramiento de seguridad. Un vínculo, con la etiqueta "Agregar otro producto afectado", se resalta con un contorno naranja oscuro.

  • Si el intervalo de versiones afectado incluye solo un límite superior o inferior:

    • El valor implícito siempre es > 0 si el límite inferior no se especifica explícitamente.
    • El valor implícito siempre es infinito si el límite superior no se especifica explícitamente.

Para obtener más información sobre GitHub Advisory Database, consulta https://github.com/github/advisory-database.