Administrar las alertas del escaneo de código para tu repositorio

Desde la vista de seguridad, puedes ver, corregir, descartar o borrar las alertas de las vulnerabilidades o errores potenciales en el código de tu proyecto.

If you have write permission to a repository you can manage escaneo de código alerts for that repository.

El Escaneo de código se encuentra disponible para los repositorios que pertenecen a organizaciones donde se habilitó el GitHub Advanced Security. Para obtener más información, consulta la sección "Acerca de GitHub Advanced Security".

Acerca de las alertas de escaneo de código

Puedes configurar el escaneo de código para que verifique el código en un repositorio utilizando el análisis predeterminado de CodeQL, un análisis de terceros, o varios tipos de análisis. Cuando se complete el análisis, las alertas resultantes se mostrarán unas junto a otras en la vista de seguridad del repositorio. Los resultados de las herramientas de terceros o de las consultas personalizadas podrían no incluir todas las propiedades que ves para las alertas que se detectan con el análisis predeterminado del CodeQL de GitHub. Para obtener más información, consulta la sección "Configurar el escaneo de código en un repositorio".

Predeterminadamente, el escaneo de código analiza tu código periódicamente en la rama predeterminada y durante las solicitudes de cambios. Para obtener información acerca de la administración de alertas en una solicitud de cambios, consulta la sección "Clasificar las alertas del escaneo de código en las solicitudes de cambios".

Notas:

  • SARIF upload supports a maximum of 5000 results per upload. Cualquier resultado que sobrepase este límite se ignorará. Si una herramienta genera demasiados resultados, debes actualizar la configuración para enfocarte en los resultados de las reglas o consultas más importantes.

  • For each upload, SARIF upload supports a maximum size of 10 MB for the gzip-compressed SARIF file. Any uploads over this limit will be rejected. If your SARIF file is too large because it contains too many results, you should update the configuration to focus on results for the most important rules or queries.

Acerca de los detalles de las alertas

Cada alerta resalta un problema en el código y el nombre de la herramienta que lo identificó. Puedes ver la línea de código que activó la alerta, así como las propiedades de dicha alerta, tales como la gravedad y la naturaleza del problema. Las alertas también te dicen si el problema se introdujo por primera vez. Para las alertas que identificó el análisis de CodeQL, también verás información de cómo arreglar elproblema.

Ejemplo de alerta de escaneo de código

Si configuras el escaneo de código utilizando CodeQL, esto también puede detectar problemas de flujo de datos en tu código. El análisis de flujo de datos encuentra problemas de seguridad potenciales en el código, tales como: utilizar los datos de formas no seguras, pasar argumentos peligrosos a las funciones y tener fugas de información sensible.

Cuando escaneo de código reporta alertas de flujo de datos, GitHub te muestra como se mueven los datos a través del código. El Escaneo de código te permite identificar las áreas de tu código que filtran información sensible y que podrían ser el punto de entrada para los ataques que hagan los usuarios malintencionados.

Acerca de los niveles de gravedad

Los niveles de gravedad de las alertas pueden ser Error, Warning, o Note.

Predeterminadamente, cualquier resultado del escaneo de código con una severidad de error causará una falla de verificación.

Visualizar las alertas de un repositorio

Cualquiera con permisos de escritura en un repositorio puede ver las anotaciones del escaneo de código en las solicitudes de cambios. Para obtener màs informaciònPara obtener más información, consulta la sección "Clasificar las alertas del escaneo de código en las solicitudes de extracción".

Necesitas permisos de escritura para ver un resumen de todas las alertas de un repositorio en la pestaña de Seguridad.

