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 todos los repositorios públicos y para los privados que pertenecen a organizaciones en donde se habilitó la 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, gravedad de seguridad 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. Puedes especificar el nivel de gravedad en el cual deberían fallar las solicitudes de cambios que activan las alertas del escaneo de código. Para obtener más información, consulta la sección "Definir las gravedades que ocasionan un fallo en la verificación de las solicitudes de cambios".

Acerca de los niveles de gravedad

El Escaneo de código muestra los niveles de gravedad de seguridad para las alertas que generan las consultas de seguridad. Los niveles de seguridad pueden ser Critical, High, Medium o Low.

Para calcular la gravedad de seguridad de una alerta, utilizamos los datos del Sistema de Puntuación para Vulnerabilidades Comunes (CVSS). El CVSS es un marco de trabajo de código abierto para comunicar las características y gravedad de las vulnerabilidades de software y otros productos de seguridad lo utilizan habitualmente para puntuar las alertas. Para obtener más información sobre cómo se calculan los niveles de gravedad, consulta la publicación del blog.

Predeterminadamente, cualquier resultado del escaneo de código con una gravedad de seguridad Critical o High ocasionarán un fallo de verificación. Puedes especificar qué nivel de gravedad de seguridad para de los resultados del escaneo de código deberían ocasionar una falla de verificación. Para obtener más información, consulta la sección "Definir las gravedades que ocasionan un fallo en la verificación de las solicitudes de cambios".

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, 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. Opcionalmente, utiliza la caja de búsqueda de texto libre o los menús desplegables para filtrar las alertas. Por ejemplo, puedes filtrar por la herramienta que se utilizó para identificar las alertas. Filter by tool

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

    Resumen de alertas

  6. 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

  7. 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

Nota: Para realizar el análisis del escaneo de código con CodeQL, puedes ver la información sobre la última ejecución en un encabezado en la parte superior de la lisa de alertas del escaneo de código para el repositorio.

Por ejemplo, puedes ver cuándo se ejecutó el último escaneo, la cantidad de líneas de código que se analizó en comparación con la cantidad de líneas de código totales en tu repositorio y la cantidad total de alertas qeu se generaron. Letrero de IU

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.

Buscar las alertas del escaneo de código

Puedes buscar la lista de alertas. Esto es útil si hay una gran cantidad de alertas en tu repositorio o si no sabes el nombre exacto de una alerta, por ejemplo. GitHub realiza la búsqueda de texto gratuita a través de:

  • El nombre de la alerta

  • La descripción de la alerta

  • Los detalles de la alerta (esto también incluye la información qeu se esconde de la vista predeterminada en la sección retraible de Mostrar más)

    La información de la alerta que se utiliza en las búsquedas

Búsqueda compatibleEjemplo de sintaxisResultados
Búsqueda de palabra sencillainjectionDevuelve todas las alertas que contienen la palabra injection
Búsqueda de palabras múltiplessql injectionDevuelve todas las alertas que contienen la palabra sql o injection
Búsqueda de coincidencia exacta
(utilizar comillas dobles)
"sql injection"Devuelve todas las alertas que contienen la frase exacta sql injection
Búsqueda con ORsql OR injectionDevuelve todas las alertas que contienen la palabra sql o injection
Búsqueda con ANDsql AND injectionDevuelve todas las alertas que contienen ambas palabras: sql e injection

Tips:

  • La búsuqeda de palabras múltiples es equivalente auna búsqueda con OR.
  • La búsqueda con AND devolverá resultados en donde los términos de búsqueda se encuentren en cualquier lugar y en cualquier órden en el nombre, descripción o detalles de la alerta.
  1. En GitHub, 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. A la derecha de los menús desplegables de Filtros, teclea las palabras clave a buscar en la caja de búsqueda de texto gratuita. La caja de búsqueda de texto gratuita
  5. Presiona return. El listado de alerta contendrá las alertas abiertas del escaneo de código que empaten con tus criterios de búsqueda.

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 la búsqueda gratuita por texto o 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, 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 la búsqueda gratuita por texto o 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.

    Abrir una alerta desde la lista de sumario

  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.