Predeterminadamente, la página de alertas del escaneo de código se filtra para mostrar las alertas únicamente para la rama predeterminada del repositorio.

  1. En GitHub Enterprise Server, visita la página principal del repositorio.

  2. Debajo de tu nombre de repositorio, da clic en Seguridad. Pestaña de seguridad

  3. En la barra lateral izquierda, da clic en alertas de escaneo de código. pestaña de "Alertas de escaneo de código"

  4. Debajo de "Escaneo de código", da clic en la alerta que quisieras explorar.

    Lista de alertas de escaneo de código

  5. Opcionalmente, si la alerta resalta un problema con el flujo de datos, da clic en Mostrar rutas para mostrar la ruta desde la fuente de datos hacia el consumidor de datos en donde se utiliza. El enlace de "Mostrar rutas" en una alerta

  6. Las alertas del análisis de CodeQL incluyen una descripción del problema. Da clic en Mostrar más para obtener orientación sobre cómo arreglar tu código. Detalles de una alerta

Filtrar las alertas del escaneo de código

Puedes filtrar las alertas que se muestran en la vista de alertas del escaneo de código. Esto es útil si hay muchas alertas, ya que puedes enfocarte en un tipo particular de estas. Hay algunos filtros predefinidos y rangos de palabras clave que puedes utilizar para refinar la lista de alertas que se muestran.

  • Para utilizar un filtro predefinido, haz clic en Filtros o en un filtro que se muestre en el encabezado de la lista de alertas y elige un filtro de la lista desplegable. Filtros predefinidos
  • Para utilizar una palabra clave, teclea directamente en la caja de texto de filtros o:
    1. Haz clic en la caja de texto de filtros para que se muestre una lista de palabras clave de filtro disponibles.
    2. Haz clic en la palabra clave que quieras utilizar y luego elige un valor de la lista desplegable. Lista de filtros de palabra clave

El beneficio de utilizar filtros de palabra clave es que solo los valores con resultados se muestran en las listas desplegables. Esto hace más fácil el evitar configurar filtros que no encuentran resultados.

Si ingresas filtros múltiples, la vista te mostrará las alertas que empatan con todos ellos. Por ejemplo, is:closed severity:high branch:main solo mostrará las aletas de gravedad alta cerradas que estén presentes en la rama main. The exception is filters relating to refs (ref, branch and pr): is:open branch:main branch:next will show you open alerts from both the main branch and the next branch.

Restringir los resultados únicamente al código de la aplicación

Puedes utilizar el filtro de "Solo alertas en el código de la aplicación" o la palabra clave y el valor autofilter:true para restringir a las alertas en el código de aplicación. La aplicación de código excluye lo siguiente.

  • El código que genera el proceso de compilación
  • El código de prueba
  • La librería o código de terceros
  • Documentación

El Escaneo de código categoriza los archivos por sus rutas. En este momento, no puedes categorizar los archivos de código fuente manualmente.

Arreglar una alerta

Cualquiera con permisos de escritura en un repositorio puede arreglar una alerta si confirma una corrección en el código. Si el repositorio tiene programado un escaneo de código para ejecutarse en las solicitudes de cambios, es mejor levantar una solicitud de cambios con tu corrección. Esto activará el análisis del escaneo de código en los cambios y probará que tu arreglo no introduciría ningún problema nuevo. Para obtener más información, consulta la sección "Configurar el escaneo de código" y "Clasificar las alertas del escaneo de código en las solicitudes de cambios".

Si tienes permisos de escritura para un repositorio, puedes ver las alertas arregladas si ves el resumen de las alertas y das clic en Cerrado. Para obtener más información, consulta la sección "Visualizar las alertas de un repositorio". La lista de "Cerrado" muestra las alertas arregladas y las que los usuarios han descartado.

Puedes utilizar los filtros para mostrar un subconjunto de alertas y luego, a su vez, marcar todas las alertas coincidentes como cerradas.

Las alertas pueden arreglarse en una rama pero no en alguna otra. Puedes utilizar el menú desplegable de "Rama", en el resumen de las alertas, para verificar si una alerta se arregló en una rama en particular.

Filtrar alertas por rama

Descartar o borrar las alertas

Hay dos formas de cerrar una alerta. Puedes arreglar el problema en el código, o puedes descartar la alerta. Como alternativa, si tienes permisos adminsitrativos en el repositorio, puedes borrar las alertas. Borrar las alertas es útil en situaciones en donde configuraste una herramienta del escaneo de código y luego decidiste eliminarla, o donde configuraste el análisis de CodeQL con un conjunto más grande de consultas que quieres seguir utilizando y después eliminaste algunas de ellas de la herramienta. En ambos casos, el borrar las alertas te permite limpiar tus resultados del escaneo de código. Puedes borrar las alertas de la lista de resumen dentro de la pestaña de Seguridad.

El descartar una alerta es una forma de cerrar aquellas que no crees que necesiten arreglo. Por ejemplo, un error en el código que se utiliza únicamente para hacer pruebas, o cuando el esfuerzo de areglar el error es mayor que el beneficio potencial de mejorar el código. Puedes eliminar alertas desde las anotaciones del escaneo de código en el código, o desde la lista de resumen dentro de la pestaña de Seguridad.

Cuando descartas una alerta:

  • Se descarta en todas las ramas.
  • La alerta se elimina de la cantidad de alertas actuales para tu proyecto.
  • La alerta se mueve a la lista de "Cerrado" en el resumen de alertas, desde donde puedes volver a abrirla en caso de que lo necesites.
  • La razón por la cual cerraste la alerta se registra.
  • La siguiente vez que se ejecute el escaneo de código, este código no volverá a generar una alerta.

Cuando borras una alerta:

  • Se borra en todas las ramas.
  • La alerta se elimina de la cantidad de alertas actuales para tu proyecto.
  • No seagrega a la lista de "Cerrado" en el resumen de las alertas.
  • Si el código que generó la alerta se mantiene tal cual, y se ejecuta nuevamente la misma herramienta del escaneo de código sin ningún cambio de configuración, la alerta se mostrará nuevamente en los resultados de tu análisis.

Para descartar o borrar una alerta:

  1. En GitHub Enterprise Server, visita la página principal del repositorio.

  2. Debajo de tu nombre de repositorio, da clic en Seguridad. Pestaña de seguridad

  3. En la barra lateral izquierda, da clic en alertas de escaneo de código. pestaña de "Alertas de escaneo de código"

  4. Si tienes permisos administrativos en el repositorio y quieres borrar las alertas para esta herramienta del escaneo de código, selecciona algunas o todas las casillas de verificación y da clic en Borrar.

    Borrar alertas

    Opcionalmente, puedes utilizar los filtros para mostrar un subconjunto de alertas y luego borrar todas las alertas coincidentes a la vez. Por ejemplo, si eliminaste una consulta desde el análisis de CodeQL, puedes utilizar el filtro de "Regla" para listar solo las alertas para esa consulta y luego seleccionar y borrar todas esas alertas.

    Filtrar alertas por regla

  5. Si quieres descartar una alerta, es importante explorarla primero para que puedas elegir la razón correcta para descartarla. Da clic en la alerta que quisieras explorar.

    Lista de alertas de escaneo de código

  6. Revisa la alerta y da clic en Descartar y elije una razón para cerrarla. Elegir una razón para descartar una alerta

    Es importante elegir la razón adecuada del menú desplegable, ya que esto puede afectar si la consulta continuará incluyéndose en los análisis futuros.

    Si descartas una alerta de CodeQL como un resultado falso positivo, por ejemplo, porque el código utiliza una biblioteca de sanitización que no es compatible, considera colaborar con el repositorio de CodeQL y mejorar el análisis. Para obtener más información acerca de CodeQL, consulta la sección "Contribuir con CodeQL".

Descartar varias alertas al mismo tiempo

Si un proyecto tiene varias alertas que quieras descartar por la misma razón, puedes descartarlas por lote desde el resúmen de las alertas. Habitualmente quieres filtrar la lista y luego descartar todas las alertas coincidentes. Por ejemplo, puede que quieras descartar todas las alertas actuales del proyecto que se hayan etiquetado para una vulnerabilidad de Enumeración de Debilidades (CWE, por sus siglas en inglés) Común en particular.

Leer más

¿Te ayudó este documento?

Política de privacidad

¡Ayúdanos a hacer geniales estos documentos!

Todos los documentos de GitHub son de código abierto. ¿Notas algo que esté mal o que no sea claro? Emite una solicitud de cambios.

Haz una contribución

O, aprende cómo contribuir.